読者です 読者をやめる 読者になる 読者になる

Q068891のメモ帳

気が向いたときにLinuxだったり、プログラムだったり、適当なメモをざっくばらんに書いてます。

パケットキャプチャ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変換もしてくれる。