通过代理的莫什隧道


16

我对mosh越来越感兴趣,当我拥有不可靠的wifi链接时,我正越来越多地使用它。我要弄清楚的是如何通过DMZ(连接到Internet和防火墙网络)中的服务器构建隧道。

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

Host server-behind-firewall
  ProxyCommand ssh server-in-dmz nc %h %p

我还弄清楚了如何使用ssh做一条腿并修剪另一条腿:

ssh -t server-in-dmz mosh server-behind-firewall

在server-in-dmz和server-behind-firewall之间,我使用Screen装配了一个mosh会话。

但是我真正想只使用端到端的mosh。我猜想我必须安装server-in-dmz才能监听mosh服务器。但是mosh-server的手册页上说:“如果没有客户端在60秒内与它联系,它将退出。”

简而言之,问题是:如何构建具有多个主机的Mosh隧道?


Answers:


5

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

您<---> dmz服务器上的石头<--->服务器背后防火墙

顺便说一句,让server-in-dmz在端口X上侦听SSH数据包,以将SSH数据包转发到防火墙后的服务器;另外,在另一个端口Y,侦听UDP数据包,以转发到服务器后防火墙的60000端口。莫什服务器。

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

mosh -p 60000 --ssh='ssh -p PORT_X' server-in-dmz

3
需要注意的一件事是,使用tcp拦截器应用程序(例如tsocks或proxychains)将不起作用。这是因为它们仅拦截TCP数据包,而不拦截UDP(mosh使用的是UDP)。
横街2012年

如何将Stone与一个ipv4和一个ipv6地址一起使用?
Janus Troelsen,2015年

0

您也可以使用iptables(在server-in-dmz上)来代替@Hengjie所建议的在应用程序层上转发流量:

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 11559 -j DNAT --to-destination 178.254.55.220:22
iptables -t nat -A PREROUTING -p udp -m udp --dport 60159:60168 -j DNAT --to-destination 178.254.55.220
iptables -t nat -A POSTROUTING -j MASQUERADE
sysctl -w net.ipv4.ip_forward=1

然后,您使用 mosh -p 60159 --ssh='ssh -p 11559' server-in-dmz

注意:

  • 似乎没有办法将mosh-port放入配置文件。:(
  • 我随机选择了端口。
  • 如果执行此操作,则可能需要一些其他iptables配置…
  • 编辑:最好对整个端口范围进行DNAT,因为很有可能您不带服务器就不小心杀死了mosh客户端。如果不转发范围,则必须ssh到服务器并杀死正在运行的mosh服务器。如果您的连接不好,可能会有点烦。
  • 我的用例是通过碘来刺激。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.