Printers connected over a network save time and improve workflow. Many Linux users struggle when trying to configure network printers due to different protocols and drivers. If you want to find and add a network printer in Linux, this step-by-step guide will help you use the graphical interface, CUPS web interface, or command line.
How do you find a network printer in Linux?
You need the printer’s IP address or hostname before adding it. There are several ways to locate it:
Printer Control Panel: Go to Network Settings or System Information.
Router Settings: Log in to your router and check the connected devices.
Linux Command: Run the following command to discover devices:
avahi-browse –all –ignore-local –resolve –terminate
(Requires Avahi daemon).
Most modern printers support IPP Everywhere, which makes them easier to detect on Linux.
How to add a network printer on Linux using GUI?
Most Linux distributions (Ubuntu, Fedora, Mint, Manjaro, Arch-based systems) provide a simple printer settings tool.
- Open Settings → Printers.
- Click Add / + and unlock with your admin password.
- Select the discovered printer from the list.
- If missing, add manually:
- IPP / LPD / JetDirect → Enter printer IP or hostname.
- Samba (SMB) → For printers shared via Windows.
- IPP / LPD / JetDirect → Enter printer IP or hostname.
- Choose the right driver (PPD file) from the manufacturer or OpenPrinting.
- Save and print a test page.
How to add a network printer in Linux using CUPS web interface?
CUPS (Common Unix Printing System) powers most Linux printing services. You can manage printers directly in your browser.
- Open a browser and go to http://localhost:631.
- Click Administration → Add Printer.
- Enter your Linux username and password.
- Select the printer from the discovered list or add manually.
- Install the correct driver and configure defaults.
How to add a network printer in Linux using command line?
The lpadmin command is best for advanced users and servers.
# Install CUPS
sudo apt install cups # Debian/Ubuntu
sudo dnf install cups # Fedora
sudo pacman -S cups # Arch
# Add printer with IPP protocol
sudo lpadmin -p OfficePrinter -E -v ipp://192.168.1.120/ipp/print -m everywhere
# Set default printer
lpoptions -d OfficePrinter
This method is recommended for headless servers or when managing multiple printers.
How to add network printers on Red Hat Enterprise Linux?
On RHEL or CentOS systems, use the Printer Configuration Tool.
JetDirect printers: Select JetDirect → Enter IP → Use PostScript driver.
LPD printers: Select Unix Printer (LPD) → Enter server (pirlprinters) + queue name.
Apply changes and test print.
Enterprises often prefer JetDirect (port 9100) because it is faster and more reliable than legacy LPD queues.
Advanced troubleshooting for Linux network printers
Driver issues: Install the manufacturer’s driver or use Generic PCL/PS drivers.
Protocols to know:
- IPP Everywhere → Recommended for most printers.
- JetDirect (9100) → Common for HP.
- LPD (515) → Still used in enterprise setups.
- Samba (SMB) → For Windows-shared printers.
Firewall settings: Ensure ports 631 (IPP), 9100 (JetDirect), and 515 (LPD) are open.
Test pages: Always confirm setup with a test page.
FAQs
Q1. How do I find my printer’s IP address in Linux?
Run avahi-browse or check your router for connected devices.
Q2. Can Linux automatically detect network printers?
Yes, most distributions detect printers automatically using IPP Everywhere.
Q3. What if my printer is shared from Windows?
Use Samba (smb://hostname/printername) when adding it.
Q4. Is the command line faster than the GUI?
Yes, lpadmin is more efficient in server environments.
Final thoughts
Finding and adding a network printer on Linux requires either the GUI, the CUPS web interface, or the command line. Once you know the IP address and driver, the process takes only minutes. By using the right protocol (IPP, JetDirect, LPD, or Samba), you can ensure reliable printing on Ubuntu, Fedora, Red Hat, and other Linux distributions.