返回指南列表
网络访问

ngrok SSH 转发

创建临时公网 TCP endpoint,把远程 SSH 暴露给 Redock 使用。

ngrok 适合临时访问没有公网 IP、位于 NAT 后面的 Mac、Linux 或 Windows 主机。它会创建一个公网 TCP endpoint,并把流量转发到本机 SSH 的 22 端口。

只在需要时使用 ngrok。TCP endpoint 是公网入口,请使用强密码或 SSH Key,并在用完后关闭 tunnel。

准备条件

  • 本机 SSH 已经可以在局域网内连接。
  • 这台主机已安装 ngrok agent。
  • ngrok 账号已有 authtoken。
  • 当前账号可以使用 TCP endpoints。ngrok 文档说明 free plan 使用 TCP endpoints 需要添加有效付款方式。

安装并登录

macOS:

brew install ngrok
ngrok config add-authtoken YOUR_NGROK_AUTHTOKEN

Windows 可以从官网下载 ngrok,或使用包管理器安装,然后在 PowerShell 中执行同样的 authtoken 命令:

ngrok config add-authtoken YOUR_NGROK_AUTHTOKEN

启动 SSH 转发

在要被访问的主机上执行:

ngrok tcp 22

ngrok 会输出类似这样的 forwarding 地址:

Forwarding  tcp://0.tcp.ngrok.io:12345 -> localhost:22

在 Redock 里需要把它拆成 Host 和 Port:

Host: 0.tcp.ngrok.io
Port: 12345
Username: your-host-username
Connection Mode: SSH
Auth: SSH Key

Host 字段不要包含 tcp://

保持地址稳定

随机 TCP endpoint 每次启动都可能变化。如果你需要稳定地址,可以在 ngrok Dashboard 创建 TCP Address,然后使用分配到的 host 和 port 启动 tunnel。

ngrok tcp 22 --url tcp://1.tcp.eu.ngrok.io:12345

具体 hostname 和 port 由 ngrok 分配,不能任意选择。

安全建议

  • 优先使用 SSH Key。
  • 限制远程主机允许登录的 SSH 用户。
  • 会话结束后关闭 ngrok。
  • 不要通过 ngrok 暴露弱密码 SSH。
  • 日常私有访问优先使用 Tailscale,而不是公网 TCP endpoint。
  • Mosh 不能通过简单的 ngrok TCP SSH tunnel 工作,因为 Mosh 在 SSH bootstrap 后会切换到 UDP。

常见问题

  • Redock 无法连接:确认 ngrok 仍在运行,并且 Host/Port 与最新 forwarding 地址一致。
  • Authentication failed:ngrok 转发已经通了,但 SSH 用户名、密码或 key 错了。
  • 地址变化:更新 Redock Host,或者使用 reserved TCP Address。
  • ngrok tcp 22 被拒绝:检查 ngrok Dashboard 中的账号套餐、账单和 TCP endpoint 可用性。

官方参考

跟着指南在 Redock 里试一下

用手机控制 Coding Agent,随时进行开发

免费获取 Redock