tcpdump(8)
ネットワークトラフィックをダンプ出力する
構文
tcpdump [ オプション ] [ EXPRESSION ]
オプション
-a | ネットワークアドレスとブロードキャストアドレスを名前解決する |
-c COUNT | COUNT個のパケットを受信したら終了する |
-d | コンパイル済みパケットマッチングコードを、人が読める形式で標準出力に出力し終了する |
-dd | パケットマッチングコードをC言語プログラムの一部として使える形式でダンプする |
-e | リンクレベルヘッダをそれぞれの出力行に表示する |
-f | 外部のIPv4アドレスをシンボルではなく数値で表示する |
-i INTERFACE | ネットワーク・インターフェースINTERFACEを監視する |
-l | 標準出力をバッファリングする |
-n | IPアドレスやポート番号を名前に変換しない |
-m MODULE | SMI MIBモジュールをファイルMODULEから読み込む |
-p | プロミスキャスモード(無差別透過モード)にしない |
-q | 簡易的な出力とする |
-r FILE | パケットをファイルFILEから読み込んで処理する(「-」なら標準入力から読み込む) |
-s SNAPLEN | 出力するバイト数をSNAPLENバイトとする |
-t | 時間情報を出力しない |
-tt | 時間情報を整形せずUNIX時間で表示する |
-ttt | 時間情報を直前の行との差分で表示する |
-v | やや詳細に出力する(TTLやサービス種別なども表示される) |
-vv | -vよりも詳細に出力する(NFS応答パケットの追加フィールドなども表示される) |
-vvv | -vvよりも詳細に出力する(telnet SBオプションなども表示される) |
-w FILE | 生パケットをそのままファイルFILEに出力する(-rオプションで読み込める) |
-x | パケットを16進数で表示する(リンクレベルヘッダを除く) |
-A | パケットをASCII文字で表示する |
-B BUFFERSIZE | OSのバッファサイズをBUFFERSIZEとする |
-C FILESIZE | 出力ファイルの最大サイズをFILESIZEメガバイト(MiB)とし、超えた場合は別ファイルにローテートする |
-D | tcpdumpで利用できるネットワークインターフェースをリスト表示する |
-F FILE | 条件式が書かれたファイルFILEを読み込んで利用する(これ以後の引数の条件式は無視) |
-G ROTATE_SECONDS | ファイル書き込みをROTATE_SECONDS秒でローテートする |
-N | ドメイン名を表示せずホスト名のみ表示する |
-S | TCPシーケンス番号を絶対値で表示する |
-T TYPE | 条件にマッチしたパケットをTYPE(rpc、rtp、rtcp、snmp、vat、wb)で指定したタイプで翻訳する |
-X | パケットの16進数表示の際にASCII文字列も表示する |
-W FILECOUNT | ローテート回数がFILECOUNTに達したら終了する |
-Z USER | root権限ではなくユーザーUSER権限で動作する |
EXPRESSION | パケットマッチングの条件式を指定する |
条件式の修飾子
type | 種類を表す(host:ホスト、net:ネット、port:ポート) |
dir | 方向を表す(src:送信元、dst:宛先、src or dst:送信元または宛先、src and dst:送信元かつ宛先) |
proto | プロトコルを表す(ether、fddi、mopdl、ip、ip6、arp、rarp、decnet、lat、sca、moprc、mopdl、icmp、icmp6、tcp、udp) |
主な条件式
dst host HOST | パケットの宛先ホストがHOSTであれば真 |
src host HOST | パケットの送信元ホストがHOSTであれば真 |
host HOST | パケットの宛先もしくは送信元ホストがHOSTであれば真 |
ether dst EHOST | Ethernetの宛先アドレスがEHOSTであれば真 |
ether src EHOST | Ethernetの送信元アドレスがEHOSTであれば真 |
ether host EHOST | Ethernetの宛先または送信元アドレスがEHOSTであれば真 |
gateway HOST | パケットのゲートウェイがHOSTであれば真 |
dst net net | パケットの宛先アドレスがネットワークNETを含んでいれば真 |
src net net | パケットの送信元アドレスがネットワークNETを含んでいれば真 |
net NET | パケットの宛先または送信元アドレスがネットワークNETを含んでいれば真 |
net NET mask MASK | パケットのアドレスをMASKでマスクしてNETになれば真 |
dst port PORT | 宛先ポートがPORTであれば真 |
src port PORT | 送信元ポートがPORTであれば真 |
port PORT | 宛先もしくは送信元ポートがPORTであれば真 |
less LENGTH | パケット長がLENGTH以下であれば真 |
greater LENGTH | パケット長がLENGTH以上であれば真 |
[ip proto] PROTOCOL | IPパケットのプロトコルがPROTOCOL(tcp, udp, icmp)であれば真 |
[ip6 proto] PROTOCOL | IPv6パケットのプロトコルがPROTOCOL(tcp, udp, icmp)であれば真 |
ether broadcast | パケットがEthernetのブロードキャストであれば真 |
ip broadcast | パケットがIPブロードキャストであれば真 |
ether multicast | パケットがEthernetのマルチキャストであれば真 |
ip multicast | パケットがIPマルチキャストであれば真 |
ip6 multicast | パケットがIPv6マルチキャストであれば真 |
[ether proto] PROTOCOL | EthernetのプロトコルがPROTOCOL(ip、ip6、arp、rarp)であれば真 |
説明
ネットワークトラフィック上から、引数として指定した条件式にマッチするパケット(デフォルトはヘッダ)を表示する。条件式を省略した場合はすべてのパケットを表示する。条件式は1つ以上の要素からなり、要素は1つ以上の修飾子(type, dir, proto)と名前もしくは数値で表される。
使用例
192.168.11.1のホストにかかわるすべての入出力パケットを表示する。
# tcpdump host 192.168.11.1
80番ポート宛のパケットを表示する。
# tcpdump dst port 80
ホスト192.168.11.1の80番ポート宛のパケットを表示する。
# tcpdump dst port 80 and host dst 192.168.11.1
標準出力ではなくファイル(dumplog.1、dumplog.2 ...)に1Mバイトごとに出力する。
# tcpdump -C 1 -w dumplog