Is it safe to open
Open only what you need, to the addresses that need it.
How to open port 631
Open to everyone
# Linux iptables iptables -A INPUT -p tcp --dport 631 -j ACCEPT iptables -A INPUT -p udp --dport 631 -j ACCEPT # Ubuntu ufw ufw allow 631/tcp ufw allow 631/udp # firewalld firewall-cmd --permanent --add-port=631/tcp && firewall-cmd --reload firewall-cmd --permanent --add-port=631/udp && firewall-cmd --reload # MikroTik /ip firewall filter add chain=input protocol=tcp dst-port=631 action=accept place-before=0 comment="port 631" /ip firewall filter add chain=input protocol=udp dst-port=631 action=accept place-before=0 comment="port 631" # Windows (PowerShell) New-NetFirewallRule -DisplayName "Port 631 TCP" -Direction Inbound -Protocol TCP -LocalPort 631 -Action Allow New-NetFirewallRule -DisplayName "Port 631 UDP" -Direction Inbound -Protocol UDP -LocalPort 631 -Action Allow
Only for your addresses
# allow only one address or network (replace 203.0.113.0/24) iptables -A INPUT -p tcp --dport 631 -s 203.0.113.0/24 -j ACCEPT iptables -A INPUT -p udp --dport 631 -s 203.0.113.0/24 -j ACCEPT iptables -A INPUT -p tcp --dport 631 -j DROP iptables -A INPUT -p udp --dport 631 -j DROP ufw allow from 203.0.113.0/24 to any port 631 proto tcp ufw allow from 203.0.113.0/24 to any port 631 proto udp /ip firewall filter add chain=input protocol=tcp dst-port=631 src-address=203.0.113.0/24 action=accept /ip firewall filter add chain=input protocol=udp dst-port=631 src-address=203.0.113.0/24 action=accept /ip firewall filter add chain=input protocol=tcp dst-port=631 action=drop /ip firewall filter add chain=input protocol=udp dst-port=631 action=drop
If the server is behind a router, you also need a port forward (dst-nat). Behind ISP CGNAT (100.64.0.0/10 on the WAN) forwarding will not help: you need a public IP or a VPN.
What is listening
Check on the server
# what listens on the port ss -lntup | grep ':631 ' netstat -ano | findstr :631 # Windows lsof -i :631 # macOS # test from another machine nc -vz example.com 631