プロキシ経由のmoshトンネル


16

私はmoshの成長しているファンであり、信頼性の低いwifiリンクがある場合にますますそれを使用しています。私が理解しようとしているのは、DMZ(インターネットおよびファイアウォールで接続されたネットワークに接続)にあるサーバーを介してトンネルを構築する方法です。

私の現在の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の間で、画面を使用してmoshセッションをリグアップしました。

しかし、モッシュをエンドツーエンドで使用したいのです。mosh-serverをリッスンさせるには、server-in-dmzをリグする必要があると思います。ただし、mosh-serverのマニュアルページには、「60秒以内にクライアントが接続していない場合は終了します」と書かれています。

要するに、問題は、複数のホストでmoshトンネルを構築する方法ですか?


回答:


5

TCPおよびUDPパケットリピーターであるstoneを試してください。これが本質的に意味するのは、次の構成があることです。

あなたは<---> server-in-dmzのストーン<---> server-behind-firewall

言い換えると、server-in-dmzがポートXでリッスンするサーバーのファイアウォールのSSHパケットをリッスンし、別のポート、ポートYのサーバーのファイアウォールのポート60000へのUDPパケット転送をリッスンするmosh-server。

次のコマンドを使用してmoshに接続する必要があります。

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

3
注意すべき興味深い点の1つは、tsocksやproxychainsなどのtcpインターセプターアプリケーションを使用しても機能しないことです。これは、TCPパケットのみをインターセプトし、UDP(moshが使用するもの)ではないためです。
恒傑

1つのipv4アドレスと1つのipv6アドレスで石を使用するにはどうすればよいですか?
ヤヌストロ

0

@Hengjieが示唆するように、アプリケーション層でトラフィックを転送する代わりに、iptables(server-in-dmz上)を使用することもできます。

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設定が必要になる場合があります…
  • 編集:サーバーを使用せずにmoshクライアントを誤って強制終了する可能性が高いため、すべてのポートをDNATすることをお勧めします。範囲を転送しない場合は、サーバーにsshして、実行中のmoshサーバーを強制終了する必要があります。そもそも接続に問題がある場合は、少し面倒です。
  • これの私の使用例は、ヨウ素によるモッシュです。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.