On my home network, I have a single Brother laser printer. It’s aging but still works like a champ (and the company still produces toner cartridges, which can be easily purchased from Amazon).
Multiple computers use the printer, so I had to set up my desktop as a print server. Yes, I could have deployed Linux on a server for that purpose, but it was easier from my desktop. On top of that, most users aren’t going to want to also deploy a server on their home LAN.
Also: Want to save your old computer? Try these 6 Linux distros
But how do you set up a print server? Believe it or not, it’s easier than you might think. Let me show you how it’s done.
How to set up your print server
What you’ll need: The most important thing you’ll need (besides a running instance of Linux) is a printer supported by the open-source operating system. If you’re unsure, the following printers are always a safe bet:
- Brother HL-L2350DW
- Brother HL-L3210CW
- Brother MFC-L3750CDW
- HP Neverstop 1202w Laser Printer
- HP Color LaserJet Pro M255dw
- HP OfficeJet Pro 9025
- Canon PIXMA TR8520 All-In-One Printer
- HP LaserJet Pro M28w Monochrome Laser Printer
- Epson EcoTank ET-3760 All-in-One Supertank Printer
- Epson EcoTank ET-3830
You’ll also need a running instance of Linux (I’ll demonstrate this on Pop!_OS, which is based on Ubuntu) and a user with sudo privileges. Ensure your printer is connected and working properly from your server before you start making any changes.
Also: How to print from Linux using only the command line
Let’s get to work.
The first thing to do is install CUPS (Common Unix Print Server), which can be done with the command:
sudo apt-get install cups -y
If you’re using a Fedora-based distribution, the command would be:
sudo dnf install cups -y
Next, you’ll need to start and enable the CUPS server with the command:
sudo systemctl enable –now cups
Now that CUPS is installed, we have some configuration options. Although this is done via a terminal-based text editor, don’t panic… I’ll show you the way.
Open the configuration file with the command:
sudo nano /etc/cups/cupsd.conf
The first thing to change is this:
Browsing Off
Change that to:
Browsing On
Next, we need to configure the settings so you can use the web-based CUPS manager from any machine on your network. Look for the line:
Listen localhost:631
Change that to:
Port 631
We now need to ensure that CUPS is listening to all network interfaces. Look for the following section:
Order allow, deny
Change that to:
Order allow, deny
Allow @LOCAL
Finally, let’s add access to the admin console. Look for the following section:
Order allow, deny
Change that to:
AuthType Default
Require valid-user
Order allow, deny
Allow @LOCAL
Save and close the file with the Ctrl+x keyboard shortcut.
Restart CUPS with:
sudo systemctl restart cups
For MacOS and other OSes, you’ll need to install software for Bonjor (MacOS) and IPP (other OSes). Do that with the command:
sudo apt-get install avahi-daemon -y
Start and enable the new service with:
sudo systemctl enable –now avahi-daemon
Now that you’ve taken care of the setup, your printer should be visible to any computer on your LAN. Do keep in mind that, depending on the OS, you might have to install drivers for the printer. This is often the case with Windows.
Also: When Windows 10 support runs out, you have 5 options but only 2 are worth considering
On Linux machines, if the printer is supported on your server, chances are good you won’t have to install any drivers for the other machines. I’ve found the same thing holds true with MacOS, but your mileage may vary.