tcpdumpを使ってみよう!
tcpdumpでパケットをキャプチャすることができます。良く使うオプションとコマンド例をまとめました。


(使い方)
スーパーユーザーでtcpdumpを実行します。


(良く使うオプション)
-i キャプチャするインターフェースを指定します。-iオプションを指定しない場合はループバックを除いた一番小さいインターフェースが指定されます。(大体の場合はeth0ですね。)
-n アドレスやポート番号を名前に変換しないで表示します。
-s キャプチャするサイズを指定します。-s0ですべてキャプチャします。
-vvv 詳細を出力します。
-w 生データをそのままファイルに書き込みます。WireSharkやEtherealで開く場合に便利です。
-X 16進とASCII文字で表示を行います。

(使用例)
tcpdump -s0 -i eth0 -X
eth0でやりとりしているパケットを16進+ASCIIで表示しています。

tcpdump -s0 -i lo -w test.cap
ループバックでやりとりしているパケットをtest.capというファイルに書き出します。
(フィルタする)
・ポート番号で絞り込む
tcpdump -s0 -i eth0 -X port 80 tcpdump -s0 -i eth0 -X dst port 80 tcpdump -s0 -i eth0 -X src port 80
上から順に
ポート番号80への送信または受信パケットだけに絞り込む
ポート番号80への送信パケットだけを表示する
ポート番号80からの受信パケットだけを表示する

・IPアドレスで絞り込む

tcpdump -s0 -i eth0 -X host 192.168.1.1 tcpdump -s0 -i eth0 -X dst host 192.168.1.1 tcpdump -s0 -i eth0 -X src host 192.168.1.1
IPアドレスが192.168.1.1とのパケットだけを表示する。
192.168.1.1へのパケットだけを表示
192.168.1.1からのパケットだけを表示

・ネットワークアドレスで絞り込む

tcpdump -s0 -i eth0 -X net 192.168.2.0 mask 255.255.255.0
192.168.2.0/24ネットワークとのパケットだけを表示する。

・複数ポート指定

tcpdump -s0 -i eth0 -X port 20 or port 21 or port 80 -w test.cap
FTPまたはHTTPパケットをtest.capにキャプチャする。
Linux,POSIX,BSD,UNIX,gcc,gdb,コマンド,プログラミング,サーバー,ネットワーク,ソースコード,デバッグ,パケットキャプチャ