Port 9100 is shared by Prometheus Node Exporter (Linux system metrics) and HP JetDirect (network printing raw protocol). Context determines the service. Node Exporter on 9100 exposes detailed system metrics – restrict to Prometheus scrapers only. JetDirect on 9100 accepts raw print data with no authentication.
Port Number
9100
Protocol
TCP
Service
Node Exporter / Printer
Range
IANA Registered (1024–49151)
Count Node Exporter metrics (typical: 500-2000 depending on collectors enabled)
curl -s http://host:9100/metrics | grep -c '^node_'Check what system info Node Exporter reveals (kernel, hostname, machine type)
curl -s http://host:9100/metrics | grep node_uname_infoQuery HP printer status via JetDirect PJL (if this works, printer is exposed)
echo -e '\x1b%-12345X@PJL INFO STATUS
' | nc -w3 printer 9100Check if JetDirect printer is accessible and read its display message
nmap -p 9100 --script pjl-ready-message targetcurl http://host:9100/metrics | head -20
node_exporter --web.listen-address=:9100
echo 'Hello' | nc printer 9100 (prints raw text on JetDirect)HP JetDirect (AppSocket/raw printing protocol) has used port 9100 since the early 1990s for network printing. Prometheus Node Exporter adopted port 9100 in 2014 following the Prometheus port allocation convention (9090 for server, 9091 for Pushgateway, 9100 for Node Exporter). The collision is rarely a problem in practice since printers and Linux monitoring servers occupy different network segments. Node Exporter is the most widely deployed Prometheus exporter, running on virtually every monitored Linux host.
How do I restrict which metrics Node Exporter exposes?
Disable collectors you do not need: node_exporter --no-collector.wifi --no-collector.nfs --no-collector.infiniband. For process info (high-value to attackers): do not enable --collector.processes unless needed. Use --web.config.file with TLS and basic auth (Node Exporter 1.5+) for authenticated scraping. The /metrics endpoint cannot be partially restricted – it is all or nothing per collector.
How do I secure network printers on port 9100?
Place printers on a dedicated VLAN with no internet access. Allow port 9100 only from print servers (CUPS/Windows Print Server). Disable JetDirect if using IPP (port 631) instead. Set a PJL password on HP printers: @PJL DEFAULT PASSWORD=1234. Update firmware – many JetDirect RCE vulns are fixed in newer firmware. Monitor: Shodan your public IPs for port 9100 exposure.