tcpdumpチート集
基本キャプチャ・ホスト/ポート/プロトコルフィルタ・出力制御・BPF・高度な利用法。
- 更新日
- 2026-05-29
- 参照範囲
- 公式ドキュメント / man page / 主要ベンダーCLI
- 対象実装
- 主要 Linux / BSD / ネットワーク機器 CLI の一般的な実装
- 免責
- OS とバージョン差分は実環境で確認してください。
このチートシートの使いどころ
tcpdump チートシートは、インターフェース指定、BPF フィルタ、ホスト/ポート/プロトコル絞り込み、パケット保存(pcap)と読み込み、表示オプションを日本語で整理した一覧です。対象は一般的な libpcap / tcpdump です。疎通不可やパケットロスの切り分け、特定通信の抽出、pcap 保存による事後解析の初動に使います。
59 / 59
tcpdumpデフォルトインターフェースでキャプチャ開始
sudo tcpdumptcpdump -i {iface}指定インターフェースでキャプチャ
sudo tcpdump -i eth0tcpdump -i any全インターフェースでキャプチャ
sudo tcpdump -i anytcpdump -c {n}指定パケット数をキャプチャして終了
sudo tcpdump -c 100tcpdump -D利用可能なインターフェース一覧を表示
sudo tcpdump -Dtcpdump -s {size}スナップショット長を設定(バイト)
sudo tcpdump -s 0tcpdump -s 0パケット全体をキャプチャ
sudo tcpdump -s 0tcpdump -q簡易出力モード
sudo tcpdump -qtcpdump -eリンク層ヘッダも表示
sudo tcpdump -etcpdump host {ip}特定ホストのトラフィックをキャプチャ
sudo tcpdump host 192.168.1.1tcpdump src host {ip}送信元ホストでフィルタ
sudo tcpdump src host 10.0.0.1tcpdump dst host {ip}宛先ホストでフィルタ
sudo tcpdump dst host 10.0.0.2tcpdump net {cidr}ネットワーク範囲でフィルタ
sudo tcpdump net 192.168.1.0/24tcpdump src net {cidr}送信元ネットワーク範囲でフィルタ
sudo tcpdump src net 10.0.0.0/8tcpdump dst net {cidr}宛先ネットワーク範囲でフィルタ
sudo tcpdump dst net 172.16.0.0/12tcpdump host A and host B2ホスト間のトラフィック
sudo tcpdump host 10.0.0.1 and host 10.0.0.2tcpdump not host {ip}特定ホストを除外
sudo tcpdump not host 192.168.1.1tcpdump port {n}特定ポートのトラフィックをキャプチャ
sudo tcpdump port 80tcpdump src port {n}送信元ポートでフィルタ
sudo tcpdump src port 443tcpdump dst port {n}宛先ポートでフィルタ
sudo tcpdump dst port 3306tcpdump portrange {a}-{b}ポート範囲でフィルタ
sudo tcpdump portrange 8000-9000tcpdump port 80 or port 443複数ポートでフィルタ(OR条件)
sudo tcpdump port 80 or port 443tcpdump not port 22特定ポートを除外
sudo tcpdump not port 22tcpdump host {ip} and port {n}ホストとポートの複合フィルタ
sudo tcpdump host 10.0.0.1 and port 80tcpdump tcpTCPパケットのみキャプチャ
sudo tcpdump tcptcpdump udpUDPパケットのみキャプチャ
sudo tcpdump udptcpdump icmpICMPパケットのみキャプチャ
sudo tcpdump icmptcpdump arpARPパケットのみキャプチャ
sudo tcpdump arptcpdump ip6IPv6パケットのみキャプチャ
sudo tcpdump ip6tcpdump vlanVLANタグ付きパケットをキャプチャ
sudo tcpdump vlantcpdump 'tcp[tcpflags] & tcp-syn != 0'SYNフラグ付きTCPパケット
sudo tcpdump 'tcp[tcpflags] & tcp-syn != 0'tcpdump 'tcp[tcpflags] & tcp-rst != 0'RSTフラグ付きTCPパケット
sudo tcpdump 'tcp[tcpflags] & tcp-rst != 0'tcpdump -w {file}キャプチャをpcapファイルに保存
sudo tcpdump -w capture.pcaptcpdump -r {file}pcapファイルを読み込み
tcpdump -r capture.pcaptcpdump -n名前解決しない(IPアドレスで表示)
sudo tcpdump -ntcpdump -nnホスト名・ポート名を解決しない
sudo tcpdump -nntcpdump -tタイムスタンプを表示しない
sudo tcpdump -ttcpdump -ttUnix時間でタイムスタンプ表示
sudo tcpdump -tttcpdump -tttパケット間の経過時間を表示
sudo tcpdump -ttttcpdump -v詳細出力
sudo tcpdump -vtcpdump -vvより詳細な出力
sudo tcpdump -vvtcpdump -XHEXとASCIIでパケット内容を表示
sudo tcpdump -Xtcpdump -AASCIIでパケット内容を表示
sudo tcpdump -Atcpdump -C {size}ファイルサイズ制限(MB)でローテーション
sudo tcpdump -w out.pcap -C 100tcpdump -W {count}ローテーションファイル数を制限
sudo tcpdump -w out.pcap -C 100 -W 10tcpdump -G {sec}指定秒数ごとにファイルをローテーション
sudo tcpdump -w out_%H%M.pcap -G 3600tcpdump -Z {user}指定ユーザー権限でキャプチャ
sudo tcpdump -Z tcpdumptcpdump -l行バッファリングモード(パイプ用)
sudo tcpdump -l | tee output.txttcpdump -Kチェックサム検証をスキップ
sudo tcpdump -Ktcpdump -S絶対TCPシーケンス番号を表示
sudo tcpdump -Sand / &&論理AND条件
sudo tcpdump tcp and port 80or / ||論理OR条件
sudo tcpdump port 80 or port 443not / !論理NOT条件
sudo tcpdump not arpgreater {n}指定バイト以上のパケット
sudo tcpdump greater 1000less {n}指定バイト以下のパケット
sudo tcpdump less 100tcp[13] == 2SYNパケットのみ(TCPフラグ指定)
sudo tcpdump 'tcp[13] == 2'tcp[13] == 18SYN-ACKパケットのみ
sudo tcpdump 'tcp[13] == 18'tcp[13] & 4 != 0RSTフラグを含むパケット
sudo tcpdump 'tcp[13] & 4 != 0'ip[6:2] & 0x1fff != 0フラグメント化されたパケット
sudo tcpdump 'ip[6:2] & 0x1fff != 0'| Command | Description | Example | Copy |
|---|---|---|---|
tcpdump | デフォルトインターフェースでキャプチャ開始 | sudo tcpdump | |
tcpdump -i {iface} | 指定インターフェースでキャプチャ | sudo tcpdump -i eth0 | |
tcpdump -i any | 全インターフェースでキャプチャ | sudo tcpdump -i any | |
tcpdump -c {n} | 指定パケット数をキャプチャして終了 | sudo tcpdump -c 100 | |
tcpdump -D | 利用可能なインターフェース一覧を表示 | sudo tcpdump -D | |
tcpdump -s {size} | スナップショット長を設定(バイト) | sudo tcpdump -s 0 | |
tcpdump -s 0 | パケット全体をキャプチャ | sudo tcpdump -s 0 | |
tcpdump -q | 簡易出力モード | sudo tcpdump -q | |
tcpdump -e | リンク層ヘッダも表示 | sudo tcpdump -e | |
tcpdump host {ip} | 特定ホストのトラフィックをキャプチャ | sudo tcpdump host 192.168.1.1 | |
tcpdump src host {ip} | 送信元ホストでフィルタ | sudo tcpdump src host 10.0.0.1 | |
tcpdump dst host {ip} | 宛先ホストでフィルタ | sudo tcpdump dst host 10.0.0.2 | |
tcpdump net {cidr} | ネットワーク範囲でフィルタ | sudo tcpdump net 192.168.1.0/24 | |
tcpdump src net {cidr} | 送信元ネットワーク範囲でフィルタ | sudo tcpdump src net 10.0.0.0/8 | |
tcpdump dst net {cidr} | 宛先ネットワーク範囲でフィルタ | sudo tcpdump dst net 172.16.0.0/12 | |
tcpdump host A and host B | 2ホスト間のトラフィック | sudo tcpdump host 10.0.0.1 and host 10.0.0.2 | |
tcpdump not host {ip} | 特定ホストを除外 | sudo tcpdump not host 192.168.1.1 | |
tcpdump port {n} | 特定ポートのトラフィックをキャプチャ | sudo tcpdump port 80 | |
tcpdump src port {n} | 送信元ポートでフィルタ | sudo tcpdump src port 443 | |
tcpdump dst port {n} | 宛先ポートでフィルタ | sudo tcpdump dst port 3306 | |
tcpdump portrange {a}-{b} | ポート範囲でフィルタ | sudo tcpdump portrange 8000-9000 | |
tcpdump port 80 or port 443 | 複数ポートでフィルタ(OR条件) | sudo tcpdump port 80 or port 443 | |
tcpdump not port 22 | 特定ポートを除外 | sudo tcpdump not port 22 | |
tcpdump host {ip} and port {n} | ホストとポートの複合フィルタ | sudo tcpdump host 10.0.0.1 and port 80 | |
tcpdump tcp | TCPパケットのみキャプチャ | sudo tcpdump tcp | |
tcpdump udp | UDPパケットのみキャプチャ | sudo tcpdump udp | |
tcpdump icmp | ICMPパケットのみキャプチャ | sudo tcpdump icmp | |
tcpdump arp | ARPパケットのみキャプチャ | sudo tcpdump arp | |
tcpdump ip6 | IPv6パケットのみキャプチャ | sudo tcpdump ip6 | |
tcpdump vlan | VLANタグ付きパケットをキャプチャ | sudo tcpdump vlan | |
tcpdump 'tcp[tcpflags] & tcp-syn != 0' | SYNフラグ付きTCPパケット | sudo tcpdump 'tcp[tcpflags] & tcp-syn != 0' | |
tcpdump 'tcp[tcpflags] & tcp-rst != 0' | RSTフラグ付きTCPパケット | sudo tcpdump 'tcp[tcpflags] & tcp-rst != 0' | |
tcpdump -w {file} | キャプチャをpcapファイルに保存 | sudo tcpdump -w capture.pcap | |
tcpdump -r {file} | pcapファイルを読み込み | tcpdump -r capture.pcap | |
tcpdump -n | 名前解決しない(IPアドレスで表示) | sudo tcpdump -n | |
tcpdump -nn | ホスト名・ポート名を解決しない | sudo tcpdump -nn | |
tcpdump -t | タイムスタンプを表示しない | sudo tcpdump -t | |
tcpdump -tt | Unix時間でタイムスタンプ表示 | sudo tcpdump -tt | |
tcpdump -ttt | パケット間の経過時間を表示 | sudo tcpdump -ttt | |
tcpdump -v | 詳細出力 | sudo tcpdump -v | |
tcpdump -vv | より詳細な出力 | sudo tcpdump -vv | |
tcpdump -X | HEXとASCIIでパケット内容を表示 | sudo tcpdump -X | |
tcpdump -A | ASCIIでパケット内容を表示 | sudo tcpdump -A | |
tcpdump -C {size} | ファイルサイズ制限(MB)でローテーション | sudo tcpdump -w out.pcap -C 100 | |
tcpdump -W {count} | ローテーションファイル数を制限 | sudo tcpdump -w out.pcap -C 100 -W 10 | |
tcpdump -G {sec} | 指定秒数ごとにファイルをローテーション | sudo tcpdump -w out_%H%M.pcap -G 3600 | |
tcpdump -Z {user} | 指定ユーザー権限でキャプチャ | sudo tcpdump -Z tcpdump | |
tcpdump -l | 行バッファリングモード(パイプ用) | sudo tcpdump -l | tee output.txt | |
tcpdump -K | チェックサム検証をスキップ | sudo tcpdump -K | |
tcpdump -S | 絶対TCPシーケンス番号を表示 | sudo tcpdump -S | |
and / && | 論理AND条件 | sudo tcpdump tcp and port 80 | |
or / || | 論理OR条件 | sudo tcpdump port 80 or port 443 | |
not / ! | 論理NOT条件 | sudo tcpdump not arp | |
greater {n} | 指定バイト以上のパケット | sudo tcpdump greater 1000 | |
less {n} | 指定バイト以下のパケット | sudo tcpdump less 100 | |
tcp[13] == 2 | SYNパケットのみ(TCPフラグ指定) | sudo tcpdump 'tcp[13] == 2' | |
tcp[13] == 18 | SYN-ACKパケットのみ | sudo tcpdump 'tcp[13] == 18' | |
tcp[13] & 4 != 0 | RSTフラグを含むパケット | sudo tcpdump 'tcp[13] & 4 != 0' | |
ip[6:2] & 0x1fff != 0 | フラグメント化されたパケット | sudo tcpdump 'ip[6:2] & 0x1fff != 0' |