How do I share my local printer on my network so a Windows computer can use it?

I have a printer that successfully prints any document on my Fedora linux desktop.
That printer does not have an UTP port or WIFI. It is connected to my desktop with USB.
There’s also a Windows computer in my home network that needs to be able to print with that printer.

What is the simplest, best way to allow someone working on that Windows computer to regularly print PDF and other documents on that printer? Is there a good, short step-by-step guide somewhere to share my local printer on the network? If that guide has multiple options, what is the best option?

1 Like

Welcome to ask Fedora.

Please tell us what you did try and where you have problems to get along.

I would propose that you start here:
Search results for 'How to setup a printer share' - Ask Fedora

You can also check if you see something there:
http://localhost:631/printers/

1 Like

Here’s what I tried so far:

  1. Open Fedora settings, go to printers, click on my printers and look for the option to “share on my network”. No such option exists.

  2. Google “fedora share printer over network”. Which led me here: Chapter 23. Printer Configuration
    That talks about using printers that are already on the network. It also talks about IPP, Samba, Jetdirect, Pikachu (just kidding) and other mystical words without recommending one, giving me the paradox of choice. In the end, it didn’t help me further. I am looking for the vanilla, simple steps to share my printer on a network

  3. Search on Ask fedora, but with no luck.

You can also check if you see something there:
http://localhost:631/printers/

That’s interesting! Thank you. I do see my printer there. Does that mean it’s automatically shared on my network?

1 Like

Hello @ge0ffrey ,
Welcome to the :fedora: discussion area. To share a printer in Gnome Settings if you pick your installed printer, you can click on it’s address link to get the printer administration page that you now use in Fedora Linux to setup and administer printers. You will see under the Administration tab, some details about setting it as the default server printer, and allowing other users access. This is for sure the simplest way I could find, browser driven, able to share the printer with various levels of configurability of the server.

2 Likes

Hi Geoffrey and Welcome

If you google ‘linux usb printer share with windows’, you’ll find lots of info.

The one that looks most comprehensive is:

https://www.howtogeek.com/191323/how-to-share-printers-between-windows-mac-and-linux-pcs-on-a-network/

Note that you only need the sections for ‘Share a Printer on Linux’ and ‘Access a Shared Printer on Windows’.

It uses Ubuntu as its Linux, but Fedora has exactly the same printer settings program. Also, the article is from 2017, but you should be able to translate the process easily to your current Windows version.

That’s a bit out of date for Fedora Linux though, that’s what 8 releases ago right?

With some things age means a lot. With others it is insignificant since there may have been no or minimal changes.

Try it, remember what has been done.
If it works then good and if not then you can back out the changes and start over.

Yeah but, like I said above, it is a browser link away in Fedora Linux.

Stephen

The Linux printer settings program hasn’t changed at all - it looks exactly the same in Fedora 35 as it does in the article. It’s such a basic program that it looks the same across distributions, so the fact that the article shows Ubuntu is irrelevant.

I mentioned the article is from 2017 because the Windows interface might have changed depending on what version the question-asker is using.

Giving a browser link is fine, but it gives no clue as to how to:

  • share the printer under linux
  • connect to the printer under Windows.

At http://localhost:631/printers/ > Administration be sure to check Share printers connected to this system:
image

When you save, you’ll be prompted for your credentials with an HTTP Basic Authentication dialog. You must be a member of the wheel, sys, or root group to make changes. The account that is created during installation is a member of the wheel group. Also, any Administrator user accounts that you create in Settings > Users will also be a member of wheel.

Checking that checkbox has the following effect in the /etc/cupsd.conf file:

[/etc/cups] $ sudo diff -u cupsd.conf.save cupsd.conf
--- cupsd.conf.save	2021-11-23 09:52:50.301530590 -1000
+++ cupsd.conf	2021-11-23 09:52:54.725549799 -1000
@@ -1,16 +1,18 @@
 LogLevel warn
 MaxLogSize 1m
 ErrorPolicy stop-printer
-# Only listen for connections from the local machine.
-Listen localhost:631
+# Allow remote access
+Port 631
 Listen /run/cups/cups.sock
-# Disable printer sharing.
-Browsing Off
+# Share local printers on the local network.
+Browsing On
+BrowseLocalProtocols dnssd
 DefaultAuthType Basic
 WebInterface Yes
 <Location />
-  # Restrict access to the server...
+  # Allow shared printing...
   Order allow,deny
+  Allow @LOCAL
 </Location>
 <Location /admin>
   Order allow,deny

One thing it doesn’t do is open up the port for the ipp service in your computer’s firewall. To do that:

sudo firewall-cmd --list-services
# dhcpv6-client mdns samba-client ssh

sudo firewall-cmd --add-service=ipp
sudo firewall-cmd --runtime-to-permanent

Check that ipp is now listed:

sudo firewall-cmd --list-services
# dhcpv6-client ipp mdns samba-client ssh

ipp is the internet printing protocol. It uses port 631, as can be seen in the output of grep ipp /etc/services.

Learn more about controlling the firewall here: Control the firewall at the command line.

1 Like

Then go to your windows machine, in the search box type “printers” to go the printers configuration window.

In that printers configuration panel, click “Add a printer or scanner”. Let it look for a few seconds (make sure you done the ipp firewall stuff more than a minute ago) and your printer will show up. Then select it to add it.

Thanks Robin, your answer worked like a charm!

1 Like

Yes, this is the solution. Thank you!

It was using the users browser to locally browse users printer which is on Port 631on the users local network. This is how you administer printers with CUPS.