やりたいこと
tcpdumpコマンドでパケットキャプチャを取得する。
尚、Wiresharkで読み込ませるためpcapファイルで出力する。
環境情報
- Debian 4.9.X-0vyatta2
- tcpdump version 4.9.
やり方
特権ユーザに昇格した上で
$ su #
以下コマンドで指定したインターフェースの全パケットを60秒間取得できる。
# tcpdump -i test0 -s 0 -w ./test.pcap -W1 -G60 tcpdump: listening on test0.1361, link-type EN10MB (Ethernet), capture size 262144 bytes Maximum file limit reached: 1 205931 packets captured 0 packets received by filter 0 packets dropped by kernel E: xx dangling 'SUB' socket created at ./pcap-vyatta-dataplane.c:438 E: xx dangling 'REQ' socket created at ./pcap-vyatta-dataplane.c:456
以下のようにファイルが生成されています。
# ls -l total 4 -rw-r----- 1 root root ... test.pcap
以下、補足です。
補足
特権ユーザでないとtcpdumpコマンドが打てないのでスイッチが必要です。
$ which chmod
以下でインターフェース名が確認できるので
# tcpdump -D 1..spathintf [Up, Running] 2.test0 [Up, Running] 3.test0.1 [Up, Running] 4.test0.2 [Up, Running] 5.any (Pseudo-device that captures on all interfaces) [Up, Running] 6.lo [Up, Running, Loopback] ...
tcpdumpコマンドを押下すればキャプチャがとれます。
ちなみに特定IPで絞る場合は以下で
host 10.20.30.40
IPレンジで絞る場合は以下で可能です。
net 10.20.0.0 mask 255.255.0.0
以上です。