tcpdumpを使用してローカルのrsyslogサービスからsyslogサーバーにパケットをキャプチャしていますが、tcpdumpで別のコマンドを試行すると(dstオプションを含める/含まない)、表示される結果に遅延が発生します。
予想/必要な動作:
tcpdump -n -e -i any -A | grep hello # without dst option
tcpdump -n -e -i any dst 10.8.8.3 -A | grep hello # with dst option
上記の2つのコマンドは、同時にまたは非常に短い遅延でパケットを表示する必要があります。
実際の動作:
dstオプションを付けたコマンドは、tcpdump -n -e -i any dst 10.8.8.3 -A | grep hello
最大20秒のパケット遅延を示し、パケットが正常に送信されなかったと信じていました。
command1 は直ちにパケットをキャプチャします。
command2はパケットを即座にキャプチャできません。約20秒後、ついにパケットが画面に表示されました。
追加情報:
- Debian 4.9.189-3+deb9u2 (2019-11-11) x86_64 GNU/Linux
- tcpdump バージョン 4.9.3
- libpcap バージョン 1.8.1
答え1
~からtcpdump(8)
(OPバージョンより少し古いバージョンを選択しますが、最新バージョンであればよい):
-l
標準出力ラインをバッファリングします。これは、キャプチャされたデータを表示したい場合に便利です。例えば、
tcpdump -l | tee dat
または
tcpdump -l > dat & tail -f dat
[...]
-U
同様に動作します-l
が、「パケットバッファリング」出力が発生します。 [...]
したがって、-l
「ライブ」ディスプレイが必要なときはいつでも追加してください。tcpdump