古い接続が失われると、busybox ncサーバーは新しい接続を受け入れることができません。

古い接続が失われると、busybox ncサーバーは新しい接続を受け入れることができません。

BusyBox v1.36.1 (2023-07-17 18:29:09 UTC) マルチコールバイナリ。

次の最小限のCNCサーバーを実行します。

nc -lkp 12345

一度接続してみることができますnc localhost 12345。 Ctrl-C 以降、次の試みは失敗します。

しかし、-e何かを実行すると動作します。

nc -lkp 12345 -e /bin/cat

誰でもこの動作を説明できますか?

答え1

netcatのすべてのバージョンではサポートされていません-e

netcatが存在しない場合、標準入力は-e最初の接続項目にコピーされます。接続が閉じると終了します。

この-eオプションを使用すると、各新しい接続は提供されたコマンドを新たに実行して出力を取得します。複数のものが同時に接続されていると、cat複数の猫がstdinから入力を受け取り送信しようとするため、状況がスムーズに進行しないことがあります。

関連情報