※あくまで自分用メモです。tcpdump の便利な使い方を記したページは Qiita 内外のいろんなところに転がってますので、そちらを見てください。
RHEL7 なサーバで、FW の向こう側にいるストレージに対して NFS マウントしたい。FW なので穴あけの申請をしかるべき部署にしないといけないけど、どのポート使おうとしてるんだかわからない(…なんでそんな状況になるんだ?なんて訊かないでください、私も困ってるんです(笑))。という時に、頼りになるのはやはり、tcpdump。
私のシチュエーションでは、これで十分でした。
sudo tcpdump -i (インタフェース名) -nn -X host (相手のIPアドレス)
-
-i (インタフェース名)
を付けないといけないのは、付けずに実行するとtcpdump: NFLOG link-layer type filtering not implemented
とかなんとか言われて蹴られるから。NFLOG なんてインタフェースは知りませんけど、この環境ではそれがデフォルトのインタフェースということなので、使われるはずのインタフェースを明示的に指定してやらないといけない。どのインタフェースが使われるか?…それはifconfig
やnetstat -r
で調べましょう。 -
-nn
はホスト名やポート番号を(名前解決せずに)数字のまま表示させるオプション。変に名前解決されるとかえってわかりづらいので、数字は数字のままが一番。 -
-X
はパケットの内容を16進とASCIIで表示するオプション。 あまり使わない とおっしゃる方もいますが、私はASCIIも表示されてるほうが落ち着きます。 -
host ~
以下はフィルタするための式ですが、最初からむやみに絞ると欲しい情報を取りこぼすおそれも。私のシチュエーションでは、「相手のIPアドレスはわかっていて、どのポートに送信しようとしているかがわからない(もしくは、どのポートに送ったパケットへの応答が返ってこないかがわからない)」という状況だったので、host
だけ指定すればいいや…でした。
cf) 【備忘録】centOS7 で tcpdump する … NFLOG の謎エラーの悩みを、ここを見て解決できました。