【Tshark】の使い方(pcapファイル出力,オプション,フィルタ設定,分割)

Wiresharkの負荷が大きいときはTsharkを使うべし

Wiresharkでパケットキャプチャをするとき、大量にデータが入ってくるとPCが重くなりますよね。それもそのはず。パケットをメモリ上に溜め込んでいるのですから

トラブルシューティングをする際に、再現する時刻がバラバラの事象の場合、Tsharkがお勧めです。メモリ上ではなくディスクにファイルとして書き込んでいくようになりますので、メモリ消費が無いのです。

Tshark はWindows版の tcpdump と考えればよいでしょう。Wiresharkをインストールすれば使えるようになります。

Tsharkの使い方

まずはインタフェースのIDを確認するため、以下コマンドを打ちます。(tshark -Dでも同等の結果が出力されますが、ASCIIのみの対応のようで、日本語は文字化けしてしまいます。)

c:\>"c:\Program Files\Wireshark\dumpcap.exe" -D
出力結果の例:
1. \Device\NPF_{ECD2CEFE-5C05-4AB5-8180-23900F2A01E7} ABCDEFG

一番左の番号がインタフェースID。複数出てきた場合はどのインタフェースをキャプチャしたいかを確認し、そのインタフェースIDを覚える。

そして次のコマンドを打ちます。

c:\>"c:\Program Files\Wireshark\tshark.exe" -i [インタフェースID] -w nwwatch.pcap -b filesize:10000

オプションについて

-w は出力するファイル名の指定です。実行ディレクトリ(今回はc:\)にnwwatch.pcapというファイルが生成されます。もしくはフルパスを書けばその場所に保存されます。

-b filesize: これは言わずもがな、ファイルサイズ指定です。10000KB = 10MB に達したら新たなファイルを作ります。

また、-b duration: を使えば、秒単位でのローテーションが可能です。

c:\>"c:\Program Files\Wireshark\tshark.exe" -i [インタフェースID] -w nwwatch.pcap -b duration:3600
[dis

キャプチャフィルタ

先ほどの例では使っていませんが、キャプチャフィルタを使えば、狙った通信だけをキャプチャすることができます。キャプチャフィルタは Wireshark の閲覧時のフィルタとはフォーマットが異なり、tcpdump (正確には libpcap)と同じです。

例えば192.168.1.1に関するtcp:80のパケットだけを見たい場合(192.168.1.1が送信元IPもしくは宛先IPであり、かつtcp:80が送信元ポートもしくは宛先ポートである通信)

-f "host 192.168.1.1 and tcp port 80"

もう1つの例として、宛先が172.16.0.0/16の範囲で、かつDNSおよびhttpを除外する例

-f "net 172.16.0.0 mask 255.255.0.0 and not (port 53 or port 80)"

TCPの16000~16100までの範囲を見たい場合

-f "tcp portrange 16000-16100"

リードフィルタ

取り込んだファイルはGUI のwireshark で閲覧可能ですが、CLI の tshark (-rオプション) でも閲覧可能です。-Yオプションでフィルタを指定しますが、フォーマットはキャプチャフィルタと異なり、Wireshark のものになります。

c:\>"c:\Program Files\Wireshark\tshark.exe" -r nwwatch.pcap -Y "ip.addr==192.168.1.1"

Wiresharkの勉強については、以下の書籍がお薦めです。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする