Windowsのnetshコマンドでパケットキャプチャする方法 †Windowsの標準コマンドである、netshコマンドとtraceオプションにより、パケットキャプチャが可能です。 注意 使用したOS †
関連サイト †ダウンロードリンク
関連記事 †netsh trace start コマンド †netsh traceコマンドを実行するため、コマンドプロンプトを管理者として実行してください。 以下のコマンドを実行すると、netsh trace startにつついてのオプションを確認することができます。 netsh trace start /? C:\WINDOWS\system32>netsh trace start /? start トレースを開始します。 使用法: trace start [sessionname=<セッション名>] [[scenario=]<シナリオ 1,シナリオ 2>] [[globalKeywords=]keywords] [[globalLevel=]level] [[capture=]yes|no] [[capturetype=]physical|vmswitch|both] [[report=]yes|no|disabled] [[persistent=]yes|no] [[traceFile=]path\filename] [[maxSize=]filemaxsize] [[fileMode=]single|circular|append] [[overwrite=]yes|no] [[correlation=]yes|no|disabled] [capturefilters] [[provider=]providerIdOrName] [[keywords=]keywordMaskOrSet] [[level=]level] [bufferSize=<バッファー サイズ>] [[[provider=]provider2IdOrName] [[providerFilter=]yes|no]] [[keywords=]keyword2MaskOrSet] [[perfMerge=]yes|no] [[level=]level2] ... 既定値: capture=no (トレース イベントに加え、パケット キャプチャを 有効にするかどうかを指定します) capturetype=physical (パケット キャプチャを有効にする必要がある 対象として、物理ネットワーク アダプターのみ、仮想スイッチのみ、 または物理ネットワーク アダプターと仮想スイッチの両方を指定します) report=no (トレース ファイルと共に、補足レポートを 生成するかどうかを指定します) persistent=no (再起動後に、netsh trace stop を発行するまで トレース セッションを続行するかどうかを指定します) maxSize=250 MB (最大トレース ファイル サイズを指定します。0 = 最大値なし) bufferSize=512 (トレース バッファー サイズを KB 単位で指定します。最小値 4、最大値 16384) fileMode=circular overwrite=yes (既存のトレース出力ファイルを上書きするかどうかを 指定します) correlation=disabled (関連するイベントを相互に関連付け、グループ化 するかどうかを指定します) perfMerge=yes (パフォーマンス メタデータをトレースに結合するか どうかを指定します) traceFile=%LOCALAPPDATA%\Temp\NetTraces\[sessionname]NetTrace.etl (出力ファイルの場所を指定します) providerFilter=no (プロバイダー フィルターを有効にするかどうかを指定します) sessionname='' (同時トレースを収集できるように、トレース セッションの名前を 指定します) プロバイダー キーワードの既定値は all で、レベルは 255 になります (キーワードとレベルが指定されていない場合)。 例: netsh trace start scenario=InternetClient capture=yes パケット キャプチャを物理ネットワーク アダプターに対してのみ有効にして InternetClient シナリオと依存プロバイダーのトレースを開始します。 "netsh trace stop" コマンドが発行されるか、システムが再起動すると、 トレースは停止します。 出力ファイルには、既定の場所と名前が使用されます。古いファイルが 存在する場合、それらは上書きされます。 netsh trace start provider=microsoft-windows-wlan-autoconfig keywords=state,ut:authentication microsoft-windows-wlan-autoconfig プロバイダーのトレースを開始します。 "netsh trace stop" コマンドが発行されるか、システムが再起動すると、 トレースは停止します。 出力ファイルには、既定の場所と名前が使用されます。古いファイルが 存在する場合、それらは上書きされます。 キーワード 'state' または 'ut:authentication' が含まれるイベントのみのログが記録されます。 netsh trace show provider コマンドを使用すると、サポートされたキー ワードとレベルを表示できます。 キャプチャ フィルター: キャプチャ フィルターは、capture=yes を指定してキャプチャが明示的に 有効になっているときにだけサポートされます。サポートされるキャプチャ フィルターとその使用法の一覧を表示するには、'netsh trace show CaptureFilterHelp' を使用します。 プロバイダー フィルター: プロバイダー フィルターは、複数のプロバイダーでサポートされます。有効に するには、各プロバイダーの後に providerFilter=Yes を指定します。 各プロバイダーでサポートされるプロバイダー フィルターとその使用法の 一覧を表示するには、'netsh trace show ProviderFilterHelp' を使用します。 パケットをキャプチャしてみる †netsh trace startコマンドのパケットキャプチャについていくつかの例を以下に記します。 パケットをキャプチャする †以下の構文でパケットキャプチャが開始されます。 netsh trace start capture=yes デフォルト値の250MBまでキャプチャされます。 C:\>netsh trace start capture=yes トレース構成: ------------------------------------------------------------------- ステータス: 実行中 トレース ファイル: C:\Users\sakura\AppData\Local\Temp\NetTraces\NetTrace.etl 追加: オフ 循環: オン 最大サイズ: 250 MB レポート: オフ 上記の出力がされ、プロンプトが入力待ちに戻ります。 C:\>dir c:\users\sakura\AppData\Local\Temp\NetTraces\* ドライブ C のボリューム ラベルは Windows です ボリューム シリアル番号は ****-**** です c:\users\sakura\AppData\Local\Temp\NetTraces のディレクトリ 2019/03/18 08:51 <DIR> . 2019/03/18 08:51 <DIR> .. 2019/03/18 08:51 <DIR> NetTrace 2019/03/18 08:51 524,288 NetTrace.etl 1 個のファイル 524,288 バイト 3 個のディレクトリ 30,412,132,352 バイトの空き領域 キャプチャの中止 †上記のキャプチャを中止したい場合は、以下のコマンドを実行します。 netsh trace stop 本コマンドを実行するとしばらくプロンプトが返ってきません。(結構かかります。) C:\>netsh trace stop トレースの結合中... 完了 データ収集を生成しています ... 完了 トレース ファイルと追加のトラブルシューティング情報は、"C:\Users\sakura\AppData\Local\Temp\NetTraces\NetTrace.cab" としてコンパイルされました。 ファイルの場所 = C:\Users\sakura\AppData\Local\Temp\NetTraces\NetTrace.etl トレース セッションは正常に停止しました。 出力先を指定する †上記では出力先を指定せず、実行したところ、環境変数TEMPのディレクトリに保存されました。 netsh trace start capture=yes tracefile=ファイル名 実際に実行したときの出力です。 C:\>netsh trace start capture=yes tracefile=c:\sakura.etl トレース構成: ------------------------------------------------------------------- ステータス: 実行中 トレース ファイル: C:\sakura.etl 追加: オフ 循環: オン 最大サイズ: 250 MB レポート: オフ パケットキャプチャ中は以下のようにsakura.etl, sakuraフォルダが作成されました。 netsh trace stopをすると、フォルダは削除されcabファイルが作成されます。 プロトコルを指定する †TCPやUDPパケットを指定しキャプチャしたい場合は Protocol=UDPやProtocol=TCPとなります。
イーサネットタイプを指定する †イーサネットタイプを指定する場合は、以下のようになります。 netsh trace start capture=yes Ethernet.Type=IPv4 tracefile=c:\ipv4.etl トレースファイルの最大ファイルサイズを指定する †上記の出力の通り、デフォルトのトレースファイルサイズは250MBとなっています。 C:\>netsh trace start capture=yes tracefile=c:\max.etl maxSize=1024 トレース構成: ------------------------------------------------------------------- ステータス: 実行中 トレース ファイル: C:\max.etl 追加: オフ 循環: オン 最大サイズ: 1024 MB レポート: オフ Microsoft Message Analyzerを使って閲覧する †Microsoft Message Analyzerをインストールしておいてください。 採取したパケットをキャプチャファイルをMicrosoft Message Analyzerで開いた状態のスクリーンキャプチャです。 以上、Windows標準のnetshコマンドを使ってネットワークのパケットをキャプチャする方法でした。 |