通过代理的 mosh 隧道

spe*_*ool 16 ssh tunneling

我越来越喜欢mosh,当我的 wifi 链接不可靠时,我越来越多地使用它。我想弄清楚的是如何通过位于 DMZ(连接到互联网和防火墙网络)中的服务器建立隧道。

我当前使用 ssh 的解决方案是编辑.ssh/config以包含以下行:

Host server-behind-firewall
  ProxyCommand ssh server-in-dmz nc %h %p
Run Code Online (Sandbox Code Playgroud)

我还想出了如何使用 ssh 来做一条腿而另一条腿:

ssh -t server-in-dmz mosh server-behind-firewall
Run Code Online (Sandbox Code Playgroud)

在 server-in-dmz 和 server-behind-firewall 之间,我使用 screen 设置了一个 mosh 会话。

但是我真的很想从头到尾使用 mosh。我想我必须安装 server-in-dmz 才能让 mosh-server 监听。但是 mosh-server 的手册页说“如果在 60 秒内没有客户端联系它,它将退出。”

简而言之,问题是:如何建立多主机的mosh隧道?

Hen*_*jie 5

您可能想尝试Stone,它是一个 TCP 和 UDP 数据包中继器。这实质上意味着您可能具有以下配置:

你 <---> 石头在 server-in-dmz <---> server-behind-firewall

换句话说,让 server-in-dmz 在端口 X 上侦听要转发到 server-behind-firewall 的 SSH 数据包,以及另一个端口,即端口 Y,用于将 UDP 数据包转发到 server-behind-firewall 上的端口 60000。 mosh服务器。

您必须使用以下命令连接到 mosh:

mosh -p 60000 --ssh='ssh -p PORT_X' server-in-dmz
Run Code Online (Sandbox Code Playgroud)

  • 需要注意的一件有趣的事情是,使用 tcp 拦截器应用程序(例如 tsocks 或 proxychains)将不起作用。这是因为它们只拦截 TCP 数据包而不拦截 UDP(这是 mosh 使用的)。 (3认同)