PR

tcpdump(8)

ネットワークトラフィックをダンプ出力する

構文

tcpdump [ オプション ] [ EXPRESSION ]

オプション

-aネットワークアドレスとブロードキャストアドレスを名前解決する
-c COUNTCOUNT個のパケットを受信したら終了する
-dコンパイル済みパケットマッチングコードを、人が読める形式で標準出力に出力し終了する
-ddパケットマッチングコードをC言語プログラムの一部として使える形式でダンプする
-eリンクレベルヘッダをそれぞれの出力行に表示する
-f外部のIPv4アドレスをシンボルではなく数値で表示する
-i INTERFACEネットワーク・インターフェースINTERFACEを監視する
-l標準出力をバッファリングする
-nIPアドレスやポート番号を名前に変換しない
-m MODULESMI 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 BUFFERSIZEOSのバッファサイズをBUFFERSIZEとする
-C FILESIZE出力ファイルの最大サイズをFILESIZEメガバイト(MiB)とし、超えた場合は別ファイルにローテートする
-Dtcpdumpで利用できるネットワークインターフェースをリスト表示する
-F FILE条件式が書かれたファイルFILEを読み込んで利用する(これ以後の引数の条件式は無視)
-G ROTATE_SECONDS ファイル書き込みをROTATE_SECONDS秒でローテートする
-Nドメイン名を表示せずホスト名のみ表示する
-STCPシーケンス番号を絶対値で表示する
-T TYPE条件にマッチしたパケットをTYPE(rpc、rtp、rtcp、snmp、vat、wb)で指定したタイプで翻訳する
-Xパケットの16進数表示の際にASCII文字列も表示する
-W FILECOUNTローテート回数がFILECOUNTに達したら終了する
-Z USERroot権限ではなくユーザー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 EHOSTEthernetの宛先アドレスがEHOSTであれば真
ether src EHOSTEthernetの送信元アドレスがEHOSTであれば真
ether host EHOSTEthernetの宛先または送信元アドレスが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] PROTOCOLIPパケットのプロトコルがPROTOCOL(tcp, udp, icmp)であれば真
[ip6 proto] PROTOCOLIPv6パケットのプロトコルがPROTOCOL(tcp, udp, icmp)であれば真
ether broadcastパケットがEthernetのブロードキャストであれば真
ip broadcastパケットがIPブロードキャストであれば真
ether multicastパケットがEthernetのマルチキャストであれば真
ip multicastパケットがIPマルチキャストであれば真
ip6 multicastパケットがIPv6マルチキャストであれば真
[ether proto] PROTOCOLEthernetのプロトコルが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