I have CUPS installed on a RHEL7 system, with client.conf ServerName attribute pointing to a Windows 2016 Server that is managed by the Print Team. After lots of troubleshooting, we've established that the Windows print server is not listening on port 631.

$ cat </dev/tcp/${printServer}/631
-bash: connect: Connection refused
-bash: /dev/tcp/${printServer}/631: Connection refused

The Print Team has access to a Windows-style netstat that verifies the server is not listening on port 631.

Now, if I start a browser on a second Windows host and point it at http://${printServer}/printers/, I can see the printer list. This implies that the Windows print server might be listening for CUPS/IPP requests on port 80.

On the other hand, I modify client.conf on the RHEL7 side to specify port 80, lpstat gives me this.

$ lpstat -U ${user} -a
lpstat: Unable to connect to host.


$ curl -v --ntlm --user ${user} http://${printServer}/printers/

gives me NTLM Handshake rejected and a 401 Unauthorized return code.

Does documentation exist anywhere that describes the http/ipp protocol requests that get sent underneath an lpstat command? I'd love to see what I get back from a request sent via curl. I can see this all failing because the Print Server is enforcing NTLM authentication, and lpstat isn't handling that well. Throwing the same request through curl would help nail that down, if I know what kind of request to send.

  • Suggestion: add "RHEL" and "Windows" in front of the various "server" or "print server" terms to keep it clear which server you're referring to? – Jeff Schaller Jun 14 at 17:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.