web-dev-qa-db-ja.com

tcpdumpを使用してパケットの最後のN秒をキャプチャする方法

Tcpdumpを使用して、最後のN秒のパケットをキャプチャするにはどうすればよいですか?

14
sushant

Tcpdumpをn秒間実行してから終了する場合は、タイムアウトを使用できます。

例えば:

timeout 2 tcpdump -eni mon0

それ以外の場合、tcpdumpにこれを行うオプションがあるとは思わない。

15
siesta

これを達成する最良の方法は、tcpdumpの-Gフラグを使用することです。これは、-wと共に使用すると、N秒ごとにダンプを新しいファイルに保存します。例えば:

tcpdump -w outfile-%s -G 10

これにより、10秒ごとに「outfile-XXXX」という名前の新しいファイルが作成されます(XXXXはエポックからの秒数を表します)。

詳細については、tcpdump(8)およびstrftime(3)のマニュアルページを参照してください。

3
Flimzy

Tcpdumpの代わりにtetherealを使用できます。次のコマンドラインオプションを使用できます。

-a duration:X
1
Ugo

私は同じ問題を解決しようとしていたので、n秒間tcpdumpを実行するポータブルスクリプトを作成しました。

#tcpdump_for_n_sec.sh
n=$1
shift #remove first arg from $@ 
tcpdump $@ & x=$!
sleep $n
kill $x

使用法./tcpdump_for_n_sec.sh tcpdumpの秒引数

./tcpdump_for_n_sec.sh 5 i- any not port 22 -s0 -wfile.pcap
0
lafferc

tcpdump options -w new.tcpdump

ps -ef |grep tcpdump

pIDをメモして、11193だと言ってください

at 11:00 kill 11193

11:00になるまで待ってください。キャプチャは強制終了されますが保存されます

0
spartacus

Sudo tcpdump -i -w&tcpdump is sleeping modeを実行します

  • w:出力を.pcapファイルに保存します&:tcpdumpプロセスはスリープモードで実行されます注:必要に応じて、十分な空き容量があることを確認してください。しばらく実行します。プロセスを終了するまでログオフしても中断しません。
0
Lin-man