web-dev-qa-db-ja.com

既存のTCPリレーソリューション

TCPリレーを使用する必要があるシナリオがあります。カスタムを作成する前に、これを実行できる既存のソフトウェアを誰かが知っているかどうかを確認したいと思いました。

別々のネットワーク上に2つのデバイスがあり、相互に接続できません。それらをネットワークAおよびBと呼びましょう。これらのデバイスは通信する必要があり、ネットワークCの「仲介者」リレーを介して通信できます。AはCに接続でき、BはCに接続できます。CはAまたはBに接続できません。 。

A -> C <- B

アイデアは次のとおりです。

  1. AはCへのTCP接続を確立し、単に待機します
  2. Bは、Aから何かが必要なときに、CへのTCP接続を確立します。
  3. CはBからデータを読み取り、Aからすでに開いている接続に応答します。
  4. Aはデータを処理し、Cに応答します。CはBにリレーします。

これを実行できる既存のツールはありますか?

4
Val Blant

リレーマシンがLinuxまたはUNIXライクなOSを実行している場合は、socathttp://www.dest-unreach.org/socat/ 、として含まれています)を使用できます。多くのLinuxディストリビューションのパッケージ)。最も単純な形式では、次のようなものでリレーを開始できます。

socat TCP4-LISTEN:12345 TCP4-LISTEN:54321

(どこ 12345および54321は、サーバーが各接続をリッスンするポートです)。クライアントの1つが一方のポートを接続し、もう一方がもう一方のポートに接続すると、データが両方向で交換されます。一方のマシンがもう一方のマシンが接続する前にデータを送信する場合、データはバッファリングされ、接続後に送信されます。

こちらも参照してください: socat connect-connect "proxy" two inbound TCP connection to export the Firewalled Service?

2
Ale