tcpdump – ネットワークパケットをキャプチャ・解析するコマンド

診断・疎通確認
スポンサーリンク

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 などで詳細に解析可能です。

参考

スポンサーリンク
Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント