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,コマンド,プログラミング,サーバー,ネットワーク,ソースコード,デバッグ,パケットキャプチャ