我使用
sequelpro连接到我在AWS上的远程mysql服务器是
easy,但我正在努力与mongodb做同样的事情.
我尝试通过命令行设置ssh隧道,如下所示:
ssh -fN -l root -i path/to/id_rsa -L 9999:host.com:27017 host.com
我也尝试用ip地址替换主机
我的想法是将端口9999上的所有mongodb连接转发到端口27101上主机上的连接.但是当我运行命令时:
mongo --host localhost --port 9999
连接失败,我得到了这个:
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
如果我运行sudo netstat -plnt我得到以下(似乎按顺序):
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
我知道我做错了什么?
更新:
这是最终的功能命令的样子(信用转到kenster):
ssh -fN -i ~/path/to/id_rsa -L 6666:localhost:27017 root@remote.server.com
-fN命令使此命令在后台运行