prefixkit Ask an engineerAsk RU

Port 9000 PHP-FPM / Portainer / MinIO

PHP-FPM FastCGI, Portainer, MinIO, SonarQube defaults. PHP-FPM exposed means code execution.

Protocol
TCP
Service
PHP-FPM / Portainer / MinIO
Exposing to the internet
Do not expose

Check if port 9000 is open

Is it safe to open

Public websites are fine to expose, but admin panels on alternative ports are better hidden behind a VPN or an IP allow-list. Use HTTPS with a valid certificate.

How to open port 9000

Open to everyone

# Linux iptables
iptables -A INPUT -p tcp --dport 9000 -j ACCEPT
# Ubuntu ufw
ufw allow 9000/tcp
# firewalld
firewall-cmd --permanent --add-port=9000/tcp && firewall-cmd --reload
# MikroTik
/ip firewall filter add chain=input protocol=tcp dst-port=9000 action=accept place-before=0 comment="port 9000"
# Windows (PowerShell)
New-NetFirewallRule -DisplayName "Port 9000 TCP" -Direction Inbound -Protocol TCP -LocalPort 9000 -Action Allow

Only for your addresses

# allow only one address or network (replace 203.0.113.0/24)
iptables -A INPUT -p tcp --dport 9000 -s 203.0.113.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 9000 -j DROP
ufw allow from 203.0.113.0/24 to any port 9000 proto tcp
/ip firewall filter add chain=input protocol=tcp dst-port=9000 src-address=203.0.113.0/24 action=accept
/ip firewall filter add chain=input protocol=tcp dst-port=9000 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 ':9000 '
netstat -ano | findstr :9000   # Windows
lsof -i :9000   # macOS
# test from another machine
nc -vz example.com 9000

Related ports