From USB to shared printer
Set up USB printer sharing with ShaPrint.
Get one server and one client printing first. Then add the rest of your team.
Before you start
- A printer connected to a Windows or Linux computer that can already print locally with its working driver. That computer will be your server.
- A supported computer to use as the first client, connected to a network that can reach the server.
- ShaPrint installed on both computers. Download the Stable packages for their operating systems.
- Permission to install a client queue and, where needed, allow inbound network access on the server.
Set up the server
- Print locally first. Connect the printer and install the appropriate driver. Print a test page directly from the server. Keep that working local printer queue installed.
- Open ShaPrint. Configure a Network Channel. This is a shared secret that authorizes print jobs between your server and clients. Keep it private.
- Select your shared printer. Open the Share printers page and choose the local printer you want clients to use. Enable sharing if it is not already running.
- Allow the required setup. On Windows, starting sharing can request administrator approval to add missing inbound firewall rules. If you decline, sharing remains stopped until access is configured. On Linux, follow the package's system-daemon and authorization setup.
- Review the server identity. Have the server's certificate fingerprint available through a trusted means so you can compare it on the client.
Connect a desktop client
- Open ShaPrint on the client and configure the same Network Channel as the server.
- Add a printer. Choose a nearby server, or enter the server's hostname or IP address if it does not appear.
- Compare the certificate fingerprint with the server's identity through a trusted means. Approve the server only when they match. Discovery alone does not establish trust.
- Select a shared printer and install its client queue. Windows can request administrator approval for queue installation.
- Open a familiar application and print a test document through the new ShaPrint client queue. Check the physical output, paper size, color, and duplex settings you need.
Choose the right Linux package
Use a DEB or RPM system package for a server or a managed client.
These install the shaprintd system daemon and desktop
application. The AppImage is a desktop GUI option; do not assume it
installs the system daemon.
| Distribution | Package |
|---|---|
| Debian 11 & 12; Ubuntu 22.04 & 24.04 | amd64 DEB |
| AlmaLinux 9 | x86_64 RPM |
| AlmaLinux 10 | el10 x86_64 RPM |
Start by making sure the printer works in CUPS on the server. Install the downloaded system package with your distribution's package manager, which resolves its dependencies:
Debian / Ubuntu
sudo apt install ./shaprint_<version>-1_amd64.deb
AlmaLinux
sudo dnf install ./shaprint-<version>-1.x86_64.rpm
On AlmaLinux 10, use the .el10.x86_64.rpm asset instead.
In these examples, replace the filename with the package you
downloaded.
Use the maintained DEB repository instructions or RPM repository instructions for signed repositories, service setup, and distribution prerequisites. Other distributions and printer configurations need their own checks.
Connect the Android client
The Android app is a client, not a printer server. It needs Android 8.0 or later and access to a running ShaPrint server.
- Download the APK from the Android download link. Android may ask you to allow this installation source. Follow your organization's device policy.
- Configure the same Network Channel and find or enter the server address.
- Review the server fingerprint against its identity before trusting it, then choose a shared printer.
- Use the app's document flow, or enable ShaPrint in Android's printing settings to use it from applications that support system printing.
See the Android client documentation for its current setup and supported document flow.
Networks and cross-VLAN printing
Clients must be able to reach the server. Different VLANs are supported when routing and firewall policy allow the connection. ShaPrint does not create a VPN or bypass an isolated network.
| Service | Port | Where |
|---|---|---|
| IPPS sharing | TCP 48631 | Server, reachable by clients |
| Discovery | UDP 48633 | Server, reachable by discovery queries |
| Client proxy | TCP 48632 | Client loopback only |
Automatic discovery across subnets needs multicast routing or mDNS
reflection. If no nearby server appears, enter the server's hostname
or IP address manually. If your network uses a non-default endpoint,
enter host:port as configured by its administrator. A
missing discovery result does not necessarily mean the server is
offline.
If the test page doesn't print
- Check the printer locally. If it cannot print directly from the server, resolve the printer, driver, or CUPS/spooler issue first.
- Check the server. Keep it awake, connected, and running ShaPrint with that printer selected for sharing.
- Check reachability. Try the server address manually. Confirm that network policy allows access to the IPPS port.
- Check trust and authorization. Verify the server identity and make sure both installations have the intended Network Channel. Do not share its value in an issue or screenshot.
- Read the reported error. Follow ShaPrint's suggested recovery action. For cached paper-size problems on Windows client queues, use the app's Repair paper sizes action where available.
- Inspect the printed page. A completed spooler job alone does not prove the document printed correctly. Compare a local print with a client print using the same document and settings.
If you still need help, check or open an issue on GitHub. Include the operating systems, printer model, ShaPrint version, and error code. Leave out Network Channel values, private addresses, and document content.
Choose your download