我有一个 Lightsail AWS 实例启动并使用 MEAN 堆栈运行。我有一个在不同网络上运行的现有 MEAN 堆栈。目前,节点 server.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 ...yay 从本地计算机浏览到 RockMongo UI。
如果我然后运行以下命令:
ssh -L 8181:127.0.0.1:27017 -i ~/LightsailDefaultPrivateKey-eu-west-2.pem bitnami@31.16.56.125 -N
(27017 是 mongo 端口)
然后尝试使用以下命令从我的远程计算机访问数据库:
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 文档建议在防火墙上打一个洞 - 再也不能这样做了!)