【Linux】tcpdumpコマンドでよく利用するオプション10選

スポンサーリンク
Linuxサーバ

RHEL系(CentOS)
---

サーバ運用でtcpdumpを障害切り分けで利用します。
その時に、頻繁に利用する「tcpdumpコマンド」のオプションを紹介いたします。
コピペして(覚書)利用できるようにケースに分けて
オプションの使用方法(サンプル)も合わせて紹介いたします。

【必須】押さえておきたい「tcpdump」オプション一覧

以下のオプションを併用することで、おおむねの事に対処が可能です。

オプション説明
-nnポートとホスト名の変換を行わずに、IPアドレスとポート番号で表示されます。

例:
# tcpdump -nn

■設定前(-nnを設定しない)
14:46:17.453428 IP 192.168.11.10.60628
> isleofhoso04.ssh: Flags [P.], seq 541:577,
ack 1378160, win 8151, length 36
■設定後(-nnを設定)
14:44:55.833962 IP 192.168.11.10.60628
> 192.168.11.13.22: Flags [.],
ack 380836, win 8210, length 0
-iネットワークインターフェースを指定します。

※ifconfigコマンドでネットワークインターフェースを確認して指定
例:
# tcpdump -i eth0
-sキャプチャするサイズを指定します。

※-wと併用して利用することが多い
例:
# tcpdump -nn -i eth0 -s 0 -w /tmp/tcpdump-file.pcap
->
「-s 0」としておけば、1パケットあたりMAXサイズ(65535バイト)で
パケットを受け取れます。

古いtcpdumpの場合は「-s」の指定がないと1パケットあたり96バイト
までのパケット受け取りになり情報が切り取られます。

CentOS7以降はデフォルトでMAXサイズになっているので
「-s」の指定がなくても問題ありません。

但し、パケットを受け取れるサイズは重要なので明示的に指定しておく
方が安全です。
-wファイル保存します。(保存先のパスとファイルを名を指定)

※標準出力に表示されなくなります。
例:
# tcpdump -nn -i eth0 -s 0 -w /tmp/tcpdump-file.pcap
->
「/tmp/tcpdump-file.pcap」に出力結果が保存されます。
-r-wオプションで保存したファイルからパケットを読み込みます。

※読み込んだファイルにtcpdumpのオプションを指定して絞り込みも可能
例:
# tcpdump -r /tmp/tcpdump-file.pcap port 22
->
「/tmp/tcpdump-file.pcap」で保存したデータからポートが22の
ものだけを閲覧する
-tttt人が見やすいタイムスタンプで出力します。

例:
# tcpdump -nn -i eth0 -tttt
->
■設定前(-ttttを設定しない)
15:10:00.678222 IP 192.168.11.13.22 >
■設定後(-ttttを設定)
2021-03-10 15:10:26.713545 IP 192.168.11.13.22 >
-C何M(メガ)でローテーションするかを指定します。

※-wと-Wを併用して利用することが多い
例:
# tcpdump -nn -i eth0 -s 0 -w /tcpdump-file.pcap -C 100
->
100Mごとに「tcpdump-file.pcap」->「「tcpdump-file.pcap1」->
「tcpdump-file.pcap2」->「tcpdump-file.pcap3」・・・・と
ファイルを切り替えてデータを保存する
-Wローテーションの回数を指定します。

※ローテーション回数でファイルが上書きされ、ファイルの肥大化を防ぎます。
※ローテーションされると最初に取得していたデータが消えるので注意
※ディスク容量の圧迫を防止できます
※-wと-Wを併用して利用することが多い
例:
# tcpdump -nn -i eth0 -s 0 -w /tcpdump-file.pcap -C 100 -W 3
->
100Mごとにファイルを切り替え、3ファイルでローテーションされます。
合計「100×3=300M」の容量内でデータを取得します。
「tcpdump-file.pcap」->「「tcpdump-file.pcap1」
->「tcpdump-file.pcap2」とファイルが保存され
300Mを超えようとすると「tcpdump-file.pcap」が上書きされて
データが消えます。
-Xパケットの中身をASCIIで表示します。

※16進数も同時に表示
※暗号化していない通信の場合はこのオプションですべて内容が見れます。
例:
# tcpdump -nn -i eth0 -X
->
---表示例---
0x1010: 4611 5ac0 a0c8 267b 6f69 873d b810 f009 F.Z…&{oi.=….
0x1020: add1 7ff6 8fa9 e1ff 0c4a cc26 b466 2451 ………J.&.f$Q
0x1030: ae09 f9a4 0583 ce19 eae5 c3e6 6952 3d68 …………iR=h
-xパケットの中身を16進数で表示します。

例:
# tcpdup -nn -i eth0 -x

->
---表示例---
0x1010: c9a3 2e19 9d89 3b52 ac99 2532 6493 a40b
0x1020: d551 aff4 3d9e dcd2 2a52 754c 61b0 da2a
0x1030: 3e36 87e1 8abb 1536 d875 a829 f38c c254

tcpdumpのフィルター条件について

tcpdumpのオプションを活用しながら、監視する範囲を絞り込むための
フィルター条件については、以下のリンクを参照してください

コメント

タイトルとURLをコピーしました