Windows网络诊断命令详解

admin 2026-03-05 20:58:44 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 该文档详细阐述了Windows网络诊断与配置管理命令,涵盖IP信息收集、连通性测试、路由跟踪及防火墙配置等核心技能。文中通过具体示例讲解了ipconfig、ping、netsh等工具用法,并提供了实用的自动化诊断脚本。内容结构严谨,兼具理论指导与实战操作,为运维人员提供了快速排查故障与网络管理的有效方案,具有较高的参考价值。 综合评分: 88 文章分类: 实战经验,安全工具,网络安全,终端安全


cover_image

Windows 网络诊断命令详解

原创

刘军军 刘军军

运维星火燎原

2026年3月4日 00:00 天津

目录

  1. 网络信息收集命令
  2. 连通性测试命令
  3. 网络配置管理命令
  4. 网络故障修复命令
  5. 高级网络诊断工具
  6. 常见网络问题排查
  7. 自动化诊断脚本
  8. 命令速查表

一、网络信息收集命令

1.1 IP 配置信息

:: ========== 基础 IP 信息 ==========
:: 查看基本 IP 配置
ipconfig

:: 查看完整 IP 配置(推荐)
ipconfig /all

:: 输出示例
Windows IP 配置

   主机名  . . . . . . . . . . . . . : DESKTOP-ABC123
   主 DNS 后缀 . . . . . . . . . . . :
   节点类型  . . . . . . . . . . . . : 混合
   IP 路由已启用 . . . . . . . . . . : 否
   WINS 代理已启用 . . . . . . . . . : 否

以太网适配器 以太网:

   连接特定的 DNS 后缀 . . . . . . . :
   描述. . . . . . . . . . . . . . . : Realtek PCIe GbE Family Controller
   物理地址. . . . . . . . . . . . . : 00-11-22-33-44-55
   DHCP 已启用 . . . . . . . . . . . : 是
   自动配置已启用. . . . . . . . . . : 是
   IPv4 地址 . . . . . . . . . . . . : 192.168.1.100(首选)
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   获得租约的时间  . . . . . . . . . : 2024 年 1 月 15 日 8:00:00
   租约过期的时间  . . . . . . . . . : 2024 年 1 月 16 日 8:00:00
   默认网关. . . . . . . . . . . . . : 192.168.1.1
   DHCP 服务器 . . . . . . . . . . . : 192.168.1.1
   DNS 服务器  . . . . . . . . . . . : 8.8.8.8
                                       114.114.114.114
:: ========== IP 配置管理 ==========
:: 释放 DHCP 租约
ipconfig /release

:: 更新 DHCP 租约
ipconfig /renew

:: 释放特定适配器
ipconfig /release "以太网"
ipconfig /renew "以太网"

:: 刷新 DNS 缓存
ipconfig /flushdns

:: 显示 DNS 缓存
ipconfig /displaydns

:: 注册 DNS
ipconfig /registerdns

:: 查看 DHCP 类别
ipconfig /showclassid *

:: 设置 DHCP 类别
ipconfig /setclassid "以太网" *

1.2 网络接口信息

:: ========== 网络接口详细信息 ==========
:: 查看 MAC 地址
getmac
getmac /v
getmac /fo list

:: 查看网络适配器配置
wmic nic get Name,MACAddress,NetEnabled
wmic nicconfig get IPAddress,IPSubnet,DefaultIPGateway

:: 查看网络接口状态
netsh interface show interface

:: 查看接口 IP 配置
netsh interface ip show config

:: 查看接口统计
netsh interface ip show stats

:: 查看 IPv4 配置
netsh interface ipv4 show config

:: 查看 IPv6 配置
netsh interface ipv6 show config

1.3 网络连接统计

:: ========== 网络连接统计 ==========
:: 查看所有连接和监听端口
netstat -a

:: 查看数字格式(不解析名称)
netstat -an

:: 查看连接和进程 ID
netstat -ano

:: 查看以太网统计
netstat -e

:: 查看协议统计
netstat -s

:: 查看路由表
netstat -r

:: 查看特定端口
netstat -ano | findstr ":80"
netstat -ano | findstr ":443"

:: 查看 ESTABLISHED 连接
netstat -ano | findstr "ESTABLISHED"

:: 查看 LISTENING 端口
netstat -ano | findstr "LISTENING"

:: 统计连接数
netstat -an | find /c /v ""
netstat -an | findstr "ESTABLISHED" | find /c /v ""

:: 输出示例
  协议    本地地址          外部地址        状态           PID
  TCP     0.0.0.0:80        0.0.0.0:0       LISTENING       4
  TCP     192.168.1.100:52345  8.8.8.8:443   ESTABLISHED     1234
  UDP     0.0.0.0:53        *:*                             5678

1.4 网络信息收集脚本

:: ========== 网络信息收集脚本 ==========
:: 文件名:network_info.bat

@echo off
title 网络信息收集工具
color 0b

set LOG_FILE=C:\network_info_%date:~0,4%%date:~5,2%%date:~8,2%.txt

echo ==================================== > %LOG_FILE%
echo   网络信息收集报告 >> %LOG_FILE%
echo   时间:%date% %time% >> %LOG_FILE%
echo ==================================== >> %LOG_FILE%
echo.

:: 1. IP 配置
echo [1] IP 配置信息 >> %LOG_FILE%
ipconfig /all >> %LOG_FILE%
echo. >> %LOG_FILE%

:: 2. 路由表
echo [2] 路由表 >> %LOG_FILE%
route print >> %LOG_FILE%
echo. >> %LOG_FILE%

:: 3. ARP 缓存
echo [3] ARP 缓存 >> %LOG_FILE%
arp -a >> %LOG_FILE%
echo. >> %LOG_FILE%

:: 4. 网络连接
echo [4] 网络连接 >> %LOG_FILE%
netstat -ano >> %LOG_FILE%
echo. >> %LOG_FILE%

:: 5. DNS 配置
echo [5] DNS 配置 >> %LOG_FILE%
nslookup www.baidu.com >> %LOG_FILE%
echo. >> %LOG_FILE%

:: 6. 网络接口
echo [6] 网络接口 >> %LOG_FILE%
netsh interface show interface >> %LOG_FILE%
echo. >> %LOG_FILE%

:: 7. MAC 地址
echo [7] MAC 地址 >> %LOG_FILE%
getmac /v >> %LOG_FILE%
echo. >> %LOG_FILE%

echo ==================================== >> %LOG_FILE%
echo   信息收集完成 >> %LOG_FILE%
echo   日志文件:%LOG_FILE% >> %LOG_FILE%
echo ==================================== >> %LOG_FILE%

echo 网络信息收集完成!
echo 日志文件:%LOG_FILE%
pause

二、连通性测试命令

2.1 Ping 命令详解

:: ========== Ping 基础用法 ==========
:: 基本 ping 测试
ping www.baidu.com
ping 192.168.1.1

:: 指定 ping 次数
ping -n 4 www.baidu.com

:: 持续 ping(按 Ctrl+C 停止)
ping -t 192.168.1.1

:: 指定数据包大小
ping -l 1000 www.baidu.com
ping -l 65500 www.baidu.com  (最大 65500 字节)

:: 指定超时时间(毫秒)
ping -w 5000 www.baidu.com

:: 不分片
ping -f -l 1472 www.baidu.com  (测试 MTU)

:: 指定 TTL
ping -i 64 www.baidu.com

:: 记录路由(最多 4 跳)
ping -r 4 www.baidu.com

:: 指定源地址
ping -S 192.168.1.100 www.baidu.com

:: 输出示例
正在 Ping www.baidu.com [14.215.177.38] 具有 32 字节的数据:
来自 14.215.177.38 的回复:字节=32 时间=25ms TTL=54
来自 14.215.177.38 的回复:字节=32 时间=24ms TTL=54
来自 14.215.177.38 的回复:字节=32 时间=26ms TTL=54
来自 14.215.177.38 的回复:字节=32 时间=25ms TTL=54

14.215.177.38 的 Ping 统计信息:
    数据包:已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间 (以毫秒为单位):
    最短 = 24ms,最长 = 26ms,平均 = 25ms

2.2 路由跟踪命令

:: ========== Tracert 路由跟踪 ==========
:: 基本路由跟踪
tracert www.baidu.com

:: 不解析主机名(更快)
tracert -d www.baidu.com

:: 指定最大跳数
tracert -h 30 www.baidu.com

:: 指定超时时间
tracert -w 1000 www.baidu.com

:: 指定源地址
tracert -S 192.168.1.100 www.baidu.com

:: 输出示例
通过最多 30 个跃点跟踪到 www.baidu.com [14.215.177.38] 的路由:

  1     1 ms     1 ms     1 ms  192.168.1.1
  2    10 ms     9 ms    10 ms  10.0.0.1
  3    15 ms    14 ms    15 ms  202.97.0.1
  4    20 ms    19 ms    20 ms  14.215.177.38

跟踪完成。
:: ========== Pathping 路径分析 ==========
:: 综合 ping 和 tracert 的功能
pathping www.baidu.com

:: 不解析主机名
pathping -n www.baidu.com

:: 指定查询次数
pathping -q 10 www.baidu.com

:: 指定超时时间
pathping -w 1000 www.baidu.com

:: 输出示例(分两阶段)
阶段 1:计算路由...
  0  DESKTOP-ABC123 [192.168.1.100]
  1  192.168.1.1
  2  10.0.0.1
  3  14.215.177.38

阶段 2:统计丢包率...
节点/链接 IP       丢失/发送=Pct  地址
  0                0/100=  0%     192.168.1.100
  1                0/100=  0%     192.168.1.1
  2                5/100=  5%     10.0.0.1
  3                0/100=  0%     14.215.177.38

2.3 DNS 查询命令

:: ========== Nslookup DNS 查询 ==========
:: 基本 DNS 查询
nslookup www.baidu.com

:: 指定 DNS 服务器
nslookup www.baidu.com 8.8.8.8
nslookup www.baidu.com 114.114.114.114

:: 查询特定记录类型
nslookup -type=A www.baidu.com       (IPv4 地址)
nslookup -type=AAAA www.baidu.com    (IPv6 地址)
nslookup -type=MX baidu.com          (邮件服务器)
nslookup -type=NS baidu.com          (名称服务器)
nslookup -type=CNAME www.baidu.com   (别名)
nslookup -type=TXT baidu.com         (文本记录)
nslookup -type=SOA baidu.com         (授权起始)
nslookup -type=PTR 8.8.8.8           (反向查询)

:: 交互模式
nslookup
> server 8.8.8.8
> www.baidu.com
> set type=MX
> baidu.com
> exit

:: 输出示例
服务器:  dns.google
Address:  8.8.8.8

非权威应答:
名称:    www.baidu.com
Addresses:  14.215.177.38
          14.215.177.39

2.4 端口连接测试

:: ========== 端口连接测试 ==========
:: Telnet 测试(需要启用 Telnet 客户端)
telnet 192.168.1.100 80
telnet www.baidu.com 443

:: PowerShell Test-NetConnection(Win8+)
powershell "Test-NetConnection 192.168.1.100 -Port 80"
powershell "Test-NetConnection www.baidu.com -Port 443"

:: PowerShell 详细测试
powershell "Test-NetConnection -ComputerName 192.168.1.100 -Port 80 -InformationLevel Detailed"

:: 使用 PsPing(Sysinternals 工具)
psping 192.168.1.100:80
psping -t 192.168.1.100:80

:: 输出示例(Test-NetConnection)
ComputerName     : 192.168.1.100
RemoteAddress    : 192.168.1.100
RemotePort       : 80
InterfaceAlias   : 以太网
SourceAddress    : 192.168.1.50
TcpTestSucceeded : True

2.5 连通性测试脚本

:: ========== 连通性测试脚本 ==========
:: 文件名:connectivity_test.bat

@echo off
title 网络连通性测试
color 0a

echo ====================================
echo   网络连通性测试
echo ====================================
echo.

:: 1. 本地回环测试
echo [1] 本地回环测试
ping 127.0.0.1 -n 2
echo.

:: 2. 本地 IP 测试
echo [2] 本地 IP 测试
for /f "tokens=2" %%i in ('ipconfig ^| findstr /C:"IPv4 地址"') do (
    set localip=%%i
    ping %%i -n 2
    goto :next1
)
:next1
echo.

:: 3. 网关测试
echo [3] 网关测试
for /f "tokens=2" %%i in ('ipconfig ^| findstr /C:"默认网关"') do (
    set gateway=%%i
    echo 网关:%%i
    ping %%i -n 4
    goto :next2
)
:next2
echo.

:: 4. DNS 测试
echo [4] DNS 解析测试
nslookup www.baidu.com
echo.

:: 5. 外网 IP 测试
echo [5] 外网 IP 测试
ping 8.8.8.8 -n 4
echo.

:: 6. 域名测试
echo [6] 域名连通性测试
ping www.baidu.com -n 4
echo.

:: 7. 路由跟踪
echo [7] 路由跟踪(前 5 跳)
tracert -d -h 5 www.baidu.com
echo.

:: 8. 结果总结
echo ====================================
echo   测试结果总结
echo ====================================
echo 本地回环:127.0.0.1
echo 本地 IP: %localip%
echo 默认网关:%gateway%
echo.
echo 如果以上任何一步失败,请检查相应网络配置
echo ====================================
pause

三、网络配置管理命令

3.1 Netsh 命令详解

:: ========== Netsh 基础命令 ==========
:: 进入 netsh 交互模式
netsh
netsh> interface
netsh interface> ip

:: 查看网络配置
netsh interface show interface
netsh interface ip show config
netsh interface ip show addresses
netsh interface ip show dns

:: 查看接口统计
netsh interface ip show stats
:: ========== IP 地址配置 ==========
:: 设置静态 IP
netsh interface ip set address "以太网" static 192.168.1.100 255.255.255.0 192.168.1.1 1

:: 设置 DHCP
netsh interface ip set address "以太网" dhcp

:: 添加备用 IP
netsh interface ip add address "以太网" 192.168.1.101 255.255.255.0

:: 删除 IP 地址
netsh interface ip delete address "以太网" 192.168.1.101

:: 设置 DNS
netsh interface ip set dns "以太网" static 8.8.8.8
netsh interface ip add dns "以太网" 114.114.114.114 index=2

:: 设置 DHCP DNS
netsh interface ip set dns "以太网" dhcp

:: 设置 WINS
netsh interface ip set wins "以太网" static 192.168.1.10
netsh interface ip set wins "以太网" dhcp
:: ========== 接口管理 ==========
:: 启用接口
netsh interface set interface "以太网" enabled

:: 禁用接口
netsh interface set interface "以太网" disabled

:: 重命名接口
netsh interface set interface name="以太网" newname="LAN"

:: 查看接口
netsh interface show interface

:: 导出接口配置
netsh interface dump > C:\interface_config.txt

:: 导入接口配置
netsh exec C:\interface_config.txt
:: ========== 防火墙配置 ==========
:: 查看防火墙状态
netsh advfirewall show allprofiles state

:: 启用防火墙
netsh advfirewall set allprofiles state on

:: 禁用防火墙
netsh advfirewall set allprofiles state off

:: 添加入站规则
netsh advfirewall firewall add rule name="Allow HTTP" dir=in action=allow protocol=TCP localport=80

:: 添加出站规则
netsh advfirewall firewall add rule name="Allow HTTPS" dir=out action=allow protocol=TCP localport=443

:: 删除规则
netsh advfirewall firewall delete rule name="Allow HTTP"

:: 查看规则
netsh advfirewall firewall show rule name=all

:: 导出防火墙配置
netsh advfirewall export C:\firewall.wfw

:: 导入防火墙配置
netsh advfirewall import C:\firewall.wfw

:: 重置防火墙
netsh advfirewall reset

3.2 路由管理命令

:: ========== 路由表管理 ==========
:: 查看路由表
route print
route print -4
route print -6

:: 查看特定路由
route print 192.168.*

:: 添加静态路由
route add 10.0.0.0 mask 255.0.0.0 192.168.1.1
route add 10.0.0.0 mask 255.0.0.0 192.168.1.1 metric 5
route add 10.0.0.0 mask 255.0.0.0 192.168.1.1 -p  (永久路由)

:: 修改路由
route change 10.0.0.0 mask 255.0.0.0 192.168.1.2

:: 删除路由
route delete 10.0.0.0

:: 清除所有路由(谨慎使用)
route -f

:: 输出示例
===========================================================================
接口列表
  1...00 11 22 33 44 55 ......Realtek PCIe GbE Family Controller
===========================================================================
IPv4 路由表
===========================================================================
活动路由:
网络目标        网络掩码          网关       接口   跃点数
          0.0.0.0          0.0.0.0      192.168.1.1    192.168.1.100     25
        127.0.0.0        255.0.0.0            在链路上         127.0.0.1    331
      192.168.1.0    255.255.255.0            在链路上     192.168.1.100    281
===========================================================================

3.3 ARP 缓存管理

:: ========== ARP 缓存管理 ==========
:: 查看 ARP 缓存
arp -a

:: 查看特定接口的 ARP 缓存
arp -a -N 192.168.1.100

:: 添加静态 ARP 条目
arp -s 192.168.1.50 00-11-22-33-44-55

:: 删除 ARP 条目
arp -d 192.168.1.50

:: 清空 ARP 缓存
arp -d *

:: 输出示例
接口:192.168.1.100 --- 0xa
  Internet 地址         物理地址              类型
  192.168.1.1           00-11-22-33-44-55     动态
  192.168.1.50          00-aa-bb-cc-dd-ee     静态
  192.168.1.255         ff-ff-ff-ff-ff-ff     静态

3.4 网络配置备份与恢复

:: ========== 网络配置备份 ==========
:: 导出网络配置
netsh interface dump > C:\network_backup.txt
netsh advfirewall export C:\firewall_backup.wfw
reg export HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters C:\tcpip_backup.reg

:: 恢复网络配置
netsh exec C:\network_backup.txt
netsh advfirewall import C:\firewall_backup.wfw
reg import C:\tcpip_backup.reg

:: 重置网络配置
netsh int ip reset
netsh winsock reset
netsh advfirewall reset

四、网络故障修复命令

4.1 网络重置命令

:: ========== 完整网络重置 ==========
:: 1. 释放和更新 IP
ipconfig /release
ipconfig /renew

:: 2. 刷新 DNS
ipconfig /flushdns
ipconfig /registerdns

:: 3. 重置 Winsock
netsh winsock reset

:: 4. 重置 TCP/IP
netsh int ip reset
netsh int ipv4 reset
netsh int ipv6 reset

:: 5. 重置防火墙
netsh advfirewall reset

:: 6. 重置网络适配器
netsh interface set interface "以太网" disable
netsh interface set interface "以太网" enable

:: 7. 重启网络服务
net stop lanmanworkstation
net start lanmanworkstation
net stop dnscache
net start dnscache

:: 8. 重启计算机(完成重置)
shutdown /r /t 0

4.2 DNS 问题修复

:: ========== DNS 问题修复 ==========
:: 刷新 DNS 缓存
ipconfig /flushdns

:: 显示 DNS 缓存
ipconfig /displaydns

:: 清除 DNS 缓存
ipconfig /flushdns

:: 注册 DNS
ipconfig /registerdns

:: 设置 DNS 服务器
netsh interface ip set dns "以太网" static 8.8.8.8
netsh interface ip add dns "以太网" 114.114.114.114 index=2

:: 恢复 DHCP DNS
netsh interface ip set dns "以太网" dhcp

:: 测试 DNS 解析
nslookup www.baidu.com
nslookup www.baidu.com 8.8.8.8

:: 清除 DNS 缓存文件
del /f /q C:\Windows\System32\dns\cache.*

4.3 网络适配器修复

:: ========== 网络适配器修复 ==========
:: 查看适配器状态
netsh interface show interface

:: 禁用/启用适配器
netsh interface set interface "以太网" disable
timeout /t 3 /nobreak
netsh interface set interface "以太网" enable

:: 更新驱动
pnputil /scan-devices
pnputil /update-driver C:\driver\*.inf

:: 卸载适配器(设备管理器)
devmgmt.msc

:: 重新安装适配器
:: 1. 设备管理器中卸载
:: 2. 扫描硬件改动
:: 3. 或重启计算机

:: 重置适配器配置
netsh interface ip reset
netsh winsock reset

4.4 网络故障修复脚本

:: ========== 网络故障修复脚本 ==========
:: 文件名:network_repair.bat
:: 需要管理员权限

@echo off
title 网络故障修复工具
color 0c

echo ====================================
echo   Windows 网络故障修复工具
echo ====================================
echo.
echo 警告:此脚本将重置网络配置
echo 按任意键继续,或按 Ctrl+C 取消
pause >nul

echo.
echo [1/8] 释放 IP 地址...
ipconfig /release >nul 2>&1
echo 完成

echo.
echo [2/8] 更新 IP 地址...
ipconfig /renew >nul 2>&1
echo 完成

echo.
echo [3/8] 刷新 DNS 缓存...
ipconfig /flushdns >nul 2>&1
echo 完成

echo.
echo [4/8] 重置 Winsock...
netsh winsock reset >nul 2>&1
echo 完成

echo.
echo [5/8] 重置 TCP/IP...
netsh int ip reset >nul 2>&1
echo 完成

echo.
echo [6/8] 重置防火墙...
netsh advfirewall reset >nul 2>&1
echo 完成

echo.
echo [7/8] 重启 DNS 服务...
net stop dnscache >nul 2>&1
net start dnscache >nul 2>&1
echo 完成

echo.
echo [8/8] 注册 DNS...
ipconfig /registerdns >nul 2>&1
echo 完成

echo.
echo ====================================
echo   网络修复完成!
echo   建议重启计算机以使更改生效
echo ====================================
echo.
set /p restart="是否立即重启?(Y/N): "
if /i "%restart%"=="Y" (
    shutdown /r /t 0
) else (
    echo 请手动重启计算机
    pause
)

五、高级网络诊断工具

5.1 Windows 内置诊断工具

:: ========== 网络诊断工具 ==========
:: 网络疑难解答
msdt.exe /id NetworkDiagnosticsNetworkAdapter

:: 网络共享中心
control.exe /name Microsoft.NetworkAndSharingCenter

:: 网络连接文件夹
ncpa.cpl

:: 网络诊断
netsh diag show all

:: 网络状态
netsh wlan show networks

:: WiFi 配置文件
netsh wlan show profiles
netsh wlan show profile name="WiFi 名称" key=clear

:: 网络适配器诊断
netsh interface show interface

5.2 性能监控工具

:: ========== 网络性能监控 ==========
:: 性能监视器
perfmon

:: 资源监视器
resmon

:: 网络监视器(添加计数器)
typeperf "\Network Interface(*)\Bytes Total/sec" -si 5 -sc 12
typeperf "\Network Interface(*)\Packets/sec" -si 5 -sc 12
typeperf "\Network Interface(*)\Packets Outbound Errors" -si 5 -sc 12

:: 查看网络适配器性能
netstat -e 5  (每 5 秒刷新)

:: PowerShell 网络监控
powershell "Get-Counter '\Network Interface(*)\Bytes Total/sec' -SampleInterval 2 -MaxSamples 5"

5.3 第三方诊断工具

| | | | | — | — | — | | 工具 | 用途 | 下载 | | Wireshark | 抓包分析 | wireshark.org | | PsPing | 端口测试 | Microsoft Sysinternals | | TcpView | 连接监控 | Microsoft Sysinternals | | Fiddler | HTTP 调试 | telerik.com/fiddler | | NetBalancer | 流量控制 | netbalancer.com | | GlassWire | 网络监控 | glasswire.com |

5.4 抓包分析命令

:: ========== 使用 netsh 抓包 ==========
:: 开始抓包
netsh trace start capture=yes tracefile=C:\network.etl

:: 停止抓包
netsh trace stop

:: 查看抓包状态
netsh trace show status

:: 使用 Wireshark 分析
:: 1. 转换 ETL 到 PCAP
netsh trace convert input=C:\network.etl output=C:\network.pcap

:: 2. 用 Wireshark 打开
wireshark C:\network.pcap

:: PowerShell 抓包
powershell "Start-NetEventSession -Name Capture -CaptureMode SaveToFile -LocalFilePath C:\capture.etl"
powershell "Stop-NetEventSession -Name Capture"

六、常见网络问题排查

6.1 无法上网排查流程

┌─────────────────────────────────────────────────────────────────┐
│                      无法上网                                    │
└─────────────────────────┬───────────────────────────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────────────┐
│  1. 检查本地连接                                                 │
│     ipconfig /all                                               │
│     确认 IP 地址、子网掩码、网关是否正确                              │
└─────────────────────────┬───────────────────────────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────────────┐
│  2. 测试本地连通性                                               │
│     ping 127.0.0.1          (回环测试)                           │
│     ping 本地 IP            (网卡测试)                            │
└─────────────────────────┬───────────────────────────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────────────┐
│  3. 测试网关连通性                                               │
│     ping 网关 IP                                                │
│     失败→检查网线/路由器                                         │
└─────────────────────────┬───────────────────────────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────────────┐
│  4. 测试 DNS 解析                                                 │
│     nslookup www.baidu.com                                       │
│     失败→检查 DNS 服务器配置                                        │
└─────────────────────────┬───────────────────────────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────────────┐
│  5. 测试外网连通性                                               │
│     ping 8.8.8.8                                                │
│     失败→检查路由器/ISP                                          │
└─────────────────────────┬───────────────────────────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────────────┐
│  6. 执行网络重置                                                 │
│     netsh winsock reset                                         │
│     netsh int ip reset                                          │
│     重启计算机                                                   │
└─────────────────────────────────────────────────────────────────┘

6.2 常见网络问题及解决方案

| | | | | — | — | — | | 问题 | 诊断命令 | 解决方案 | | 无 IP 地址 | ipconfig | ipconfig /renew | | IP 冲突 | arp -a | 更改静态 IP 或重启 DHCP | | 网关不通 | ping 网关 | 检查路由器/网线 | | DNS 失败 | nslookup | 更换 DNS 服务器 | | 端口不通 | telnet IP 端口 | 检查防火墙/服务 | | 网速慢 | pathping | 检查带宽/干扰 | | 频繁断线 | ping -t 网关 | 检查网卡驱动/硬件 | | WiFi 连不上 | netsh wlan show | 重置 WiFi 配置 |

6.3 WiFi 问题排查

:: ========== WiFi 问题排查 ==========
:: 查看 WiFi 适配器
netsh wlan show interfaces

:: 查看可用网络
netsh wlan show networks

:: 查看保存的配置文件
netsh wlan show profiles

:: 查看 WiFi 密码
netsh wlan show profile name="WiFi 名称" key=clear

:: 连接 WiFi
netsh wlan connect name="WiFi 名称"

:: 断开 WiFi
netsh wlan disconnect

:: 删除配置文件
netsh wlan delete profile name="WiFi 名称"

:: 查看 WiFi 信号质量
netsh wlan show interfaces | findstr "信号"

:: 重置 WiFi
netsh wlan delete profile name=*
netsh int ip reset
netsh winsock reset

6.4 网络问题排查脚本

:: ========== 网络问题诊断脚本 ==========
:: 文件名:network_troubleshoot.bat

@echo off
title 网络问题诊断工具
color 0b

echo ====================================
echo   网络问题诊断工具
echo ====================================
echo.

set PROBLEM=0

:: 1. 检查网络适配器
echo [1] 检查网络适配器...
netsh interface show interface | findstr "已连接"
if errorlevel 1 (
    echo ❌ 未检测到连接的网络适配器
    set PROBLEM=1
) else (
    echo ✓ 网络适配器正常
)
echo.

:: 2. 检查 IP 配置
echo [2] 检查 IP 配置...
ipconfig | findstr "IPv4"
if errorlevel 1 (
    echo ❌ 未获取到 IP 地址
    set PROBLEM=1
) else (
    echo ✓ IP 配置正常
)
echo.

:: 3. 测试网关
echo [3] 测试网关连通性...
for /f "tokens=2" %%i in ('ipconfig ^| findstr /C:"默认网关"') do (
    ping %%i -n 2 -w 1000 | findstr "TTL"
    if errorlevel 1 (
        echo ❌ 网关不通:%%i
        set PROBLEM=1
    ) else (
        echo ✓ 网关连通:%%i
    )
    goto :next1
)
:next1
echo.

:: 4. 测试 DNS
echo [4] 测试 DNS 解析...
nslookup www.baidu.com | findstr "Address"
if errorlevel 1 (
    echo ❌ DNS 解析失败
    set PROBLEM=1
) else (
    echo ✓ DNS 解析正常
)
echo.

:: 5. 测试外网
echo [5] 测试外网连通性...
ping 8.8.8.8 -n 2 -w 1000 | findstr "TTL"
if errorlevel 1 (
    echo ❌ 外网不通
    set PROBLEM=1
) else (
    echo ✓ 外网连通
)
echo.

:: 6. 总结
echo ====================================
if %PROBLEM% equ 0 (
    echo   网络状态正常
) else (
    echo   发现网络问题,建议执行以下操作:
    echo   1. ipconfig /release ^&^& ipconfig /renew
    echo   2. ipconfig /flushdns
    echo   3. netsh winsock reset
    echo   4. netsh int ip reset
    echo   5. 重启计算机
)
echo ====================================
pause

七、自动化诊断脚本

7.1 完整网络诊断脚本

:: ========== 完整网络诊断脚本 ==========
:: 文件名:full_network_diagnosis.bat
:: 需要管理员权限

@echo off
title 完整网络诊断工具
color 0a

set LOG_DIR=C:\NetworkDiagnosis
set LOG_FILE=%LOG_DIR%\diagnosis_%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%.log
set LOG_FILE=%LOG_FILE: =0%

if not exist %LOG_DIR% mkdir %LOG_DIR%

echo ==================================== > %LOG_FILE%
echo   网络诊断报告 >> %LOG_FILE%
echo   时间:%date% %time% >> %LOG_FILE%
echo ==================================== >> %LOG_FILE%
echo.

:: 诊断函数
:diagnose
echo %1 >> %LOG_FILE%
echo %1
shift
:loop
if "%1"=="" goto :eof
echo %1 >> %LOG_FILE%
shift
goto loop

:section
echo. >> %LOG_FILE%
echo ==================================== >> %LOG_FILE%
echo %1 >> %LOG_FILE%
echo ==================================== >> %LOG_FILE%
echo.
echo %1
shift
goto :eof

:: 开始诊断
call :section [1] 系统信息
hostname >> %LOG_FILE%
ver >> %LOG_FILE%
echo.

call :section [2] 网络适配器
netsh interface show interface >> %LOG_FILE%
echo.

call :section [3] IP 配置
ipconfig /all >> %LOG_FILE%
echo.

call :section [4] 路由表
route print >> %LOG_FILE%
echo.

call :section [5] ARP 缓存
arp -a >> %LOG_FILE%
echo.

call :section [6] 网络连接
netstat -ano >> %LOG_FILE%
echo.

call :section [7] 连通性测试
call :diagnose 本地回环:
ping 127.0.0.1 -n 2 >> %LOG_FILE%
call :diagnose 网关测试:
for /f "tokens=2" %%i in ('ipconfig ^| findstr /C:"默认网关"') do ping %%i -n 2 >> %LOG_FILE%
call :diagnose DNS 测试:
nslookup www.baidu.com >> %LOG_FILE% 2>&1
call :diagnose 外网测试:
ping 8.8.8.8 -n 2 >> %LOG_FILE%
echo.

call :section [8] DNS 配置
ipconfig /displaydns >> %LOG_FILE% 2>&1
echo.

call :section [9] 防火墙状态
netsh advfirewall show allprofiles state >> %LOG_FILE%
echo.

call :section [10] 网络统计
netstat -e >> %LOG_FILE%
echo.

echo ==================================== >> %LOG_FILE%
echo   诊断完成 >> %LOG_FILE%
echo   日志文件:%LOG_FILE% >> %LOG_FILE%
echo ==================================== >> %LOG_FILE%

echo.
echo ====================================
echo   网络诊断完成
echo   日志文件:%LOG_FILE%
echo ====================================
pause

7.2 网络监控脚本

:: ========== 网络监控脚本 ==========
:: 文件名:network_monitor.bat

@echo off
title 网络实时监控
color 0b

:loop
cls
echo ====================================
echo   网络实时监控
echo   时间:%date% %time%
echo   按 Ctrl+C 退出
echo ====================================
echo.

:: IP 信息
echo [IP 地址]
ipconfig | findstr "IPv4"
echo.

:: 网关
echo [默认网关]
ipconfig | findstr "默认网关"
echo.

:: 连接数
echo [网络连接数]
echo 总连接:
netstat -ano | find /c /v ""
echo 已建立:
netstat -ano | findstr "ESTABLISHED" | find /c /v ""
echo.

:: 监听端口
echo [监听端口数]
netstat -ano | findstr "LISTENING" | find /c /v ""
echo.

:: Ping 测试
echo [外网 Ping 测试]
ping 8.8.8.8 -n 1 | findstr "时间"
echo.

timeout /t 5 /nobreak >nul
goto :loop

八、命令速查表

8.1 网络诊断命令速查

| | | | | — | — | — | | 功能 | 命令 | 说明 | | 查看 IP | ipconfig /all | 完整 IP 配置 | | 更新 IP | ipconfig /renew | 获取新 IP | | 释放 IP | ipconfig /release | 释放当前 IP | | 刷新 DNS | ipconfig /flushdns | 清除 DNS 缓存 | | Ping 测试 | ping 目标 | 测试连通性 | | 路由跟踪 | tracert 目标 | 跟踪路由路径 | | 路径分析 | pathping 目标 | 综合 ping+tracert | | DNS 查询 | nslookup 域名 | 查询 DNS 记录 | | 连接统计 | netstat -ano | 查看所有连接 | | ARP 缓存 | arp -a | 查看 ARP 表 | | 路由表 | route print | 查看路由表 | | 网络配置 | netsh interface ip show config | 查看接口配置 | | 重置网络 | netsh winsock reset | 重置 Winsock | | 防火墙 | netsh advfirewall | 防火墙配置 | | WiFi | netsh wlan | WiFi 配置 |

8.2 网络故障快速修复

:: 快速修复命令序列
ipconfig /release
ipconfig /renew
ipconfig /flushdns
netsh winsock reset
netsh int ip reset
netsh advfirewall reset
shutdown /r /t 0

:: 单行执行
ipconfig /release && ipconfig /renew && ipconfig /flushdns && netsh winsock reset && netsh int ip reset

8.3 常用端口参考

| | | | | — | — | — | | 端口 | 服务 | 测试命令 | | 80 | HTTP | telnet 目标 80 | | 443 | HTTPS | telnet 目标 443 | | 22 | SSH | telnet 目标 22 | | 21 | FTP | telnet 目标 21 | | 25 | SMTP | telnet 目标 25 | | 53 | DNS | nslookup | | 3306 | MySQL | telnet 目标 3306 | | 3389 | RDP | mstsc /v:目标 |


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:运维星火燎原 刘军军 刘军军《Windows 网络诊断命令详解》

网络评估框架补充信息 网络安全文章

网络评估框架补充信息

文章总结: 本文档介绍了英国网络评估框架CAF的背景与应用。CAF旨在支持网络与信息系统条例实施,提升关键国家基础设施网络韧性。NCSC作为技术权威协助监管但无
评论:0   参与:  0