null

Linux Printer Setup Won't Find Network Printer – Fix It Fast

Your Linux printer setup can't see the network printer? Usually it's firewall or driver issue. Here's how to fix it in 10 minutes.

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

CauseCheckFix Command
Firewall blocking mDNSsudo systemctl status avahi-daemonsudo firewall-cmd --add-service=mdns or sudo ufw allow 5353/udp
cups-browsed not runningsudo systemctl status cups-browsedsudo systemctl enable --now cups-browsed
Wrong protocol/portsudo nmap -p 631,515,9100 printer-ipAdd 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.

Related Errors in Linux & Unix
cpufreq: governor not found or failed CPU Frequency Scaling Governor Not Working Fix Battery Icon Gone in Linux System Tray? Fix It Fast bash: command not found Fixing 'bash: command not found' on Linux – What Actually Works EXIT_CODE=1 systemd service fails with exit code 1: missing env var fix

Was this solution helpful?

EP
Erropedia Team
Tech Support Editors
The Erropedia editorial team researches and documents real-world tech errors from across Windows, Linux, macOS, networking, databases, cloud platforms, and more. Every solution is reviewed for accuracy and updated as software and systems evolve.