netcatと名前付きパイプを使用したブリッジング/トンネリング

netcatと名前付きパイプを使用したブリッジング/トンネリング

サーバー(S)を介して間接的に互いに通信する2つのデバイス(AとB)があります。

/---\       /---\       /---\
| A | <===> | S | <===> | B |
\---/       \---/       \---/

A と B は独立して S に接続、切断、再接続できます。

私のアプローチは、名前付きパイプをバッファとして使用し、2つのnetcatインスタンスを使用してAとBのポートを開き、受信したコンテンツを1つのパイプに保存し、別のパイプからコンテンツを再送信することでした。

次のコマンドを使用して実行します。

mkfifo a2b
mkfifo b2a
nc -n -u -lkvp 5050 < b2a | tee a2b &
nc -n -u -lkvp 5051 < a2b | tee b2a &

オプションの説明:

  • -n:ネームサーバーの可用性の問題を防ぐ
  • -u: UDPの使用
  • -l:聞き始める
  • -k:接続が切断された後も開いたままです。
  • -v:冗談
  • | tee fifo:受信した文字をstdoutに出力して書き込みfifo

Aに接続しS:5050てBに接続してS:5051(たとえば、nc -uv S 5050Aの場合)、一部の文字を送信すると、その文字がSの出力に表示されますが、Bでは受信されません(その逆も同様)。

私は何が間違っていましたか?

私が達成しようとしている目標の正しい用語は何ですか?橋、トンネリング、転送、中継ですか?

関連情報