Netsh ユーティリティ ガイド:トレースとその先

はじめに

Netsh ユーティリティの概要と、ネットワーク管理におけるその重要性について簡単に説明します。スクリプトのサポート、リモート実行、トラブルシューティング機能などの主な機能を強調します。



コンテンツの最適化

1. Netsh ユーティリティとは

Netsh (Network Shell) は、ネットワーク設定の構成とトラブルシューティングを行うための強力な Windows コマンド ライン ツールです。ダイナミック リンク ライブラリ (DLL) を介してシステム コンポーネントとやり取りし、次のようなさまざまなコンテキストをサポートします。たとえば、advfirewall, wlanとwinhttp.

2. Netsh コマンドの一般的な構文

netsh [-a AliasFile] [-c Context] [-r RemoteMachine] [-u [Domain\]UserName] [-p Password|*] [Command | -f ScriptFile]

構文パラメーターについて簡単に説明し、その使用例を強調します。

3. Netsh トレースの詳細

トレースの収集:
ネットワーク イベントとパケットを診断のためにキャプチャするには、netsh trace コンテキストを使用します。

  • シナリオを表示するコマンド:
netsh trace show scenarios
  • 特定のシナリオのプロバイダーを表示するには:
netsh trace show scenario <Scenario name>

重要なパラメーター:
次の主要パラメーターについて詳しく説明します。たとえば、scenario, capture, report, persistent, traceFileなど、例とともに紹介します。

一般的なトレース コマンド:

  • トレースを開始する:
netsh trace start scenario=InternetClient capture=yes tracefile=C:\temp\trace.etl
  • トレースを停止する:
netsh trace stop

高度なオプション:
次のようなオプションを使った高度なトレースの例を示します。たとえば、maxsize, filemodeとoverwrite.

ETL を CAP に変換する:
ETL ファイルを Wireshark のようなツールで使用できるように変換する方法を説明します。

netsh trace convert input=trace.etl output=trace.cap


4. Netsh によるネットワーク キャプチャのフィルタリング

基本フィルター:
よく使用されるフィルターを強調します。たとえば次のようなものです。

  • 特定の IPv4 アドレスとの間のトラフィックをキャプチャする:
IPv4.Address == x.x.x.x

プロトコル固有のフィルター:

  • DNS トラフィックをキャプチャする:
DNS

高度なフィルター:
TCP ハンドシェイク パケットのキャプチャなどの例を示します。

TCP.Flags.SYN == 1 AND TCP.Flags.ACK == 0


5. 主要な Netsh コンテキストと使用例

IP 構成:

  • 静的 IP を設定する:
netsh interface ip set address "Ethernet" static 10.0.0.5 255.255.255.0 10.0.0.1

Winsock と TCP/IP スタックをリセットする:

  • TCP/IP スタックをリセットする:
netsh int ip reset

ファイアウォールの操作:

  • ファイアウォール ルールを追加する:
netsh advfirewall firewall add rule name="Allow Ping" dir=in action=allow protocol=icmpv4

WinHTTP プロキシの構成:

  • プロキシを設定する:
netsh winhttp set proxy "proxy:8080" "<local>"

ネットワーク キャプチャの分析によく使用される netmon フィルター:

基本フィルター

フィルター目的
IPv4.Address == x.x.x.x特定の IPv4 アドレスとの間のトラフィックをキャプチャします。
IPv4.SourceAddress == x.x.x.x特定の送信元 IP からのトラフィックをフィルタリングします。
IPv4.DestinationAddress == x.x.x.x特定の宛先 IP へのトラフィックをフィルタリングします。
IPv6.Address == xxxx::xxxx特定のアドレスとの間の IPv6 トラフィックをフィルタリングします。
TCP.Port == 80特定の TCP ポート上のトラフィックをキャプチャします(例:HTTP の 80)。
UDP.Port == 53特定の UDP ポート上のトラフィックをキャプチャします(例:DNS の 53)。

プロトコル固有のフィルター

フィルタープロトコル説明
DNSDNSDNS クエリと応答をキャプチャします。
HTTPHTTPHTTP トラフィックをキャプチャします(メソッドでさらにフィルタリングできます)。
TCPTCPすべての TCP トラフィックをキャプチャします。
UDPUDPすべての UDP トラフィックをキャプチャします。
SMB2SMBSMBv2 ファイル共有トラフィックをキャプチャします。
KerberosKerberosKerberos 認証パケットをキャプチャします。
LDAPLDAPLDAP クエリ/応答をキャプチャします。

会話フィルター

フィルター目的
IPv4.SourceAddress == x.x.x.x AND IPv4.DestinationAddress == y.y.y.y2 つの特定のホスト間のトラフィックをフィルタリングします。
TCP.SourcePort == 12345 AND TCP.DestinationPort == 80特定のクライアント/サーバー セッションをフィルタリングします。

アプリケーション層フィルター

フィルター例
HTTP.Request.Method == “GET”GET 要求のみをキャプチャします。
HTTP.Host == “example.com”特定のドメインへの HTTP トラフィックをフィルタリングします。
DNS.QryName == “example.com”特定のドメインに対する DNS クエリをフィルタリングします。
SMB2.CreateRequest.FileName == “filename.txt”SMB トラフィックにおけるファイル アクセスをキャプチャします。

高度なフィルター

フィルター目的
TCP.Flags.SYN == 1 AND TCP.Flags.ACK == 0SYN パケットをキャプチャします(TCP ハンドシェイクの開始)。
TCP.Flags.FIN == 1FIN パケットをキャプチャします(TCP セッションの終了)。
TCP.Flags.Reset == 1TCP RST パケットをキャプチャします(接続のリセット)。
Frame.Length > 10001000 バイトを超えるパケットのみをキャプチャします。

主要な Netsh コンテキストと使用例

IP 構成を設定する

netsh interface ip set address “Ethernet” static 10.0.0.5 255.255.255.0 10.0.0.1
netsh interface ip set dns “Ethernet” static 1.1.1.1
netsh interface ip set address “Ethernet” dhcp

Winsock と TCP/IP スタックをリセットする

netsh int ip reset
netsh winsock reset

ファイアウォールの操作

netsh advfirewall firewall add rule name=”Allow Ping” dir=in action=allow protocol=icmpv4
netsh advfirewall firewall add rule name=”Allow RDP” dir=in action=allow protocol=TCP localport=3389

netsh advfirewall set allprofiles state on
netsh advfirewall export “C:\\backup\\fwconfig.wfw”

WinHTTP プロキシ

netsh winhttp show proxy
netsh winhttp set proxy “proxy:8080” “<local>”
netsh winhttp reset proxy


6. まとめ

Netsh の多用途性をまとめ、読者にもっと多くのコンテキストとコマンドを調べるよう勧めます。詳細は公式 Microsoft ドキュメント.

コメントを残す