tcpdumpでパケットキャプチャ
(社内向け)
サーバー間のAPI呼び出しなどをデバッグする際、パラメータやレスポンスをログに出すよりは、
パケットキャプチャで実際の通信を確認するほうが手っ取り早いことが多いです。
サーバーでキャプチャするには、tcpdump を使います。
tcpdumpの実行には root 権限が必要なので、まず su - します。
(tcpdump は /usr/sbin にあるので、su でなくsu - としたほうが楽)
実行例1: tcpdump -X -s 1000 port 80 and host XXX.XXX.XXX.XXX
意味
-X
コンソールに 16進表示+ASCII文字で表示
-s 1000
1パケットあたり1000バイトまでキャプチャ(デフォルトは68で少なすぎる)
port 80 and host XXX.XXX.XXX.XXX
XXX.XXX.XXX.XXXのポート80番あての通信をキャプチャ(デフォルトではすべての通信をキャプチャ)
実行例2:tcpdump -w test.pcap -s 1000 port 80 and host XXX.XXX.XXX.XXX
意味
-w test.pcap
test.pcapにキャプチャした結果を保存
保存したファイルをPCにコピーすれば Ethereal で閲覧可能。こっちのほうが圧倒的に見やすいです。
Ethereal も有名なキャプチャソフトですが、単なるビュアーとして使うことも可能です。
http://www.ethereal.com/download.htmlからダウンロードして下さい。