When This Happens
You open "Add a Printer" on Windows 10 or 11, click "The printer that I want isn't listed," and nothing shows up. Or you're on a Mac in System Settings > Printers & Scanners, hit the plus sign, and the printer's not there. This usually happens right after you install a new firewall (like Norton, McAfee, or Windows Defender Firewall with strict rules) or update your antivirus. The printer is on the same network—you can ping its IP—but discovery fails.
Root Cause
The culprit here is almost always firewall rules blocking multicast DNS (mDNS) or NetBIOS traffic. Printers broadcast their presence using mDNS on port 5353 and sometimes NetBIOS on ports 137 and 138. When your firewall blocks those ports, your computer can't hear the printer's broadcast. Simple as that. Don't bother checking SNMP or WSD unless you're on an enterprise network—most home and small office printers rely on mDNS.
Fix Steps
For Windows (10 and 11)
- Open Windows Security (search for it in Start). Click Firewall & network protection.
- Click Allow an app through firewall. Scroll down and make sure Network Discovery and File and Printer Sharing are checked for both Private and Public networks.
- If that doesn't work, open Windows Defender Firewall with Advanced Security (type
wf.mscin Run). Go to Inbound Rules and look for rules named mDNS (UDP-In) or NetBIOS Name Service (UDP-In). Enable them if they're disabled. - If you can't find those, create a new inbound rule: Port, UDP, specific local port
5353, allow the connection. Name it "mDNS Printer Discovery." - Restart your computer. Yes, you have to restart—flushing the firewall cache doesn't always work.
For Mac (macOS Ventura or later)
- Go to System Settings > Network > Firewall. Turn it off temporarily to test. If the printer shows up, the firewall is the problem.
- Click Options under Firewall. Add your printer's IP address (or a range like
192.168.1.0/24) to the Allow list. - If you use a third-party firewall like Little Snitch, open it. Look for rules blocking
mDNSResponderor any traffic on UDP port 5353. Set them to allow.
For Third-Party Antivirus/Firewall (Norton, McAfee, Kaspersky, etc.)
These are the worst. They often block mDNS without asking. Open your antivirus control panel, find the firewall settings, and look for a Network Profile or Trusted Network section. Set your network to Private or Home. Then find an option like Allow Printer Sharing and turn it on. If you can't find it, temporarily disable the firewall for two minutes to test.
What If It Still Fails?
If you've done all that and the printer still doesn't show up, check these three things:
- Printer is on the same subnet. Your computer's IP should start with the same first three numbers as the printer's IP (e.g., both 192.168.1.x). If they're on different subnets, firewall rules won't help—you need a router route or change the printer's IP.
- Printer firmware is up to date. I've seen older Brother and HP printers drop mDNS support after a bad update. Check the manufacturer's support site.
- Try adding by IP address. On Windows: Control Panel > Devices and Printers > Add a Printer > Add a local printer or network printer > Create a new port > Standard TCP/IP Port. Enter the printer's IP. This bypasses discovery entirely. Works 99% of the time.
One last thing: if you're in a corporate environment with Group Policy, the firewall rules might be locked down by IT. Don't waste time fighting it—call your admin.