簡介
簡要概述 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 Proxy:
- 設定 Proxy:
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 連接埠)。 |
通訊協定專用篩選器
| 篩選器 | 通訊協定 | 描述 |
| DNS | DNS | 擷取 DNS 查詢和回應。 |
| HTTP | HTTP | 擷取 HTTP 流量(可按方法進一步篩選)。 |
| TCP | TCP | 擷取所有 TCP 流量。 |
| UDP | UDP | 擷取所有 UDP 流量。 |
| SMB2 | SMB | 擷取 SMBv2 檔案共用流量。 |
| Kerberos | Kerberos | 擷取 Kerberos 驗證封包。 |
| LDAP | LDAP | 擷取 LDAP 查詢/回應。 |
工作階段篩選器
| 篩選器 | 用途 |
| IPv4.SourceAddress == x.x.x.x AND IPv4.DestinationAddress == y.y.y.y | 篩選兩個特定主機之間的流量。 |
| 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 == 0 | 擷取 SYN 封包(TCP 交握的開始)。 |
| TCP.Flags.FIN == 1 | 擷取 FIN 封包(TCP 工作階段的結束)。 |
| TCP.Flags.Reset == 1 | 擷取 TCP RST 封包(連線重設)。 |
| Frame.Length > 1000 | 僅擷取大於 1000 位元組的封包。 |
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
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”
netsh winhttp show proxy
netsh winhttp set proxy “proxy:8080” “<local>”
netsh winhttp reset proxy
6. 結論
總結 Netsh 作為網路管理和疑難排解工具的多功能性。鼓勵讀者使用Microsoft 官方文件.