使用 ngrok 隧道化 mongodb

dee*_*pss 7 authentication mongodb ngrok

我在我的机器上本地托管了一个 MongoDb,并在端口 localhost:27017 中成功运行。该数据库有一个用户名和密码,其中包含一个名为“testDb”的集合。在代码中,我能够使用本地主机成功访问数据库。

我正在尝试使用 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: 由于目标机器主动拒绝,无法建立连接。

// Works fine
MongoClient client = new MongoClient("mongodb://admin:admin@localhost:27017/testDb");

// Fails:
MongoClient client = new MongoClient("mongodb://admin:admin@5e825c82.ngrok.io/testDb");
Run Code Online (Sandbox Code Playgroud)

我想知道如何使用 ngrok 建立到 MongoDb 的连接。

kri*_*ris 6

MongoDBTCP不使用HTTP.

尝试以下命令:

ngrok tcp 27017
Run Code Online (Sandbox Code Playgroud)

(注意tcp,不是http我认为你使用的)


在使用 TCP 时,出于某种原因,您需要执行一些额外的步骤,当您尝试上述命令时,ngrok 会提示您并告诉您需要做什么。

  1. https://dashboard.ngrok.com/get-started注册一个 ngrok 帐户
  2. 在本地运行此页面上方框中显示的命令3. 连接您的帐户(例如ngrok authtoken 123ABC456ETC

在此处输入图片说明

  1. 现在再次尝试该命令 ( ngrok tcp 27017)