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 端口)。

协议专用过滤器

过滤器协议描述
DNSDNS捕获 DNS 查询和响应。
HTTPHTTP捕获 HTTP 流量(可按方法进一步过滤)。
TCPTCP捕获所有 TCP 流量。
UDPUDP捕获所有 UDP 流量。
SMB2SMB捕获 SMBv2 文件共享流量。
KerberosKerberos捕获 Kerberos 身份验证数据包。
LDAPLDAP捕获 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 上下文和用例

设置 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 官方文档.

发表评论