「通信はしているのに何か変」「ファイアウォールの設定が正しいか確認したい」——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で基本的なパケットキャプチャ- フィルタで
host・port・tcp/udp/icmpを組み合わせて絞り込む -w ファイル名.pcapで保存してWiresharkで詳細解析できる-AオプションでHTTPの内容などをASCIIで表示(暗号化されていない通信のみ)
📋 Phase 3 ネットワーク基礎チートシートで全コマンドをまとめて確認できます。



コメント