The Sendcloud Print Client is a great little tool, to automate the printing of labels more easily, unfortunately you need to install the client on every pc you want to print from.
But we wanted to only run it on our print server, since not all our systems have the label printer installed, but we do want to be able to print from them (or more specifically, we want to be able to create the shipments in sendcloud, and have sendcloud send the print job to our print server running the client.)
– The Sendcloud print client opens up port 1903 on the system where it’s installed on and listens to connections
– The sendcloud website checks if port 1903 on localhost is open, and then you will get the option to select a printer.
What we would like to achieve:
Our print server pc is running windows, so in order to be able to connect to port 1903 on the print server from our other devices on the same network we need to forward port 1903 from our ip address (not 127.0.0.1 but the ipv4 address from the system, for instance 192.168.11.77) to the 127.0.0.1 interface and port 1903:
netsh interface portproxy add v4tov4 listenaddress=192.168.11.77 listenport=1903 connectaddress=127.0.0.1 connectport=1903
And then we need to add a firewall rule to allow access to this port:
New-NetFirewallRule -DisplayName "forwarder_tcp_1903" -Direction Inbound -Protocol TCP -LocalPort 1903 -Action Allow
So in order for us to forward our local port to the remote print server port we add a reverse tunnel to our system, for this to work on mac, make sure remote login is enabled (system preferences -> sharing)
ssh -Nfg -L 1903:192.168.11.77:1903 127.0.0.1 user@PRINTSERVER
now when you open up the sendcloud printer settings, it will show as if you have the client installed on your system, and let’s you select a printer (you will need to select a printer on every client in the sendcloud settings, the printers in the list are the printers installed on the print server)
And voila, you can forward the print jobs to your local print server 🙂