Linuxインフラ実践

tcpdumpでパケットをキャプチャ・解析する【実践ガイド】

Linuxインフラ実践
記事内に広告が含まれています。

「通信はしているのに何か変」「ファイアウォールの設定が正しいか確認したい」——tcpdumpはネットワークを流れるパケットをリアルタイムでキャプチャ・解析するコマンドです。インフラエンジニアの必須ツールです。

tcpdump の基本

# インストール
$ sudo apt install tcpdump

# 基本的な使い方(Ctrl+Cで停止)
$ sudo tcpdump -i eth0

# よく使うオプション
# -i eth0  : 監視するインターフェースを指定(anyで全インターフェース)
# -n       : 名前解決しない(IPアドレスをそのまま表示・高速化)
# -v       : 詳細表示  -vv: さらに詳細
# -c N     : N個のパケットを捕捉したら終了
# -w file  : ファイルに保存(Wiresharkで開ける)
# -r file  : 保存したファイルを読み込む

フィルタを使ってパケットを絞り込む

# 特定のホストとの通信のみ
$ sudo tcpdump -i eth0 host 192.168.1.100

# 特定のポートのみ
$ sudo tcpdump -i eth0 port 80
$ sudo tcpdump -i eth0 port 443

# 特定のプロトコルのみ
$ sudo tcpdump -i eth0 tcp
$ sudo tcpdump -i eth0 udp
$ sudo tcpdump -i eth0 icmp

# 送信元・宛先を指定
$ sudo tcpdump -i eth0 src 192.168.1.100
$ sudo tcpdump -i eth0 dst 8.8.8.8

# 条件を組み合わせる(and / or / not)
$ sudo tcpdump -i eth0 host 192.168.1.100 and port 80
$ sudo tcpdump -i eth0 port 80 or port 443
$ sudo tcpdump -i eth0 not port 22    # SSH以外を表示

実践的な使い方

# HTTPリクエストの内容を確認(-A で ASCII表示)
$ sudo tcpdump -i eth0 port 80 -A -n

# ファイルに保存してWiresharkで詳細解析
$ sudo tcpdump -i eth0 -w capture.pcap
# → Wiresharkで capture.pcap を開いてGUIで解析

# SSHの接続試行を監視
$ sudo tcpdump -i eth0 port 22 -n

# DNSの問い合わせを確認
$ sudo tcpdump -i eth0 port 53 -n

# 特定のサブネットとの通信を監視
$ sudo tcpdump -i eth0 net 192.168.1.0/24

まとめ

  • sudo tcpdump -i eth0 -n で基本的なパケットキャプチャ
  • フィルタで hostporttcp/udp/icmp を組み合わせて絞り込む
  • -w ファイル名.pcap で保存してWiresharkで詳細解析できる
  • -A オプションでHTTPの内容などをASCIIで表示(暗号化されていない通信のみ)

📋 Phase 3 ネットワーク基礎チートシートで全コマンドをまとめて確認できます。

コメント

タイトルとURLをコピーしました