如何修复 ngrok 转发端口?

Posted

技术标签:

【中文标题】如何修复 ngrok 转发端口?【英文标题】:How to fix ngrok forwarding port? 【发布时间】:2020-12-10 13:58:37 【问题描述】:

我正在 ssh-ing 到远程桌面。由于我必须通过 Internet 连接,因此我使用 ngrok 在远程端暴露了 ssh 端口(22),并且一切正常。我使用命令连接到桌面

ssh username@2.tcp.ngrok.io -p portno

当我从显示的行启动 ngrok 服务时,我从远程端获取端口号 Forwarding tcp://2.tcp.ngrok.io:portno -> localhost:22

但是,每次我在远程端启动一个新的 ngrok 会话时,都会生成一个新的portno。现在,除非我打开了辅助连接(通常使用 teamviewer),否则我将无法知道该端口号是什么。 如何使用固定的portno 启动 ngrok 服务。这是因为我希望在启动时拥有 ngrok 服务,因为我必须重新启动我的远程桌面几次,并且仍然想使用 ssh 连接到桌面。

谢谢。

【问题讨论】:

【参考方案1】:

您需要在 ngrok 上保留一个 TCP 地址,这将为您提供一个固定地址。

要将隧道与保留的 TCP 地址相关联,您应该在启动隧道时在您的 ngrok 配置中包含 remote-addr 选项。

来自docs的示例:ngrok tcp --region=us --remote-addr 1.tcp.ngrok.io:20301 22

【讨论】:

以上是关于如何修复 ngrok 转发端口?的主要内容,如果未能解决你的问题,请参考以下文章

如何让 Ngrok 固定(静态)端口 TCP

如何使用 Ngrok 转发 SMB?

ngrok 如何在防火墙后面工作?

如何修复监听端口 80 的远程端口转发失败

Ngrok 如何转发到特定的 URL?

内网转发ngrok的使用