トンネル内のSocat実行スクリプト

トンネル内のSocat実行スクリプト

私は次のようにトンネルを実行しています:

socat TCP-LISTEN:9090,fork TCP:192.168.1.3:9090

トンネルを通過する文字列を使用してコードを実行するスクリプトを実行したいと思います。

スクリプトは文字列を変更せず、文字列を個別に処理するだけで、両端間で変更せずに通過できるようにします。

これは可能ですか?

答え1

その今可能socat v2では、アドレスチェーンEXEC. stdin/stdout (ファイル記述子 0 と 1) がリスニング ソケットに接続され、ファイル記述子 3 と 4 が送信ソケットに接続されているスクリプトを実行できます。

socat - "TCP-LISTEN:localhost:8000 | EXEC:myscript.sh | TCP:myserver:80"

例では、myscript.sh は次のようになります。

  • stdin(fd 0) - ポート8000​​からデータを読み取ります
  • stdout(fd 1) - ポート8000​​にデータを書き込む
  • fd 3 - myserver ポート 80 からデータを読み取ります
  • fd 4 - myserver ポート 80 にデータを書き込みます

関連情報