我是一个越来越多的粉丝,越来越多的使用它,当我有不可靠的WiFi链接。 我想弄清楚的是如何通过DMZ中的服务器(连接到互联网和防火墙networking)build立隧道。
我现在用ssh的解决scheme是编辑.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之间,我使用屏幕搭build了一个mosh会话。
但是我真的只想从端到端地使用mosh。 我猜想,我不得不装备服务器在dmz有一个mosh服务器聆听。 但是mosh-server的手册页上写着“如果没有客户在60秒内联系过它,它将退出”。
总之,问题是:如何build立与多个主机的mosh隧道?
你可能想试试stone ,这是一个TCP和UDP数据包转发器。 这基本上意味着你可能有以下configuration:
你<—>在server-in-dmz <—> server-behind-firewall上的石头
换句话说,server-in-dmz监听端口X上的SSH数据包将被转发到server-behind-firewall,而另一个端口Y端口则转发到server-behind-firewall上的端口60000狂舞的服务器。
您必须使用以下命令连接到mosh:
mosh -p 60000 --ssh='ssh -p PORT_X' server-in-dmz
您可以使用iptables(在server-in-dmz上),而不是按照@Hengjie的build议在应用层上转发stream量:
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 -p 60159 --ssh='ssh -p 11559' server-in-dmz
注意: