WEBアプリ開発 ぷちTips

WEBアプリの開発をやってます。自分が調べててなかなか見つからなかったり苦戦した内容をTips集にできたらなと思います。

Linux/CentOS パケットキャプチャ

通信エラーが発生した時にtcpdumpが使えると助かるのでメモ。
環境構築だったり接続先の追加でなぜか通信がつながらない!となったときに使えると便利だと思います。
使いこなせているわけではないですが・・。

あるある話で、iptableでフィルタしていた事が原因だった場合、dump取ればパケットの確認ができてますので、絞りすぎてた!と気づくことができます。

 

◇基本的なコマンド

$ tcpdump [向き先] [カテゴリ] [条件値]

 1.向き先
  送信先:dst
  送信元:src
 2.カテゴリ
  ポート指定:port
  IP指定:net(追加オプションでmaskとすればIP帯でフィルタできます)
     ex)tcpdump src net 192.168.1.0 mask 255.255.255.0
 3.条件値
  具体的な値(IPとかポート番号とか)を指定してください。
 4.その他
  ほかにも色々オプションがあります。
  orをつければ複数条件指定できます。

 
◇その他オプション
 1.生データの出力(バイナリ出力)
 いろいろ分析したい場合は、-wオプション指定でファイル出力できますので、
 wireshark等でパケットの中身が確認できます。
 $ tcpdump dst port 80 src net 192.168.1.1 -n -w /home/hogehoge/dumpdata_20160130

 2.名前解決されないようにする
 -nオプション指定をしないと勝手に名前解決されてしまい、どのIPか
 よくわからなくなってしまうのでつけます。 

◇コマンド実行例
特定端末からの通信(ポート:80、IP:192.168.1.1)をキャプチャする場合
$ tcpdump dst port 80 src net 192.168.1.1 -n