ncコマンドのマニュアルページには、次の情報が含まれています。
-k は、nc が現在の接続が完了した後に他の接続を受信し続けるように強制します。 -lオプションなしでこのオプションを使用すると、エラーが発生します。
ただし、nc --help
出力には -k オプションに関する情報は含まれません。
このようなパケットをキャプチャしようとすると
nc -kl -i 86400 -p 44444 > nc_44444.dmp
次のエラーが発生します。
netcat:無効なオプション - 'k'
それでは、問題は何ですか? 「-k」というオプションはありますか?
私の問題は、ネットワークからいくつかのデータをキャプチャする必要があり、時にはクライアントアプリケーションがサーバーポートから切断されて再接続される可能性があることです。したがって、切断/再接続イベントに問題が発生したくありません。
答え1
netcat
あなたが考えるコマンドを使用していないようです。つまり、検査結果ですwhich nc
。私にとっては(CentOS 6.6)動作します/usr/bin/nc
。-k
ただし、正しい構文は次のとおりです。
nc -l -k -i 86400 localhost 44444 > nc_44444.dmp
正しく機能しない場合は、パッケージncat
の一部を試してくださいnmap
。 (たくさんありますインターネット猫実装...)
答え2
私は同じエラーが発生しましたGNU netcat 0.7.1
。このフラグはBSDバージョンでサポートされていますnc
。
答え3
おそらく、あなたのバージョンncにはこのオプションはありません-k
。ループを使用せずにアップグレードしたり、回避策として使用したりできます-k
。