Il était facile pour moi de me connecter à mon serveur mysql distant sur AWS en utilisant un sequelpro , mais j'ai du mal à faire la même chose avec mongodb.
J'ai essayé de configurer un tunnel ssh via la ligne de commande comme ceci:
ssh -fN -l root -i path/to/id_rsa -L 9999:host.com:27017 host.com
Je l'ai également essayé en remplaçant l'hôte par une adresse IP
l'idée est de transmettre toutes les connexions mongodb sur le port 9999 à celle sur l'hôte sur le port 27101 .. cependant quand j'exécute la commande:
mongo --host localhost --port 9999
la connexion échoue, j'obtiens ceci à la place:
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 je cours, sudo netstat -plnt
j'obtiens ce qui suit (qui semble en ordre):
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
une idée de ce que je fais mal?
mise à jour: voici à quoi ressemble la commande fonctionnelle finale (crédit à kenster ):
ssh -fN -i ~/path/to/id_rsa -L 6666:localhost:27017 root@remote.server.com
où la -fN
commande fait exécuter cette commande en arrière-plan
-L
semble contredire la page de manuel 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.
elle dit explicitement quehost
c'est l'hôte du serveur distant .. vous l'utilisez pour local?