ツール

Wiresharkのコマンドライン版(tshark)

Windows のクライアントツールで有名な Wireshark のコマンドライン版について、IT 系のサイトで触れていたのでメモ。

Wireshark はパケットキャプチャソフトで、Windows 上の PC でネットワークの疎通確認などによく使います。

Windows のクライアントツールでは、取得したパケットの流れをグラフ化して接続やタイムアウトの原因を調べられるなど便利なソフトです。

今回はこちらのソフトウエアを紹介していきます。

Wiresharkの使い方

サイトにはコマンドラインの基本的な使い方やオプションを使った応用が書かれていました。

内容的にはこれだけでも十分ですが、その中でパケットのフィルタ方式に「WireShark互換」を使って説明していたので、「Libpcap形式」に置き換えて備忘録にしたいと思います。

「Libpcap形式」は tcpdump の時と同じ形式なので、Linux 上などで応用がしやすいのです。

ちなみに、Wireshark のコマンドライン版も Linux 用があるので、そちらで統一したい人は「WireShark互換」がいいのかも。

Wiresharkの実行

Wireshark をインストールした Windows PC のコマンドプロンプトで、下記のサンプルを実行するとパケットの流れを確認することができます。

まずは、tshark コマンドのヘルプから。サンプルで使用するものだけピックアップしました。

目的の NIC が何番目になるかは、tshark -D で確認ができます。

2番目のネットワークインタフェース

2 番目のネットワークインタフェース(NIC)に対するパケットの流れを画面に出力します。

Ctrl + c を押すまでパケットのキャプチャは続きます。

2 番目のネットワークインタフェース(NIC)に対するパケットの流れを画面に出力するのと同時に、test.log ファイルにパケットの内容を書き込みます。

また、-a オプションでキャプチャの停止について細かく設定ができます。下記の例は 60 秒後に停止。

フィルタの方法

次にフィルタについてですが、Libpcap 形式でコマンドを書くと以下の通り。

WireShark 互換の場合はサイトのサンプルを参考にして下さい。

http(80番ポート)のみをキャプチャする時は -f オプションを使ってポート指定します。

さらにパケットの送信元または送信先の IP アドレスが XXX.XXX.XXX.XXX のものをキャプチャします。

対象の IP アドレスを送信元アドレスに限定する場合は host を src host にすれば可能です。