cheatsheet/tcpdump

August 24, 2021

よく使うパターン

tcpdump -n -i eth0 -X net 172.30.1.185 -s 0 -w ファイル名

port 指定の場合、net オプションと port オプションを同時に指定するのできなかった

tcpdump -n -i eth0 -X port 11211 -s 0 -w ファイル名
  • tcpdump は標準出力をリダイレクトする形でも保存できるが、後で Wireshark で見ることを考えると -w で保存したほうが良い、でないと wireshark から「このファイルは壊れています」というエラーがでる

意図としては

  • -X 16 進数
  • -s 0 パケットを(途中で切らないで)全部取得する

コマンドラインオプション

オプション 効果
-a ネットワークとブロードキャストアドレスを DNS 名に変換する。
-n アドレスやポート番号を名前に変換しないで表示。
-d コンパイルされたパケットマッチングコードを人間が読める形式で標準出力にダンプし、終了する。
-i キャプチャするインターフェースを指定。
-vv もっと詳細な出力。NFS 応答パケットにおける付加フィールドなどを表示する。
-vvv さらに詳細な出力。 例えば、telnet SB … SE オプションは全て表示される。 -X オプションも指定されると、telnet オプションは 16 進表示でも表示される。
-s キャプチャするサイズを指定。 大きいパケットを見るとき
-w 生データをそのままファイルに書き込む。-r オプションで開く。WireShark や Ethereal で開くこともできる
-X 16 進と ASCII 文字で表示を行う。

大きいパケットを見るとき -s オプションをつける

tcpdump コマンドの使いかたをまとめてみた

ポートで絞る

なにもフィルタをかけないと出力が多すぎてわけがわからないので、例えば http ポートに絞る場合は次のようにします。

sudo tcpdump port 80

発信または受信だけに絞りたい場合は、それぞれ dst, src を使います。

sudo tcpdump dst port 80 # 発信
sudo tcpdump src port 80 # 受信

http および https に絞り込みたい場合は、or を使う事ができます。

sudo tcpdump src port 80 or src port 443

ホストで絞る

host を使うと IP アドレスで絞り込めます。

sudo tcpdump host 192.168.1.1
sudo tcpdump dst host 192.168.1.1
sudo tcpdump src host 192.168.1.1

ネットワークアドレスで絞る

net を使うとネットワークアドレスで絞れます。

tcpdump net 192.168.2.0 mask 255.255.255.0

192.168.2.0/24 ネットワークとのパケットだけを表示します。

パケットの中身も表示したい

オプション -X を使用するとヘッダだけではなくパケットの中身も表示できます。


Profile picture

Written by tin-machine 技術関連のメモ Twitter