【发布时间】:2019-12-04 19:52:42
【问题描述】:
我在我的机器上本地托管了一个 MongoDb,并在端口 localhost:27017 中成功运行。该数据库具有一个名为“testDb”的集合的用户名和密码。在代码中,我可以使用 localhost 成功访问数据库。
我正在尝试使用 ngrok 从远程桌面访问这个 MongoDb。我已经实现了端口转发,命令提示符中显示了以下响应。
转发https://5e825c82.ngrok.io -> http://localhost:27017
我也尝试过更改端口 => 转发https://5e825c82.ngrok.io -> http://localhost:28017
两个端口都失败并显示以下错误消息: 与http://5e825c82.ngrok.io 的连接已成功通过隧道连接到您的 ngrok 客户端,但客户端未能建立与本地地址 localhost:28017 的连接。 确保 Web 服务正在 localhost:28017 上运行,并且它是有效地址。 遇到的错误是:dial tcp [::1]:28017: connectex: No connection could be made because the target machine主动拒绝。
// Works fine
MongoClient client = new MongoClient("mongodb://admin:admin@localhost:27017/testDb");
// Fails:
MongoClient client = new MongoClient("mongodb://admin:admin@5e825c82.ngrok.io/testDb");
我想知道如何使用 ngrok 建立与 MongoDb 的连接。
【问题讨论】:
-
根据错误信息 ngrok 尝试在 IPv6 中建立本地连接。确保在您的 localhost 中启用它或将 ngrok 配置为仅使用 IPv4。
-
我不确定如何进行更改。任何快速链接都会有所帮助。
-
我认为这与 mongodb 是它自己的协议有关,所以没有 http 层。尝试使用 ngrok 创建 TCP 隧道。我认为这对你有用。
标签: mongodb authentication ngrok