ITよろづや

ITの参考になる情報を備忘録代わりに残していきます

CentOS7 tcpdumpで0 packets capturedでパケットのキャプチャ量が増えない

ネットワークエンジニアがよく使うツールと言えば、exping、teratermなどがありますが、ネットワークをメインでやっていた時は、トラブルシューティングWireSharkを使っていました。パケットキャプチャと言えば、これですよね。


ただ、状況によってはWiresharkが使えないケースもあります。ソフトウェアをインストールできないとか、ミラーポートが設定できないとか。その他、サーバー側でパケットキャプチャしたいケースもあると思います。


そこで、便利なのがLinux、CentOS7でパケットキャプチャできるフリーツールtcmdumpがトラブル対応に便利です。


使い方は簡単で、入っていれば「tcpdump」とコマンドを実行するだけで使えますが、NICを指定しないと使えないケースもあると思いますので、オプションを紹介します。


ちなみに、「tcpdump」とコマンドがない場合は、yumなりでインストールしてください。

# yum -y install tcpdump


そして、オプションです。

[root@localhost ~]# tcpdump -h
tcpdump version 4.9.0
libpcap version 1.5.3
OpenSSL 1.0.1e-fips 11 Feb 2013
Usage: tcpdump [-aAbdDefhHIJKlLnNOpqStuUvxX#] [ -B size ] [ -c count ]
[ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
[ -i interface ] [ -j tstamptype ] [ -M secret ] [ --number ]
[ -Q|-P in|out|inout ]
[ -r file ] [ -s snaplen ] [ --time-stamp-precision precision ]
[ --immediate-mode ] [ -T type ] [ --version ] [ -V file ]
[ -w file ] [ -W filecount ] [ -y datalinktype ] [ -z postrotate-command ]
[ -Z user ] [ expression ]


■インターフェースを指定する
まず、インターフェースの指定です。「0 packets captured」と表示される場合は、インターフェースを指定してください。


ちなみに、CentOS7 tcpdumpで0 packets capturedでパケットのキャプチャ量が増えない場合は、こんな感じです。

 

[root@localhost ~]# tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on virbr0, link-type EN10MB (Ethernet), capture size 262144 bytes
^C
0 packets captured
0 packets received by filter
0 packets dropped by kernel

 

このまま放置していても一向に増えません。その場合は、インターフェースを指定してあげます。インターフェースの確認は「ifconfig」で行います。


[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500


ここで確認したインターフェース名をオプションの「-i」で指定すればOKです。

# tcpdump -i ens33

■パケットの内容を ASCII で表示する
リアルタイムにログを見る場合は、これがあるとかなり見やすいです。

# tcpdump -A


このツールは本当に便利なので、サーバーなどでログがあまり出力されない場合や、トラブルシューティングに使用すると非情に助かります。

 

ただ、最近は通信が内部でも暗号化しているケースが増えてきて、だんだんと切り分けが難しくなってきています。