SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

tcpdumpの使い方

tcpdump で、パケットキャプチャできる。

インストール

yum install tcpdump

基本

そのまま実行すると、通信のパケットのヘッダが延々と出力される。

# tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
10:12:35.299981 IP xxx.example.jp.50022 > example.ne.jp.64123: P 169366725:169366921(196) ack 4014725361 win 221
10:12:35.300415 IP xxx.example.jp.36244 > dns5.sakura.ad.jp.domain:  37991+ PTR? 40.50.60.70.in-addr.arpa. (43)
10:12:35.303521 IP dns5.sakura.ad.jp.domain > xxx.example.jp.36244:  37991 1/0/0 (91)
10:12:35.303674 IP xxx.example.jp.35979 > dns5.sakura.ad.jp.domain:  48133+ PTR? 30.40.50.60.in-addr.arpa. (45)
10:12:35.304749 IP dns5.sakura.ad.jp.domain > xxx.example.jp.35979:  48133 1/0/0 (80)
10:12:35.304837 IP xxx.example.jp.50022 > example.ne.jp.64123: P 196:376(180) ack 1 win 221
10:12:35.305011 IP xxx.example.jp.40779 > dns5.sakura.ad.jp.domain:  40018+ PTR? 10.20.30.40.in-addr.arpa. (45)
10:12:35.305518 IP dns5.sakura.ad.jp.domain > xxx.example.jp.40779:  40018 1/0/0 (76)
10:12:35.324247 IP example.ne.jp.64123 > xxx.example.jp.50022: . ack 0 win 256
10:12:35.324277 IP xxx.example.jp.50022 > example.ne.jp.64123: P 376:1428(1052) ack 1 win 221

オプション -n を指定すると、ポート番号とサービス名の変換や、IPアドレスとホスト名の変換などの無駄な処理を省ける。

# tcpdump -n

フィルタリング

うまくフィルタリングすることで、欲しい情報を見やすくできる。

↓ 80番ポートだけ

# tcpdump -n port 80

↓ 22番ポートを除く(自分が接続しているsshの通信を除外)

# tcpdump -n not port 22

↓ arp と 22番ポートを除く(ネットワークに大量に流れているARPのパケットと、自分が接続しているsshの通信を除外)

# tcpdump -n not arp and not port 22

↓ 接続元、接続先に192.168.123.123 が関係あるものだけ

# tcpdump -n host 192.168.123.123

↓ and 条件と or 条件

# tcpdump -n host 192.168.123.123 and \( port 80 or port 443 \)

↓ バックグラウンドで実行

# tcpdump -n port 80 >> tcpdump.log &

↓ ファイルへの書き込みは -w でも可能だが、読むときに -r しないといけないので、ちょっと見たいだけの時には面倒

# tcpdump -n port 80 -w tcpdump.log &
↓
# tcpdump -r tcpdump.log > tcpdump.txt

関連するメモ

コメント