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

Set up the server

  1. 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.
  2. Open ShaPrint. Configure a Network Channel. This is a shared secret that authorizes print jobs between your server and clients. Keep it private.
  3. 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.
  4. 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.
  5. 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

  1. Open ShaPrint on the client and configure the same Network Channel as the server.
  2. Add a printer. Choose a nearby server, or enter the server's hostname or IP address if it does not appear.
  3. 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.
  4. Select a shared printer and install its client queue. Windows can request administrator approval for queue installation.
  5. 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.

Documented distribution targets
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.

  1. Download the APK from the Android download link. Android may ask you to allow this installation source. Follow your organization's device policy.
  2. Configure the same Network Channel and find or enter the server address.
  3. Review the server fingerprint against its identity before trusting it, then choose a shared printer.
  4. 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.

Default ShaPrint network ports
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

  1. Check the printer locally. If it cannot print directly from the server, resolve the printer, driver, or CUPS/spooler issue first.
  2. Check the server. Keep it awake, connected, and running ShaPrint with that printer selected for sharing.
  3. Check reachability. Try the server address manually. Confirm that network policy allows access to the IPPS port.
  4. 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.
  5. 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.
  6. 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