Respuesta rápida
TCP 27017
Qué es y para qué sirve
MongoDB es una base de datos documental (NoSQL) que escucha por defecto en el puerto TCP 27017.
Cuándo conviene comprobarlo
- Verificar que una aplicación o un cliente (mongosh, Compass) puede conectar tras desplegar el servidor.
- Diagnosticar errores de conexión tras un cambio de red, firewall o configuración del servidor.
- Confirmar que el puerto no está accesible más allá de lo estrictamente necesario.
Motivos habituales por los que aparece cerrado o filtrado
- MongoDB, por defecto en instalaciones recientes, solo escucha en localhost hasta que se cambia explícitamente el "bindIp" en la configuración.
- El firewall del sistema operativo o el grupo de seguridad cloud bloquea el puerto de entrada.
- La autenticación está activada (correctamente) y el cliente no está proporcionando credenciales válidas, lo que a veces se confunde con un problema de red.
Cómo comprobarlo por línea de comandos
Si el puerto está abierto pero el cliente no conecta, revisa la configuración de autenticación ("authorization") antes de asumir que es un problema de red.
Windows (PowerShell):
Test-NetConnection servidor -Port 27017Linux / macOS:
nc -vz servidor 27017Firewall
Restringe el 27017 a los servidores de aplicación que realmente necesiten conectar; no debería estar accesible de forma general, y mucho menos desde internet.
Seguridad
- MongoDB sin autenticación activada y accesible desde internet ha sido, históricamente, una de las causas más comunes de fugas masivas de datos: activa siempre la autenticación ("authorization: enabled").
- Restringir bindIp a las interfaces estrictamente necesarias, evitando 0.0.0.0 salvo que el acceso esté además controlado por firewall.
- Usar TLS para las conexiones si viajan por una red que no es de plena confianza.
- Aplicar el principio de menor privilegio en los usuarios y roles de la base de datos.
Servicios relacionados
Preguntas frecuentes
¿Por qué se habla tanto de "MongoDB expuesto" como problema de seguridad?
Durante años, muchas instalaciones por defecto no exigían autenticación y quedaban expuestas a internet sin protección, lo que provocó numerosas fugas de datos masivas. Las versiones actuales insisten mucho más en activar la autenticación desde el principio.
¿El puerto 27017 debería estar siempre accesible en local?
Si la aplicación y la base de datos viven en el mismo servidor, lo más seguro es que MongoDB escuche solo en localhost y ni siquiera haga falta abrir el puerto en el firewall externo.
¿Es suficiente con tener contraseña para exponer MongoDB a internet?
No es lo ideal. Aunque tenga autenticación, es preferible mantenerlo en una red privada o restringido por IP, y usar TLS para las conexiones.