如何通过ssh隧道访问远程aws lightsail mongodb

如何通过ssh隧道访问远程aws lightsail mongodb,mongodb,ssh-tunnel,amazon-lightsail,Mongodb,Ssh Tunnel,Amazon Lightsail,我有一个Lightsail AWS实例,它正在运行,并且具有一个平均堆栈。我有一个在不同网络上运行的现有平均堆栈。目前,node server.js连接到本地主机,用于mongo位(在同一台机器上),我只想用连接到AWS远程服务器上运行的mongo来替换本地主机 我理解,出于安全原因,最好通过ssh隧道连接这个连接,我认为这是我熟悉的 到目前为止,我所做的是: 在托管节点服务器(远程到db)的机器上的控制台中,我运行了: ssh -L 8181:127.0.0.1:80 -i ~/Lightsa

我有一个Lightsail AWS实例,它正在运行,并且具有一个平均堆栈。我有一个在不同网络上运行的现有平均堆栈。目前,node server.js连接到本地主机,用于mongo位(在同一台机器上),我只想用连接到AWS远程服务器上运行的mongo来替换本地主机

我理解,出于安全原因,最好通过ssh隧道连接这个连接,我认为这是我熟悉的

到目前为止,我所做的是:

在托管节点服务器(远程到db)的机器上的控制台中,我运行了:

ssh -L 8181:127.0.0.1:80 -i ~/LightsailDefaultPrivateKey-eu-west-2.pem bitnami@31.16.56.125 -N
然后,我可以使用localhost:8181/RockMongo…耶,从本地机器浏览到RockMongo用户界面

如果我运行以下命令:

ssh -L 8181:127.0.0.1:27017 -i ~/LightsailDefaultPrivateKey-eu-west-2.pem bitnami@31.16.56.125 -N
(27017为蒙哥港)

然后尝试使用以下命令从我的远程计算机访问数据库:

mongo --username XXXXXX --password XXXXXX 31.16.56.125:8181/testdata
我得到以下错误:

~] 2017-12-28322:11:09.791+0000错误:无法连接到服务器31.16.56.125:8181(31.16.56.125),在src/mongo/shell/mongo.js:148尝试连接失败 异常:连接失败

我做错了吗?i、 e.隧道是否仅用于http连接而不用于mongo命令行?我需要以其他方式测试连接吗

我在谷歌上搜索了很多地方,但运气不太好(很多AWS文档建议在防火墙上打个洞——这是人们再也做不到的!)

好吧,我(部分)解决了这个问题,有一些地方出了问题

1) mongo客户端为2.6,在AWS上运行的mongo为3.4。升级这个解决了一些问题——因为我得到了一条更有意义的错误消息

有一件事我确实遇到了麻烦,那就是apt-get似乎在执行更新,但在发出mongo命令时报告的版本仍然是2.6

为了解决这个问题,我必须运行
sudo apt get purge mongodb org*
(注意星号)。然后执行更新。。。。如果需要执行此操作,请按照以下说明操作:

2) 此命令

mongo --username XXXXXX --password XXXXXX 31.16.56.125:8181/testdata
不会工作,因为我省略了“admin”,并且没有指定localhost

但是

也不起作用,并给出以下输出

2018-01-03T22:00:42.380+0000 W NETWORK  [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reason: errno:111 Connection refused
2018-01-03T22:00:42.380+0000 E QUERY    [thread1] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed :
connect@src/mongo/shell/mongo.js:229:14
@(connect):1:6
我唯一可以开始工作的命令是:

mongo admin --username XXXXXX --password XXXXXX --port 8181
默认主机是localhost,因此在本例中它使用隧道,这也将只连接到测试数据库,然后您可以从那里进行管理

根据运行
mongo--help

usage: mongo [options] [db address] [file names (ending in .js)]
db address can be:
  foo                   foo database on local machine
  192.169.0.5/foo       foo database on 192.168.0.5 machine
  192.169.0.5:9999/foo  foo database on 192.168.0.5 machine on port 9999
usage: mongo [options] [db address] [file names (ending in .js)]
db address can be:
  foo                   foo database on local machine
  192.169.0.5/foo       foo database on 192.168.0.5 machine
  192.169.0.5:9999/foo  foo database on 192.168.0.5 machine on port 9999