Me fue fácil conectarme a mi servidor mysql remoto en AWS usando un sequelpro , sin embargo, estoy luchando para hacer lo mismo con mongodb.
Intenté configurar un túnel ssh a través de la línea de comando de esta manera:
ssh -fN -l root -i path/to/id_rsa -L 9999:host.com:27017 host.com
También lo intenté reemplazando el host con una dirección IP
la idea es reenviar todas las conexiones mongodb en el puerto 9999 a la del host en el puerto 27101 .. sin embargo, cuando ejecuto el comando:
mongo --host localhost --port 9999
la conexión falla, obtengo esto en su lugar:
MongoDB shell version: 2.6.0
connecting to: localhost:9999/test
channel 2: open failed: connect failed: Connection timed out
channel 3: open failed: connect failed: Connection timed out
2014-05-22T14:42:01.372+0300 DBClientCursor::init call() failed
2014-05-22T14:42:01.374+0300 Error: DBClientBase::findN: transport error: localhost:9999 ns: admin.$cmd query: { whatsmyuri: 1 } at src/mongo/shell/mongo.js:148
exception: connect failed
si corro sudo netstat -plnt
me sale lo siguiente (que parece en orden):
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 4242/node
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1342/httpd2-prefork
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2552/sshd
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 2505/master
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 11719/mongod
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 16561/redis-server
alguna idea de lo que estoy haciendo mal?
actualización: así es como se ve el comando funcional final (el crédito va a kenster ):
ssh -fN -i ~/path/to/id_rsa -L 6666:localhost:27017 [email protected]
donde el -fN
comando hace que este comando se ejecute en segundo plano
-L
parece contradecir la página de manual de ssh:-L [bind_address:]port:host:hostport Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side.
dice explícitamente quehost
es el host del servidor remoto ... ¿lo estás usando para local?He hecho algunas configuraciones en mi cuadro Ubuntu 18 Vagrant para conectar MongoDB de forma remota de forma exitosa utilizando Robo 3T GUI. Lo he explicado en los siguientes pasos.
Dentro de mongo shell, escriba el siguiente comando para crear un nuevo usuario administrador.
Por defecto, mongodb está configurado para permitir conexiones solo desde localhost (IP 127.0.0.1). Necesitamos permitir conexiones remotas desde cualquier dirección IP. El siguiente cambio solo debe hacerse en su servidor de desarrollo. Abre etc / mongod.conf y realice el siguiente cambio.
También en la misma opción de seguridad descomentar archivo mongod.conf y agregar la opción de autorización como se muestra a continuación.
Guarde y salga del archivo mongod.conf y reinicie el servidor mongodb.
Descargue e instale la herramienta Robo 3T GUI.
En Robo 3T GUI, en la configuración de conexión, debe hacer algunos cambios como se muestra en las capturas de pantalla a continuación.
Ingrese el nombre de usuario y la contraseña de la base de datos de administración de mongodb que creó anteriormente.
Aquí, ingresé mis credenciales ssh de Ubuntu Vagrant box.
Guarde los cambios y presione el icono de conexión para ver si la conexión funciona bien.
fuente