tutorial - Obtener MongoDB en Linux para escuchar conexiones remotas
mongodb tutorial español (5)
1. Opción Bind Bind
Bind IP es una opción de MongoDB que restringe las conexiones a direcciones IP específicas.
Eche un vistazo a su archivo de configuración de mongod, la mayoría de las veces, bind_ip se establece en 127.0.0.1
por razones obvias de seguridad. Usted puede:
- Agregue su IP deseada al concatenar una lista de valores separados por comas para vincular MongoDB a múltiples direcciones IP.
- Eliminar o comentar (con
#
carácter) la líneabind_ip
. ¡Pero tenga en cuenta que todas las conexiones remotas podrán conectar su servidor MongoDB!
Más sobre la opción de configuración bind_ip
: https://docs.mongodb.com/manual/reference/configuration-options/#net.bindIp
Bind IP también se puede establecer como un argumento de comando: http://docs.mongodb.org/manual/reference/program/mongod/#cmdoption--bind_ip
2. Firewall
Verifique que no esté corriendo detrás de un firewall
Instalé exitosamente MongoDB en Windows (en una máquina local) como un servicio, pero ahora quiero mover MongoDb a un servidor por separado. Así que extraje el tarball en un servidor virtual en la red (ejecutando linux).
Cuando me conecté al servidor ("testmongoserver") usando PuTTY desde mi máquina local, inicié el servidor mongod y me dijo que estaba escuchando el puerto 28017 predeterminado. La consola mongo también está funcionando y me permitió crear una nueva base de datos (testdb) y agregar usuarios a ella.
Sin embargo, no pude acceder al servidor desde remoto. Cuando testmongoserver:28017
no abre la consola HTTP como localhost:28017
en mi máquina local. Tampoco puedo conectarme con los controladores oficiales y proporcionar una conexión de conexión.
¿Cuáles son los pasos necesarios para instalar MongoDB en Linux, para poder acceder a él desde una máquina remota con una conexión y usar su consola HTTP a través de testmongoserver:28017
¡Gracias!
- Ejecute netstat -a en el servidor mongo y verifique un puerto.
- Verifique la configuración de DNS y verifique que el servidor de Linux permita conexiones externas.
- Verifique que mongodb pueda aceptar una conexión externa / remota.
El puerto predeterminado para mongo es 27017. 28017 - puerto para webstats.
Ver http://www.mongodb.org/display/DOCS/Security+and+Authentication#SecurityandAuthentication-Ports
Acabo de tener este problema y esto lo solucionó:
Edite /etc/mongod.conf
con sudo nano /etc/mongod.conf
asegúrese de que la sección de red tenga el siguiente aspecto (el enlace de localhost de forma predeterminada no permite el acceso remoto):
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0
Asegúrate de reiniciar mongod cuando hayas terminado con lo de abajo (asumiendo systemd ubuntu 16.04+ etc.):
sudo service mongod restart
Obviamente, desde una perspectiva de seguridad si vas a estar abriendo mongo a tu red / al mundo, ten en cuenta las implicaciones de esto (si hay alguno)
Asegúrese de que en su archivo /etc/mongodb.conf tenga la siguiente línea,
bind_ip = 0.0.0.0
http://jitu-blog.blogspot.com.br/2013/06/allow-mongo-to-connect-from-remote-ip.html
Otro problema puede ser que el puerto mongodb no está habilitado. Verifique, desde otro host, los puertos habilitados en su servidor. Para eso puedes usar el comando:
sudo nmap -P0 your_server_ip
Puedes obtener una respuesta como esta:
Host is up (0.052s latency).
Not shown: 997 filtered ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp closed https
Si usa un servidor virtual en la nube, como AWS, necesita agregar una nueva regla para agregar el puerto mongodb (27017 de manera predeterminada).
Importante : tenga en cuenta que con esta configuración cualquiera puede tener acceso a su base de datos