当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] Netsh-带有示例的终极指南

作者:精品下载站 日期:2024-12-14 01:58:37 浏览:14 分类:玩电脑

Netsh-带有示例的终极指南


Netsh 是一个很棒的命令行实用程序,用于管理、配置本地或远程网络设置以及排除故障。 Netsh(Network Shell)的强大功能来自于它提供的不同扩展,也就是众所周知的上下文。

将所有选项集中在一个工具中固然很棒,但这也是一个常见问题。您可能不会每天使用它,那么您需要使用哪些开关(选项)?您是否知道可以使用该工具轻松解决网络问题?

在本文中,我们将借助常用示例来了解 Netsh。最佳实践是什么?如何使用该工具解决网络问题?

基础知识

在我们深入研究 Netsh 并研究所有选项之前,让我们首先从基础知识开始。 Netsh 使用基于上下文的方法,类似于在文件系统中浏览文件夹的方式。上下文是与特定网络配置区域相关的一组命令,例如 winsockint ipwlanadvfirewall

首先,您可以打开 Windows 终端或 PowerShell 并输入 netsh。这将以交互模式打开 netsh,允许您浏览不同的上下文和选项。要查看所有选项,只需键入 ? 并退出 shell,键入 byequit

netsh
?

[玩转系统] Netsh-带有示例的终极指南

通常我不使用交互模式,但发现在一行中输入完整的命令更容易。但我们也可以直接从命令行打开上下文之一。为此,有两个选项,它们可能看起来相同,但有一个重要的区别:

netsh wlan

# Or to open the WLAN context in interactive mode
netsh -c wlan

第一个选项将仅输出 netsh wlan 上下文的所有可能命令。但是,当我们使用 -c 开关时,我们将在 wlan 上下文中以交互方式打开 netsh。

Netsh 上下文

如前所述,每个上下文对网络特定部分的命令进行分组。而且因为它是一个交互式工具,我们可以轻松浏览不同的上下文并查看哪些命令可用。

我不会在本文中完全解释所有上下文,我们将重点关注最常用的上下文。但以下是所有可用的上下文并附有简短描述:

winsock

管理 Windows 套接字设置和目录重置以进行网络故障排除

int ip

处理 TCP/IP 配置、IP 堆栈重置和静态 IP 分配

wlan

管理无线网络、配置文件和 Wi-Fi 连接

advfirewall

配置高级防火墙规则和安全配置文件

interface

控制网络适配器和 IP 配置

trace

捕获网络诊断和跟踪日志以进行故障排除

http

管理 HTTP 设置、IP 侦听器和服务器配置

dhcp

控制 DHCP 服务器设置、范围和 IP 分配

bridge

管理网段之间的网桥连接

routing

控制路由协议和静态路由配置

ras

配置 VPN 和拨号的远程访问服务

lan

管理局域网资源和设置

wins

控制 NetBIOS 解析的 Windows Internet 名称服务

nap

管理网络访问保护健康要求

ikev2

控制 IKEv2 VPN 连接设置

ipsec

配置 IPsec 策略以确保网络通信安全

rpc

管理远程过程调用设置

httpstunnel

通过限制性网络控制 HTTP 隧道

wins proxy

启用跨子网 WINS 服务器通信

nap client

管理 NAP 客户端健康合规性设置

网络示例

正如您所看到的,有很多上下文,每个上下文都有自己的命令(有时甚至还有子命令)。我认为学习和理解 netsh 实用程序的最佳方法是通过示例。下面您将找到一些最常用的 netsh 命令。

温索克重置

当您搜索网络问题时,通常会在互联网上推荐命令 netsh Winsock Reset。但这个命令实际上是做什么的呢?

Windows Sockets (Winsock) API 负责应用程序和操作系统(本例中为 Windows)之间的网络通信。 Winsock 目录可能会损坏,从而导致连接问题。

我们可以使用以下命令将 WinSock 目录重置回默认设置:

netsh winsock reset

IP重置

在解决网络问题时,第二个最推荐运行的命令是netsh int ip reset。此命令会将 TCP/IP 堆栈重置回默认设置。

当我们谈论 TCP/IP 堆栈时,我们指的是与 IP 地址配置相关的所有内容。这也意味着 DHCP 和 DNS 配置将重置为默认设置,因此如果您配置了静态 IP 地址,它将被删除并再次设置为 DHCP。

netsh int ip reset

为了使命令生效,之后重新启动计算机非常重要。该命令通常与 Winsock 重置命令结合使用。

管理无线网络

netsh 的常见用例之一是查看或管理无线网络。几年前,我写了一篇关于如何查看、导出和导入无线网络密码的文章。这些正是您可以看到该实用程序有多么有用的用例。

WLAN 上下文允许您管理您的无线网络连接。我们不仅可以查看、导入或导出无线设置,还可以配置网络优先级,或连接到特定网络。

例如,要查看设备上所有存储的无线网络:

netsh wlan show profiles

我们甚至可以通过指定配置文件名称来放大无线网络并查看所有配置文件详细信息:

netsh wlan show profiles name="Local UniFi Express"

[玩转系统] Netsh-带有示例的终极指南

WLAN 上下文附带了许多更强大的工具,请务必阅读我有关它的详细文章以了解更多信息。

高级防火墙管理

advfirewall 上下文允许您管理 Windows 防火墙的几乎所有方面。我们可以查看当前配置、启用或禁用防火墙规则、添加自定义规则以及配置配置文件。

要查看当前的防火墙配置,我们可以使用以下选项:

# show all profiles
netsh advfirewall show allprofiles

# View all firewall rules
netsh advfirewall firewall show rule name=all profile=domain

第一个选项将显示所有防火墙配置文件以及它们是否已启用。第二个命令显示所有防火墙规则。我们可以微调命令以仅显示特定配置文件中的规则,甚至根据其名称显示特定规则。

在管理防火墙时,我们可以有很多选择。我将向您展示一些最方便了解的内容:

要解决网络问题,您可以暂时关闭防火墙。通过这种方式,您可以快速查看防火墙是否可能导致连接问题。我们可以禁用所有配置文件或特定配置文件:

# Disable all profiles
netsh advfirewall set allprofiles state off

# Disable a specific profile
netsh advfirewall set domainprofile state off

我们还可以将防火墙重置回默认设置。但在执行此操作之前,我建议您首先导出当前设置。两者都可以在 netsh 防火墙上下文中完成:

# Export the current settings
netsh advfirewall export "C:\temp\Firewall-Config-Export.wfw"

# Reset the firewall to default settings
netsh advfirewall reset

netsh 防火墙命令的另一个常见用例是添加或删除防火墙规则。我们可以根据协议、端口号或特定程序创建规则。您将在下面找到一些示例。

默认情况下启用规则,但您也可以创建规则并通过添加参数 enable=no 将其禁用。如果您想阻止某个程序或端口,只需将 action=allow 替换为 action=block 即可。

# Allow specific port (80 and 443)
netsh advfirewall firewall add rule name="Web Server" dir=in action=allow protocol=TCP localport=80,443

# Allow specific program
netsh advfirewall firewall add rule name="My Program" dir=in action=allow program="C:\Path\To\Program.exe" profile=any

# Allow specific protocol (ICMP ping)
netsh advfirewall firewall add rule name="Allow ICMP" dir=in action=allow protocol=icmpv4

[玩转系统] Netsh-带有示例的终极指南

界面管理

我们可以使用netsh interface上下文来查看和配置设备上的网络接口。一个好的起点是查看当前接口及其连接状态。这将告诉您当前正在使用哪些接口(Wi-Fi、以太网或其他适配器):

netsh interface show interface

要查看接口(例如无线网络适配器)的当前配置,我们需要首先打开 ipv4 上下文。然后我们可以显示特定接口的配置:

netsh interface ipv4 show config "Wi-Fi"

[玩转系统] Netsh-带有示例的终极指南

另一个常用的选项是查看路由表。这使您可以解决与其他子网的连接问题。

netsh interface ipv4 show route

[玩转系统] Netsh-带有示例的终极指南

除了查看配置之外,我们当然还可以在 netsh interface 上下文中配置设置。

例如,要为网络适配器(接口)分配静态IP地址并配置DNS服务器,我们可以使用以下命令:

# Set a static IP Address
netsh interface ip set address name="Ethernet" static 192.168.1.10 255.255.255.0 192.168.1.1

# Set the DNS server
netsh interface ip set dns name="Ethernet" static 8.8.8.8

要将适配器设置回 DHCP 模式,我们需要将源更改为 DHCP:

# Set the IP Address to DHCP
netsh interface ipv4 set address name="Ethernet" source=dhcp

# Set DNS to DHCP
netsh interface ipv4 set dns name="Ethernet" source=dhcp

另一个要使用的命令是在计算机上禁用 IPv6。我们需要使用以下命令对每个接口执行此操作:

netsh interface ipv6 set interface "Ethernet" disabled=yes

WinHTTP代理

代理设置通常用于企业环境,但也可以与 VPN 提供商一起使用。 netsh winhttp 上下文允许您查看和配置代理设置。

要检查是否有代理服务配置,我们可以使用以下命令:

netsh winhttp show proxy

添加代理服务是通过 set proxy 命令完成的。添加代理服务器时,您通常会遇到不应通过代理服务器的域。这些可以添加到旁路列表中。在下面的示例中,所有本地地址都将绕过代理:

netsh winhttp set proxy proxy-server="proxy.company.com:8080" bypass-list="*.local;<local>"

要从设备中删除所有代理服务器,我们可以简单地重置代理配置:

netsh winhttp reset proxy

使用 Netsh Trace 进行故障排除

大多数人不知道的是,netsh 实用程序也是一个用于解决网络问题的强大诊断工具。 netsh 跟踪上下文提供了一个包含预定义场景的列表,用于监视、捕获和分析特定的网络组件。

每个跟踪场景都针对特定的网络运营商或流量模式,例如 Wi-Fi 连接、DNS 操作或 TCP/IP 流。当您运行场景时,将创建包含所有网络流量、数据包详细信息、错误等的详细日志。

可以在 Microsoft Message Analyzer 或 Wireshark 等工具中打开日志文件以进行进一步分析。

要查看所有可用的跟踪场景,我们可以使用以下命令:

netsh trace show scenarios

正如您将看到的,有很多可用的选项。一些常见的场景是:

  • NetConnection - 捕获一般网络连接问题。
  • NetEvent - 在高层记录网络事件。
  • IPSec - 监控 IPsec 连接以排除 VPN 故障或安全通信。
  • WebIO - 跟踪 HTTP/HTTPS 流量,对于 Web 应用程序故障排除很有用。
  • WFP - 捕获与 Windows 过滤平台相关的事件,与防火墙和数据包过滤问题相关。
  • 无线 - 监控 Wi-Fi 活动,有助于诊断无线连接问题。

运行场景只需几个步骤即可完成。

首先,您需要启动跟踪。这将告诉 netsh 开始捕获场景中定义的所有详细信息。您将需要指定跟踪文件 (.etl) 的位置,当然还有您要运行的场景:

netsh trace start scenario=NetConnection capture=yes tracefile=c:\temp\trace.etl

运行跟踪时,您将需要重复导致网络问题的步骤。跟踪将在后台运行并捕获所有详细信息。

当您想要捕获的问题发生时,您将需要停止跟踪。

netsh trace stop

收集所有数据并创建跟踪文件需要几分钟的时间。但完成后,您可以在 WireShark 等网络分析器中分析 ETL 文件。

[玩转系统] Netsh-带有示例的终极指南

排除无线网络故障

当我们谈论网络故障排除时,netsh 有一个独特的功能值得一提。要排除无线网络连接故障,我们可以创建 WLAN HTML 报告。

该报告将以图表形式显示所有无线网络连接、连接启动时间、断开连接时间、连接长度、电源状态等。在对客户端设备上不稳定的无线连接进行故障排除时,该报告非常有用。

要创建报告,您可以运行以下命令。默认情况下,报告将在过去 3 天内生成,但您可以使用持续时间参数更改此设置

netsh wlan show wlanreport duration="7"

当您打开报告时,您将首先看到一个连接图。这显示了何时建立连接、适配器何时进入不同的状态或任何连接错误。

[玩转系统] Netsh-带有示例的终极指南

如果您向下滚动一下报告,您会发现更多有关无线网络连接的有用信息。它将首先显示所有网络适配器信息以及特定网络相关命令的一些输出。

但在其下方,您将看到所有连接的摘要,以及断开连接原因和会话持续时间的概述。在报告末尾,您将找到每个无线会话的详细报告,其中包含所有连接详细信息。

[玩转系统] Netsh-带有示例的终极指南

总结

当您需要查看或更改网络相关设置时,netsh 是一个很好用的工具。如果您对基本命令有点熟悉,那么现在使用 netsh 然后单击 Windows 上的所有界面通常会更快。

在更改设置之前,请务必确保您已备份当前设置。在大多数情况下,您只需使用 dump 选项即可完成此操作。这样您就可以随时恢复到之前的设置。

我希望这篇文章对您有用,如果您有任何疑问,请在下面发表评论。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯