Wiresharkを使ってみる

出入りするパケットは全部監視しろってじっちゃがいってた。

…んだけど、よくわからないのでひとまず家で試しました、という自分用のメモです。

  • やりたいこと
    • (単純に)生のパケットを見る
    • 開発中のアプリがネットワークに接続している時のパケット流量を知る

Wiresharkとは

Wiresharkは、GUIを持つネットワークプロトコルアナライザです。GPLライセンスOSSです。何らかのパケットキャプチャソフト(今回はWinPcap)と合わせて使います。

Wireshark4.1.2には、WinPcap4.1.2が同梱されていて、Wiresharkのインストール中にWinPcapもインストールするかを選択できます。WinPcapを個別にダウンロードしてこなくても大丈夫。

ちなみに、WinPacpは、Windows XPは2.3以降、Windows 7は4.1以降を使うようです(4.1.2 or 3.1で、色々バグが直っているそうで、これらのバージョンが推薦されています)。

Wiresharkと同時インストールできるもの
  • Tshark
  • WinPcap
  • プラグイン/拡張機能
    • Dissector Pkugins
    • Tree Statistics Plugin
    • Mate - Meta Analysis and Tracing Engine
    • SNMP MIBs
  • ツール
    • Editcap
    • Text2Pcap
    • Mergecap
    • Capinfos
    • Rawshark
  • ユーザガイド
Tshark

TSharkは、テキストベースのネットワークプロトコルアナライザです。

環境変数のPATHにWiresharkのインストールフォルダを追加すれば、コマンドラインで「tshark」と叩くだけでパケットのキャプチャが始まります。Ctrl-cで停止し、何パケット取得したかを表示して終了します。

実行オプションの詳細は、インストールフォルダ直下にあるマニュアルtshark.htmlに書かれています。

Wiresharkだとファイルの保存形式がバイナリになるので、Tsharkを使ってテキスト形式で書き出すというのもアリ?(ですか? よくわかんない)

触ってみた雑感

上記の目的のためだけなら・・・

接続先ごとのパケット流量を知る

Wiresharkでは接続先ごとのパケット流量がわかります。

Windowsのパフォーマンスモニタでパケットを見ようとすると、NIC単位でざっくりまとめられてしまいます。それに比べて正確に取れるし、接続先ごとにテストを流さなくても、後から篩い分けることができるので、ベンリです。

方法: [Statistics]→[Conversasions]→[IPv4: 6]タブでhttp、httpsの通信あたりを見る。

キャプチャデータを自動保存する

キャプチャオプションの設定を使うと、キャプチャデータをファイルに自動で保存できます。

ファイルのローテーション単位は、時間、ファイルサイズ、パケット量から選ぶことができます。仕掛けて放置できるので、ベンリ。

方法: [Capture]→[Options]→[Capture File(s)]で設定する。

こんなところかな?

Wiresharkは機能も設定項目も豊富なので、まだよく把握できません。追々、必要に応じてマニュアルを読もう・・・。