What is port 3000 used for?
A common default for dev servers, including Express examples, Next.js and Grafana.
Should port 3000 be open?
Local or internal use. It’s meant for development machines or local networks, not the public internet. Dev servers aren’t hardened for the internet. Put a reverse proxy on 80/443 in front of the app and keep 3000 bound to localhost.
See what is listening on port 3000
# Linux
sudo ss -tlnp | grep ':3000 '
# macOS
sudo lsof -nP -i TCP:3000 -sTCP:LISTEN
# Windows (PowerShell)
Get-NetTCPConnection -LocalPort 3000 -State Listen
Open or block port 3000 in a firewall
# Ubuntu / Debian (ufw)
sudo ufw allow 3000/tcp
sudo ufw deny 3000/tcp
# Windows (PowerShell, as administrator)
New-NetFirewallRule -DisplayName "Port 3000" -Direction Inbound -Protocol TCP -LocalPort 3000 -Action Allow
On cloud servers, also open the port in the provider’s security group or network firewall. At home, a service behind a router needs a port-forwarding rule to the device’s local IP.
Test it from outside
A port can be open on the server but blocked upstream. The Port Checker connects from the internet, so it shows what the world sees. From your own machine, use nc -vz example.com 3000 (macOS/Linux) or Test-NetConnection example.com -Port 3000 (Windows).