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



我有一个 Lightsail AWS 实例启动并运行在 MEAN 堆栈中。我有一个在不同的网络上运行的现有 MEAN 堆栈。目前,节点服务器.js连接到 mongo 位的本地主机(在同一台机器上),我要做的就是将本地主机替换为与我的 AWS 远程服务器上运行的 mongo 的连接。

我理解,出于安全原因,最好通过ssh隧道传输此连接,我认为我很熟悉。

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

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

ssh -L 8181:127.0.0.1:80 -i ~/LightsailDefaultPrivateKey-eu-west-2.pem bitnami@31.16.56.125 -N

然后,我可以使用localhost:8181/rockmongo从本地机器浏览到RockMongo UI。耶。

如果我然后运行以下命令:

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-28T22:11:09.791+0000 错误:无法连接到服务器 31.16.56.125:8181 (31.16.56.125),src/mongo/shell/mongo 的连接尝试失败.js:148 异常:连接失败

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

我为此到处搜索,运气不佳(很多 AWS 文档建议在防火墙上打一个洞 - 这再也做不到了!

好的,我已经(部分)解决了这个问题,有一些问题。

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

我确实遇到问题的一件事是 apt-get 似乎执行了更新,但发出 mongo 命令时报告的版本仍然是 2.6。

为了解决这个问题,我不得不运行sudo apt-get purge mongodb-org*(注意星号)。然后执行更新...。如果您需要执行此操作,请按照以下说明操作: https://docs.mongodb.com/v3.2/tutorial/install-mongodb-on-ubuntu/

2) 此命令

mongo --username XXXXXX --password XXXXXX 31.16.56.125:8181/testdata

无法正常工作,因为我省略了"管理员"并且未指定本地主机!

mongo admin --username XXXXXX --password XXXXXX localhost:8181/testdata

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

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,因此在这种情况下它使用隧道,这也将只连接到测试数据库,然后您可以从那里进行管理。

我还没有深入了解的是 host:port/db 的规范,根据运行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

相关内容

  • 没有找到相关文章

最新更新