Saltar al contenido
TCPRiesgo medio si se expone

Puerto 3000 (Desarrollo (Node.js, Grafana)): para qué sirve y cómo protegerlo

El puerto 3000 TCP no está asignado a ningún servicio oficial, pero es el puerto por defecto de muchos servidores de desarrollo (Create React App, Next.js, Express) y de Grafana. Si aparece abierto en un servidor de producción, conviene revisar qué lo usa: a menudo es un servidor de desarrollo que se quedó expuesto.

Qué es el puerto 3000

Los servidores de desarrollo no están pensados para Internet: no minifican, muestran errores detallados y a veces exponen el código fuente. En producción, la aplicación debe compilarse y servirse detrás de un proxy (nginx) por el 443.

¿Es peligroso tener abierto el puerto 3000?

Riesgo medio: Solo expuesto con autenticación fuerte o limitado por IP.

  • Servidores de desarrollo con mensajes de error y código visibles.
  • Grafana con la contraseña por defecto (admin/admin).

Cómo proteger el puerto 3000

  • Publica el servicio detrás de nginx o Caddy con HTTPS.
  • Haz que el servicio escuche solo en 127.0.0.1.
  • En Docker Compose: "127.0.0.1:3000:3000" en lugar de "3000:3000".

Comandos y configuración

Comprobar si el puerto 3000 está abierto

bash
sudo ss -tlnp | grep ':3000 '
nc -zv 203.0.113.10 3000
sudo nmap -p 3000 203.0.113.10

¿Qué proceso usa el puerto 3000?

bash
sudo lsof -i :3000
sudo ss -tlnp | grep ':3000 '

Liberar el puerto (matar el proceso)

bash
kill $(lsof -t -i :3000)

También puedes comprobarlo desde fuera de tu red con nuestro escáner de puertos online.

Herramientas para comprobarlo

Preguntas frecuentes

¿Por qué Docker se salta ufw y mi puerto 3000 es accesible desde fuera?

Docker escribe sus propias reglas de iptables y los puertos publicados con -p quedan abiertos aunque ufw diga lo contrario. Publica solo en 127.0.0.1 (127.0.0.1:3000:3000) y deja el acceso externo al proxy.

"Something is already running on port 3000"

Otro proceso (a menudo un servidor de desarrollo anterior) usa el puerto. Búscalo con lsof -i :3000 y ciérralo, o arranca en otro puerto con PORT=3001.

Puertos relacionados

Ver la lista de puertos