CentOS7.4 tcpdumpでパケット取得する時のオプション

シェアする

多くのUNIX系システムにある「tcpdump」を、私がよく使うものを中心にメモします。

私の場合、パケットを見る時は、通信周りで不具合があった場合や、初めて使うソフトウェアで通信内容を知りたい時ぐらいで、滅多に使うことはありません。
ただ、使いたい時に、毎回、googleなどの検索で、tcpdumpのオプションを調べるのもアレですので、今更ながら、よく使うであろうコマンドを記載しておこうと思います。

tcpdumpのインストール

tcpdumpのインストールされていない場合は、インストールをします。

# yum info tcpdump
   :(省略)
Available Packages
Name : tcpdump
Arch : x86_64
Epoch : 14
Version : 4.9.0
Release : 5.el7
Size : 415 k
Repo : base/7/x86_64
Summary : A network traffic monitoring tool
   :(省略)
# yum -y install tcpdump
   :(省略)
Installed:
tcpdump.x86_64 14:4.9.0-5.el7
 
Complete!

よく使う基本的なオプション

特に、こだわりなくパケットをキャプチャーする時は、下記のオプションにて実行します。

# tcpdump -n -i eth0 -w /tmp/dumpfile.cap
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
   :(省略)  <= キャプチャーを停止する時は[Ctrl]キー+[c]キー
packets captured
5 packets received by filter
0 packets dropped by kernel

オプションの説明

オプション  説明
-n ホストアドレスを名前変換しないようにします。 
 -i インターフェース名  パケットを取得したいインターフェース名を指定します。
-w  ファイル名  パケットを指定したファイルに出力します。Wiresharkで読み込むことができます。

よく使うフィルターの指定

パケットを絞りたくなってくる時もあると思います。
※ Wiresharkを使って絞り込む事は可能ですが、標準出力に出力してリアルタイムで見たい時に有効です。

# : 192.168.1.10の送受信を対象とし22番ポートは除外
# tcpdump -n -i eth0 host 192.168.1.10 and not port 22
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
   :(省略)
54 packets captured
55 packets received by filter
0 packets dropped by kernel
# : 192.168.1.10と192.168.1.11の送受信を対象とし22番ポートは除外
# tcpdump -n -i eth0 host 192.168.1.10 and host 192.168.1.11 and not port 22
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
   :(省略)
10 packets captured
11 packets received by filter
0 packets dropped by kernel
# : 192.168.1.10か192.168.1.11の送受信を対象とし22番ポートは除外
# tcpdump -n -i eth0 host 192.168.1.10 or host 192.168.1.11 and not port 22
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
   :(省略)
10 packets captured
11 packets received by filter
0 packets dropped by kernel

その他にも、いろいろとオプションがありますが、必要となったときに、manページを参照すれば良いかと思います。