Firewall Blocking Avahi (mDNS) – The Usual Suspect
I've lost count how many times I've walked into a server room where someone's been wrestling with printer discovery for an hour. Nine times out of ten, the firewall is blocking Avahi. Avahi is Linux's implementation of Apple's Bonjour/mDNS. Your printer announces itself using mDNS on port 5353, and if that port is firewalled, your system never sees it. This is especially common on Fedora, RHEL, and Ubuntu with ufw enabled.
The fix: Check if Avahi is running first.
sudo systemctl status avahi-daemon
If it's not running, start and enable it:
sudo systemctl enable --now avahi-daemon
Now check your firewall. On systems with firewalld (RHEL/Fedora/CentOS):
sudo firewall-cmd --add-service=mdns --permanent
sudo firewall-cmd --reload
On systems with ufw (Ubuntu/Debian):
sudo ufw allow 5353/udp
sudo ufw reload
After that, restart CUPS so it re-scans the network:
sudo systemctl restart cups
Now open the printer setup wizard again. If you see your printer pop up, you're done. If not, move to the next cause.
CUPS Browsing Disabled Or cups-browsed Not Running
CUPS uses browsing to discover remote printers. If the service cups-browsed isn't running, your system won't see anything. I see this a lot on Debian-based systems after a minimal install. cups-browsed is part of the cups-filters package, and it's easy to miss.
Check if it's running:
sudo systemctl status cups-browsed
If it's dead or not installed, install and start it:
sudo apt install cups-filters # Debian/Ubuntu
sudo dnf install cups-filters # Fedora/RHEL
sudo systemctl enable --now cups-browsed
If it's running but still no luck, check the CUPS configuration. Edit /etc/cups/cupsd.conf and make sure these lines are not commented out:
BrowseLocalProtocols dnssd
BrowseRemoteProtocols dnssd
BrowseAddress @LOCAL
Then restart CUPS:
sudo systemctl restart cups
One trick I've used dozens of times — manually add the printer by IP address if the wizard still fails. Open CUPS web interface at http://localhost:631, go to Administration > Add Printer. Choose 'Internet Printing Protocol (ipps)' and enter ipp://your-printer-ip:631/ipp/print. It's not elegant, but it works.
Network Printer Is Using A Non-Standard Port Or Protocol
Some older printers (I'm looking at you, HP LaserJet 4xx series and some Brother models) use port 9100 for raw printing or LPD on port 515. The printer setup wizard often only scans for IPP (port 631) or mDNS. If your printer is on a different VLAN or subnet, it won't show up either. This is a classic case where you know the printer works — you can ping it — but the wizard can't see it.
Quick check: Ping the printer first. If you get a reply, scan for open ports:
sudo nmap -p 631,515,9100,161 printer-ip
If you see port 631 open, use the IPP URI I gave above. If it's 9100, you'll need to add it as a 'Socket' printer in CUPS. If it's 515, use lpd://printer-ip/queue-name. The queue name is often 'lp' or 'text' — check your printer's network config page.
For Brother printers that use SNMP (port 161) for discovery, make sure SNMP isn't blocked on your network. Some admins disable it for security. If you need it, add the printer manually with the LPD or IPP URI instead.
Quick-Reference Summary Table
| Cause | Check | Fix Command |
|---|---|---|
| Firewall blocking mDNS | sudo systemctl status avahi-daemon | sudo firewall-cmd --add-service=mdns or sudo ufw allow 5353/udp |
| cups-browsed not running | sudo systemctl status cups-browsed | sudo systemctl enable --now cups-browsed |
| Wrong protocol/port | sudo nmap -p 631,515,9100 printer-ip | Add printer manually with correct URI (ipp, socket, or lpd) |
If none of this works, you can always reset CUPS entirely. Yes, it's nuclear, but sometimes you just need a clean slate. Backup your configs first:
sudo cp -r /etc/cups /etc/cups.backup
sudo systemctl stop cups
sudo rm -rf /etc/cups/*
sudo apt purge cups --auto-remove
sudo apt install cups
sudo systemctl start cups
Then reconfigure from scratch. Most people skip this step, but after 14 years, I've learned that a clean install beats three hours of hunting obscure bugs. Good luck.