tcpdump コマンドは、ネットワークインターフェースを流れるパケットをキャプチャし、内容を解析・表示するためのコマンドです。
ネットワークトラブルの調査、通信内容の確認、セキュリティ診断などに利用されます。
構文(Syntax)
tcpdump [オプション] [フィルタ式]
- フィルタ式では、ホスト・ポート・プロトコルなどを指定可能(例:
host 192.168.1.1,port 80,tcp)。
主なオプション一覧
| オプション | 説明 | 使用例 |
|---|---|---|
-i IFACE | インターフェースを指定(デフォルトは最初の有効IF) | tcpdump -i eth0 |
-n | 名前解決を行わずIP・ポート番号を数値表示 | tcpdump -n |
-c N | 指定したパケット数だけキャプチャ | tcpdump -c 10 |
-w FILE | キャプチャをファイルに保存(pcap形式) | tcpdump -w capture.pcap |
-r FILE | 保存したキャプチャファイルを読み込んで表示 | tcpdump -r capture.pcap |
-v / -vv | 詳細表示レベルを増やす | tcpdump -vv -i eth0 |
-A | ペイロードをASCII形式で表示 | tcpdump -A port 80 |
-X | ヘッダ+データを16進/ASCII両方で表示 | tcpdump -X port 80 |
-s N | キャプチャ長を指定(デフォルトは262144バイト) | tcpdump -s 0 -i eth0 |
実行例
インターフェースを指定してキャプチャ
sudo tcpdump -i eth0
(eth0を流れるパケットがリアルタイムに表示されます)
10パケットだけ取得
sudo tcpdump -c 10 -i eth0
HTTP通信(ポート80)のみ表示
sudo tcpdump -i eth0 tcp port 80
出力例:
IP 192.168.1.10.54321 > 93.184.216.34.80: Flags [S], seq 123456, win 64240, length 0
特定ホストの通信を確認
sudo tcpdump host 192.168.1.100
キャプチャをファイルに保存
sudo tcpdump -i eth0 -w web_traffic.pcap
保存ファイルを読み込み表示
tcpdump -r web_traffic.pcap
ペイロードをASCII/16進表示
sudo tcpdump -A -i eth0 port 80
sudo tcpdump -X -i eth0 port 80
エラー例(存在しないインターフェース)
tcpdump -i fake0
出力例:
tcpdump: fake0: No such device exists
関連コマンド
wireshark: GUIで詳細解析が可能なネットワーク解析ツール。ss: ソケット状態を表示するコマンド。nmap: ネットワーク探索・ポートスキャンを行うツール。
備考
- 通常、パケットキャプチャには root 権限が必要です。
- 出力が大量になるため、フィルタを指定して絞り込むのが実用的です。
- 取得した
.pcapファイルは Wireshark などで詳細に解析可能です。
参考
- manページ: https://man7.org/linux/man-pages/man8/tcpdump.8.html
- tcpdump公式: https://www.tcpdump.org/

コメント