パケットキャプチャtcpdumpについてのメモ
tcpdump主な使い方
eth1インターフェースで流れている全パケットをキャプチャ(基本)
# tcpdump -n -nn -tttt -s0 -e -i eth1
パケット内容表示/16進ダンプで表示(これをやらない場合はヘッダのみキャプチャされる)
# tcpdump -n -nn -tttt -s0 -e -i eth1 -x # tcpdump -n -nn -tttt -s0 -e -i eth1 -X (強制アスキー変換)
icmpだけキャプチャ
# tcpdump -n -nn -tttt -s0 -e -i eth1 icmp
arpだけキャプチャ
# tcpdump -n -nn -tttt -s0 -e -i eth1 arp
eth1の80番ポートのパケットをキャプチャ
# tcpdump -n -nn -tttt -s0 -e -i eth1 port 80
eth1の80番ポートと22番ポートのパケット両方をキャプチャ
# tcpdump -n -nn -tttt -s0 -e -i eth1 port 80 or port 22
eth1の22番ポート以外のパケットをキャプチャ
# tcpdump -n -nn -tttt -s0 -e -i eth1 not port 22
eth1の 192.168.122.1 がパケットの送信元or先になっているパケットかつ、80番ポートを送信元or先としているパケットをキャプチャ
# tcpdump -n -nn -tttt -s0 -e -i eth1 host 192.168.122.1 and port 80
eth1の 192.168.122.1 がパケットの送信元になっているパケットをキャプチャ
# tcpdump -n -nn -tttt -s0 -e -i eth1 src host 192.168.122.1 ・送信先を指定したい場合は下記のようにやる # tcpdump -n -nn -tttt -s0 -e -i eth1 dst host 192.168.122.1
eth1の ネットワーク帯 192.168.122.* がパケットの送信元or先になっているパケットをキャプチャ
# tcpdump -n -nn -tttt -s0 -e -i eth1 net 192.168.122
オプション説明
-n ホスト名をDNSで引かない。 -nn プロトコル名やポート番号をそのまま表示。例えば 80 をhttpという風に表示しない。 -tttt 各ダンプ行で、デフォルト書式でタイムスタンプを表示し、その前に日付を付ける。 -i インターフェース指定 -s0 -sでキャプチャのバッファサイズを指定。デフォルトだと65535 bytes。-s0ですべてキャプチャ -e 各ダンプ行にリンクレベルヘッダを表示(MAC アドレス等を表示) -x -xをつけないとtcpdumpは通常ヘッダ情報のみ出力する。-xをつけるとパケットの中身も表示してくれる -X -Xをつけるとパケットの中身の表示 & 強制ASCII変換もしてくれる。