Windows——网络相关命令

网络相关命令

1、ipconfig(网络适配器)

ipconfig是 Internet Protocol Configuration​ 的缩写,用于显示和管理所有网络适配器的TCP/IP网络配置。它是网络故障排除的首选工具。

基本语法:

shell 复制代码
ipconfig [/all] [/renew [adapter]] [/release [adapter]] [/flushdns] [/displaydns] [/registerdns] [/showclassid adapter] [/setclassid adapter [classid]]

命令位置:

ipconfig.exe文件位于 C:\Windows\System32目录下

核心参数详解:

信息显示参数:

参数 功能描述 示例
无参数​ 显示基本网络配置信息 ipconfig
/all​ 显示详细网络配置信息 ipconfig /all
/displaydns​ 显示DNS解析器缓存内容 ipconfig /displaydns

配置管理参数:

参数 功能描述 示例
/release​ 释放DHCP分配的IP地址 ipconfig /release
/renew​ 续订DHCP分配的IP地址 ipconfig /renew
/flushdns​ 清除DNS客户端缓存 ipconfig /flushdns
/registerdns​ 刷新所有DHCP租约并重新注册DNS ipconfig /registerdns

高级参数(较少使用):

参数 功能描述
/showclassid​ 显示适配器的DHCP类别ID
/setclassid​ 修改适配器的DHCP类别ID

使用场景与实例:

  1. 快速查看网络配置(最常用)
shell 复制代码
ipconfig
# 典型输出
Windows IP 配置

以太网适配器 以太网:

   连接特定的 DNS 后缀 . . . . . . . : 
   本地链接 IPv6 地址. . . . . . . . : fe80::1234:5678:90ab:cdef%12
   IPv4 地址 . . . . . . . . . . . . : 192.168.1.100
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . : 192.168.1.1

无线局域网适配器 WLAN:

   连接特定的 DNS 后缀 . . . . . . . : 
   IPv4 地址 . . . . . . . . . . . . : 192.168.50.101
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . : 192.168.50.1
  1. 查看详细网络信息
shell 复制代码
ipconfig /all

# 输出包含:
主机名、DNS后缀
节点类型、IP路由是否启用
WINS代理是否启用
DNS服务器、DHCP服务器
MAC地址(物理地址)
DHCP租约时间
  1. 解决网络连接问题(经典三步曲)
shell 复制代码
# 1. 释放当前IP
ipconfig /release

# 2. 清除DNS缓存
ipconfig /flushdns

# 3. 获取新IP
ipconfig /renew
  1. DNS问题排查
shell 复制代码
# 查看DNS缓存
ipconfig /displaydns

# 清除DNS缓存
ipconfig /flushdns
  1. 针对特定网络适配器操作
shell 复制代码
# 只更新无线网卡
ipconfig /renew "WLAN"

# 只释放有线网卡
ipconfig /release "以太网"

输出信息详解:

信息项 含义 正常值示例
IPv4 地址​ 本机IP地址 192.168.1.100
子网掩码​ 网络分段 255.255.255.0
默认网关​ 出口路由器 192.168.1.1
DNS 服务器​ 域名解析服务器 8.8.8.8
DHCP 已启用​ 是否自动获取IP
DHCP 服务器​ 分配IP的服务器 192.168.1.1
物理地址​ 网卡MAC地址 00-1A-2B-3C-4D-5E

2、nbtstat(NetBIOS配置)

nbtstat是 NetBIOS over TCP/IP Statistics​ 的缩写,用于显示基于TCP/IP的NetBIOS配置信息。主要用于诊断NetBIOS名称解析和NetBIOS over TCP/IP (NetBT) 相关的问题。

基本语法:

shell 复制代码
nbtstat [-a RemoteName] [-A IP address] [-c] [-n] [-r] [-R] [-s] [-S] [interval]

命令位置:

nbtstat.exe文件位于 C:\Windows\System32目录下。

主要功能:

  • 显示本地NetBIOS名称表:查看本机注册的NetBIOS名称
  • 显示远程计算机名称表:查看指定计算机的NetBIOS名称
  • 显示NetBIOS名称缓存:查看缓存的NetBIOS名称解析结果
  • 显示名称解析统计:显示通过广播和WINS解析的统计信息
  • 重新加载LMHOSTS文件:重新加载LMHOSTS缓存
  • 显示会话表:查看NetBIOS会话信息

核心参数详解:

基本信息查询参数:

参数 功能描述 示例
-n​ 显示本地NetBIOS名称 nbtstat -n
-c​ 显示NetBIOS名称缓存​ nbtstat -c
-r​ 显示名称解析统计信息​ nbtstat -r

远程计算机查询参数:

参数 功能描述 示例
-a <远程名称>​ 通过计算机名获取远程计算机信息 nbtstat -a PC01
-A <IP地址>​ 通过IP地址获取远程计算机信息 nbtstat -A 192.168.1.100

缓存管理参数:

参数 功能描述 示例
-R​ 清除并重新加载NetBIOS名称缓存 nbtstat -R
-RR​ 释放并刷新NetBIOS名称 nbtstat -RR

会话信息参数:

参数 功能描述 示例
-s​ 显示会话表(已解析为IP地址) nbtstat -s
-S​ 显示会话表(仅显示IP地址) nbtstat -S

NetBIOS命令类型详解: nbtstat输出中的第16个字符表示NetBIOS名称类型:

常见NetBIOS后缀类型:

后缀 类型描述 含义
<00>​ UNIQUE 工作站服务
<20>​ UNIQUE 文件服务器服务
<03>​ UNIQUE 信使服务
<00>​ GROUP 域名
<1B>​ UNIQUE 域主浏览器
<1C>​ GROUP 域控制器组
<1D>​ UNIQUE 主浏览器
<1E>​ GROUP 浏览器服务选举

名称状态:

  • UNIQUE:唯一名称
  • GROUP:组名称
  • STATUS:状态(已注册、冲突等)

使用场景与实例:

  1. 查看本地NetBIOS名称
shell 复制代码
#查看本机注册的所有NetBIOS名称。
nbtstat -n

# 典型服务
本地连接:
节点 IP 地址: [192.168.1.100] 范围 ID: []

           NetBIOS 本地名称表

       名称               类型         状态
    ---------------------------------------------
    PC01           <00>  UNIQUE      已注册
    WORKGROUP       <00>  GROUP       已注册
    PC01           <20>  UNIQUE      已注册
    WORKGROUP       <1E>  GROUP       已注册
  1. 查看远程计算机信息(通过计算机名)
shell 复制代码
nbtstat -a SERVER01
  1. 查看远程计算机信息(通过IP地址)
shell 复制代码
nbtstat -A 192.168.1.50
  1. 查看NetBIOS名称缓存
shell 复制代码
#显示当前缓存的NetBIOS名称解析结果
nbtstat -c

# 输出示例
本地连接:
节点 IP 地址: [192.168.1.100] 范围 ID: []

           NetBIOS 远程缓存名称表

    名称                类型        主机地址      生命周期 [秒]
    ----------------------------------------------------------
    SERVER01       <20>  UNIQUE    192.168.1.50    240
    PC02           <00>  UNIQUE    192.168.1.101    120
  1. 清除和重新加载NetBIOS缓存
shell 复制代码
nbtstat -R
  1. 查看名称解析统计
shell 复制代码
# nbtstat -r

# 输出示例
NetBIOS 名称解析和注册统计

通过广播解析的名称  = 15
通过名称服务器解析的名称 = 3

通过广播注册的名称  = 2
通过名称服务器注册的名称 = 1

实际应用示例:

  1. 局域网计算机发现脚本
shell 复制代码
@echo off
echo 局域网计算机发现工具
echo ===================

set subnet=192.168.1
echo 扫描子网: %subnet%.0/24
echo.

for /l %%i in (1,1,254) do (
    nbtstat -A %subnet%.%%i >nul 2>&1
    if !errorlevel!==0 (
        echo 发现主机: %subnet%.%%i
        nbtstat -A %subnet%.%%i | findstr /C:"<00>" | findstr /V "WORKGROUP"
    )
)

3、netstat(网络)

netstat是 Network Statistics​ 的缩写,用于显示活动的网络连接、监听端口、路由表、接口统计等信息。它是网络故障排除和系统安全监控的必备工具。

基本语法:

shell 复制代码
netstat [-a] [-b] [-e] [-f] [-n] [-o] [-p protocol] [-r] [-s] [-t] [interval]

命令位置:netstat.exe文件位于 C:\Windows\System32目录下。

核心参数详解:

基本显示参数:

参数 功能描述 示例
无参数​ 显示已建立的连接 netstat
-a​ 显示所有连接和监听端口 netstat -a
-n​ 以数字形式显示地址和端口 netstat -an
-o​ 显示进程ID (PID)​ netstat -ano

高级信息参数:

参数 功能描述 示例
-b​ 显示可执行程序名​ netstat -b
-e ​显示以太网统计信息​ netstat -e
-f ​显示完全限定域名 (FQDN)​ netstat -f
-r ​显示路由表​ netstat -r
-s ​显示协议统计​ netstat -s

协议过滤参数:

参数 功能描述 示例
-p tcp​ 仅显示TCP连接 netstat -p tcp
-p udp​ 仅显示UDP连接 netstat -p udp
-p icmp​ 仅显示ICMP统计 netstat -p icmp

实时监控参数:

参数 功能描述 示例
[interval]​ 指定刷新间隔(秒) netstat -ano 5

输出信息详解:

连接状态说明:

状态 描述
LISTENING​ 端口正在监听连接请求
ESTABLISHED​ 连接已建立,数据可传输
TIME_WAIT​ 连接正在关闭
CLOSE_WAIT​ 远程端已关闭,本地等待关闭
SYN_SENT​ 正在尝试建立连接
SYN_RECEIVED​ 收到连接请求

协议类型:

  • TCP:传输控制协议(可靠连接)
  • UDP:用户数据报协议(无连接)
  • ICMP:Internet控制消息协议

使用场景与实例:

  1. 查看所有网络连接(最常用)
shell 复制代码
netstat -ano
# 典型输出
活动连接

  协议  本地地址          外部地址        状态           PID
  TCP    0.0.0.0:80        0.0.0.0:0       LISTENING     4
  TCP    0.0.0.0:135       0.0.0.0:0       LISTENING     928
  TCP    0.0.0.0:443       0.0.0.0:0       LISTENING     7544
  TCP    192.168.1.100:139  0.0.0.0:0       LISTENING     4
  TCP    192.168.1.100:5040 52.178.1.100:443 ESTABLISHED  1234
  TCP    192.168.1.100:5150 140.82.121.3:443 ESTABLISHED   5678
  UDP    0.0.0.0:5353       *:*                          1234
  UDP    0.0.0.0:5355       *:*                          4567
  1. 检查端口占用情况
shell 复制代码
# 查找哪个进程占用了80端口:
netstat -ano | findstr ":80"
  1. 查看监听端口
shell 复制代码
# 显示所有正在监听的端口:
netstat -an | findstr "LISTENING"
  1. 实时监控网络连接
shell 复制代码
# 每5秒刷新一次连接信息:
netstat -ano 5
  1. 查看路由表
shell 复制代码
# 显示系统路由表:
netstat -r
  1. 查看网络接口统计
shell 复制代码
# 显示网络流量统计:
netstat -e

# 输出示例
接口统计

                           接收的            发送的
字节                     125678345         45678234
单播数据包                 1234567           567890
非单播数据包                12345             6789
丢弃                          0                 0
错误                          0                 0
未知协议                      0

高级用法与实用技巧:

  1. 端口占用排查脚本
shell 复制代码
@echo off
echo 端口占用检查工具
echo ===============

set /p port=请输入要检查的端口号: 

echo 检查端口 %port% 的占用情况...
netstat -ano | findstr ":%port%"

if %errorlevel%==0 (
    echo.
    echo 端口 %port% 已被占用
    for /f "tokens=5" %%p in ('netstat -ano ^| findstr ":%port%" ^| findstr "LISTENING"') do (
        echo 占用进程PID: %%p
        tasklist /fi "PID eq %%p" /fo table
    )
) else (
    echo 端口 %port% 未被占用
)
  1. 网络连接监控仪表板
shell 复制代码
@echo off
title 网络连接监控

:monitor
cls
echo 网络连接监控 - 更新时间: %time%
echo ================================

echo [TCP连接统计]
netstat -an | find /c "TCP" >nul && (
    echo TCP连接数: 
    netstat -an | find /c "TCP"
)

echo [UDP连接统计]
netstat -an | find /c "UDP" >nul && (
    echo UDP连接数: 
    netstat -an | find /c "UDP"
)

echo [ESTABLISHED连接]
netstat -an | find /c "ESTABLISHED" >nul && (
    echo 已建立连接: 
    netstat -an | find /c "ESTABLISHED"
)

echo.
echo 5秒后刷新... (按Ctrl+C退出)
timeout /t 5 >nul
goto monitor
  1. 安全审计脚本
shell 复制代码
@echo off
echo 网络连接安全审计
echo ==============

set auditfile=network_audit_%date:~-4,4%%date:~-10,2%%date:~-7,2%.log

echo 网络审计报告 > "%auditfile%"
echo 生成时间: %date% %time% >> "%auditfile%"
echo ====================== >> "%auditfile%"

echo [1. 所有网络连接] >> "%auditfile%"
netstat -ano >> "%auditfile%"

echo. >> "%auditfile%"
echo [2. 监听端口] >> "%auditfile%"
netstat -an | findstr "LISTENING" >> "%auditfile%"

echo. >> "%auditfile%"
echo [3. 外部连接] >> "%auditfile%"
netstat -an | findstr "ESTABLISHED" >> "%auditfile%"

echo 审计完成。结果保存到: %auditfile%

企业级应用示例:

  1. 服务器服务状态检查
shell 复制代码
@echo off
echo 服务器服务端口状态报告
echo ===================

set services=80:HTTP 443:HTTPS 21:FTP 22:SSH 25:SMTP 53:DNS 110:POP3 143:IMAP 993:IMAPS 995:POP3S 1433:MSSQL 3306:MySQL 3389:RDP 5432:PostgreSQL

for %%s in (%services%) do (
    for /f "tokens=1,2 delims=:" %%a in ("%%s") do (
        set port=%%a
        set service=%%b
    )
    
    netstat -ano | findstr ":%%port%% " >nul
    if !errorlevel!==0 (
        echo !service! (端口!port!): 运行中
    ) else (
        echo !service! (端口!port!): 停止
    )
)
  1. 网络流量监控
shell 复制代码
@echo off
setlocal enabledelayedexpansion

echo 网络流量监控
echo ==========

:start
for /f "tokens=2 delims=:" %%a in ('netstat -e ^| find "字节"') do (
    set bytes=%%a
    set bytes=!bytes: =!
)

echo 当前时间: %time%
echo 总流量字节: !bytes!

timeout /t 5 >nul
goto start
  1. 自动化网络审计报告
shell 复制代码
@echo off
set report=network_report_%date:~-4,4%%date:~-10,2%%date:~-7,2%_%time:~0,2%%time:~3,2%.txt

echo 网络审计报告 > "%report%"
echo 生成时间: %date% %time% >> "%report%"
echo ====================== >> "%report%"

echo [系统基本信息] >> "%report%"
hostname >> "%report%"
ipconfig | findstr "IPv4" >> "%report%"

echo. >> "%report%"
echo [网络连接摘要] >> "%report%"
netstat -an | find /c "TCP" >nul && echo TCP连接数: >> "%report%" && netstat -an | find /c "TCP" >> "%report%"
netstat -an | find /c "UDP" >nul && echo UDP连接数: >> "%report%" && netstat -an | find /c "UDP" >> "%report%"
netstat -an | find /c "ESTABLISHED" >nul && echo 已建立连接: >> "%report%" && netstat -an | find /c "ESTABLISHED" >> "%report%"

echo. >> "%report%"
echo [监听端口详情] >> "%report%"
netstat -an | findstr "LISTENING" >> "%report%"

echo. >> "%report%"
echo [路由表信息] >> "%report%"
netstat -r >> "%report%"

echo 报告生成完成: %report%

4、route(路由表)

route命令用于显示和修改本地IP路由表。通过操作路由表,可以控制数据包在网络中的传输路径,实现复杂的网络通信需求。

基本语法:

shell 复制代码
route [-f] [-p] [command [destination] [mask netmask] [gateway] [metric costmetric]]

命令位置:

route.exe文件位于 C:\Windows\System32目录下。

主要功能:

功能 描述
显示路由表​ 查看当前系统的所有路由条目
添加路由​ 添加新的静态路由条目
删除路由​ 删除指定的路由条目
修改路由​ 更改现有路由的配置
持久化路由​ 创建重启后仍然有效的路由

核心参数详解:

基本命令参数:

命令 功能描述 示例
print​ 显示路由表 route print
add​ 添加路由条目 route add 192.168.2.0 mask 255.255.255.0 192.168.1.1
delete​ 删除路由条目 route delete 192.168.2.0
change​ 修改现有路由 route change 192.168.2.0 mask 255.255.255.0 192.168.1.2

修饰参数:

参数 功能描述 示例
-f​ 清除所有网关路由 route -f
-p​ 持久化路由(重启有效) route -p add ...
mask​ 指定子网掩码 mask 255.255.255.0
metric​ 设置路由跃点数(成本) metric 1

路由表结构详解:

路由表字段说明:

shell 复制代码
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
        127.0.0.1  255.255.255.255            在链路上         127.0.0.1    331
      192.168.1.0    255.255.255.0            在链路上     192.168.1.100    281
    192.168.1.100  255.255.255.255            在链路上     192.168.1.100    281
    192.168.1.255  255.255.255.255            在链路上     192.168.1.100    281
        224.0.0.0        240.0.0.0            在链路上         127.0.0.1    331
        224.0.0.0        240.0.0.0            在链路上     192.168.1.100    281
  255.255.255.255  255.255.255.255            在链路上         127.0.0.1    331
  255.255.255.255  255.255.255.255            在链路上     192.168.1.100    281

关键字段解释:

字段 描述 示例说明
网络目标 目标网络地址 192.168.2.0
网络掩码​ 目标网络的子网掩码 255.255.255.0
网关​ 数据包转发的下一跳地址 192.168.1.1
接口​ 发送数据包的网络接口IP 192.168.1.100
跃点数​ 路由成本(值越小优先级越高) 25

使用场景与实例:

  1. 查看当前路由表(最常用)
shell 复制代码
route print
  1. 添加静态路由
shell 复制代码
# 添加通往192.168.2.0网络的路由,通过192.168.1.1网关:
route add 192.168.2.0 mask 255.255.255.0 192.168.1.1
  1. 添加持久化路由
shell 复制代码
#创建重启后仍然有效的路由:
route -p add 192.168.2.0 mask 255.255.255.0 192.168.1.1
  1. 删除特定路由
shell 复制代码
route delete 192.168.2.0
  1. 清除所有路由
shell 复制代码
# 警告:此操作会断开所有网络连接!
route -f
  1. 修改现有路由
shell 复制代码
# 更改网关地址:
route change 192.168.2.0 mask 255.255.255.0 192.168.1.2
  1. 设置特定跃点数
shell 复制代码
route add 192.168.2.0 mask 255.255.255.0 192.168.1.1 metric 10

5、net(网络和系统管理工具集)

net命令是Windows中功能最丰富的网络和系统管理工具集,包含大量子命令用于管理用户、服务、共享、配置等系统资源。

基本语法:

shell 复制代码
net [子命令] [选项]

命令类型:

net.exe是命令行工具,位于 C:\Windows\System32目录下。

5.1、用户和组管理

5.1.1、net user(用户账号管理)

常用语法:

shell 复制代码
net user [用户名 [密码 | *] [选项]] [/domain]
net user 用户名 /add [选项]
net user 用户名 /delete

实用示例:

shell 复制代码
# 查看所有用户
net user

# 创建新用户
net user john P@ssw0rd123 /add /comment:"测试用户"

# 创建受限用户(无法更改密码)
net user guestuser /add /passwordchg:no

# 设置用户全名
net user john /fullname:"John Smith"

# 设置密码永不过期
net user john /passwordchg:no

# 删除用户
net user john /delete

# 查看特定用户信息
net user administrator
5.1.2、new localgroup(本地组管理)

实用示例:

shell 复制代码
# 查看所有本地组
net localgroup

# 查看管理员组成员
net localgroup administrators

# 添加用户到管理员组
net localgroup administrators john /add

# 从组中移除用户
net localgroup administrators john /delete

# 创建新组
net localgroup "财务部" /add
5.1.3、net group (域组管理)

功能: 管理域用户组(需要域环境)

5.2、共享资源管理

5.2.1、net share(共享资源管理)

实例应用:

shell 复制代码
# 查看所有共享
net share

# 创建文件共享
net share DataShare=C:\Data /remark:"公司数据共享"

# 创建带权限的共享
net share Temp=C:\Temp /grant:everyone,full

# 删除共享
net share DataShare /delete

# 查看特定共享
net share IPC$
5.1.2、net use(网络驱动器映射)

实用示例:

shell 复制代码
# 查看当前网络连接
net use

# 映射网络驱动器
net use Z: \\server\share

# 使用凭据映射
net use Z: \\server\share P@ssw0rd /user:domain\username

# 映射持久连接(重启后保持)
net use Z: \\server\share /persistent:yes

# 断开映射
net use Z: /delete

# 断开所有映射
net use * /delete

# 连接IPC$管理共享
net use \\192.168.1.100\IPC$ P@ssw0rd /user:administrator

5.3、服务管理

5.3.1、net start(启动服务)

应用示例:

shell 复制代码
# 查看运行中的服务
net start

# 启动特定服务
net start "Windows Update"
net start spooler
net start wuauserv

# 启动远程服务(需要权限)
net start \\server "service name"

5.3.2、net stop(停止服务)

使用示例:

shell 复制代码
# 停止服务
net stop "Windows Update"
net stop spooler

# 强制停止(如服务有依赖)
net stop wuauserv /y

5.3.3、net pause / continue(暂停/继续服务)

5.4、网络配置管理

5.4.1、net config(服务配置)

实用示例:

shell 复制代码
# 查看服务器配置
net config server

# 查看工作站配置
net config workstation

# 修改服务器配置(隐藏最后用户名)
net config server /hidden:yes

# 修改自动断开时间
net config server /autodisconnect:30
5.4.2、net statistics(统计信息)

实用示例:

shell 复制代码
# 查看服务器统计
net statistics server

# 查看工作站统计
net statistics workstation

5.5、会话和共享管理

5.5.1、net session(会话管理)

实用示例:

shell 复制代码
# 查看所有会话
net session

# 查看特定计算机会话
net session \\192.168.1.100

# 断开特定会话
net session \\192.168.1.100 /delete

# 断开所有会话
net session /delete
5.5.2、net file(打开文件管理)

功能:显示服务器上打开的文件(需要服务器服务)

5.6、域和账户策略

5.6.1、net accounts(账户策略)

实用示例:

shell 复制代码
# 查看当前账户策略
net accounts

# 设置密码策略
net accounts /minpwlen:8
net accounts /maxpwage:90
net accounts /minpwage:1
net accounts /uniquepw:5

# 强制登录时间限制
net accounts /forcelogoff:60
5.6.2、net view(网络资源查看)

实用示例:

shell 复制代码
# 查看工作组计算机
net view

# 查看域中计算机
net view /domain:company

# 查看特定计算机共享
net view \\192.168.1.100

# 查看所有域
net view /domain

5.7、其他重要子命令

命令 功能 示例
net time​ 时间同步 net time \\192.168.1.1 /set
net print​ 打印作业管理 net print \\server\printer
net name​ 消息名称管理 net name john /add
net send​ 发送消息(已淘汰) net send * "系统维护通知"

6、ping

ing是 Packet Internet Groper​ 的缩写,用于测试网络连通性。它通过向目标主机发送ICMP(Internet Control Message Protocol)回显请求数据包,并等待回复来检测网络连接状态。

基本语法:

shell 复制代码
ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS] [-r count] [-s count] [-w timeout] [-R] [-S srcaddr] [-p] [-4] [-6] target_name

命令位置:

ping.exe文件位于 C:\Windows\System32目录下。

主要功能:

功能 描述
连通性测试​ 检查本地与目标主机是否可达
网络延迟测量​ 测量数据包往返时间(RTT)
丢包率统计​ 检测网络传输质量
DNS解析测试​ 验证域名解析是否正常
路径质量评估​ 评估网络链路稳定性

工作原理:

  1. 向目标发送ICMP Echo Request数据包
  2. 目标主机收到后回复ICMP Echo Reply
  3. 计算发送和接收的时间差(往返延迟)
  4. 统计成功回复的比例(丢包率)

核心参数详解:

基本测试参数:

参数 功能描述 示例
无参数​ 默认发送4个数据包 ping 192.168.1.1
-t ​持续ping,直到手动停止 ping -t 8.8.8.8
-n count​ 指定发送数据包数量​ ping -n 10 google.com
-l size​ 设置数据包大小(字节) ping -l 1000 192.168.1.1
-w timeout​ 设置超时时间(毫秒) ping -w 5000 8.8.8.8

高级诊断参数:

参数 功能描述 示例
-a​ 将地址解析为主机名​ ping -a 192.168.1.1
-i TTL​ 设置生存时间(跳数) ping -i 64 8.8.8.8
-f ​设置不分段标志 ping -f 8.8.8.8
-r count​ 记录路由(1-9跳) ping -r 4 8.8.8.8
-S srcaddr​ 指定源地址​ ping -S 192.168.1.100 8.8.8.8
-4​ 强制使用IPv4​ ping -4 google.com
-6​ 强制使用IPv6​ ping -6 ipv6.google.com

使用场景与实例:

  1. 基本连通性测试(最常用)
shell 复制代码
ping 192.168.1.1
  1. 持续监控网络状态
shell 复制代码
ping -t 8.8.8.8
  1. 自定义测试包数量和大小
shell 复制代码
ping -n 20 -l 1500 google.com
  1. 带超时设置的测试
shell 复制代码
ping -w 3000 -n 5 192.168.1.1
  1. 解析主机名
shell 复制代码
ping -a 192.168.1.1

输出信息详解:

  1. 成功响应示例
shell 复制代码
C:\>ping 8.8.8.8

正在 Ping 8.8.8.8 具有 32 字节的数据:
来自 8.8.8.8 的回复: 字节=32 时间=25ms TTL=57
来自 8.8.8.8 的回复: 字节=32 时间=23ms TTL=57
来自 8.8.8.8 的回复: 字节=32 时间=24ms TTL=57
来自 8.8.8.8 的回复: 字节=32 时间=26ms TTL=57

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

输出字段解释:

字段 描述 意义
字节​ 数据包大小 默认32字节
时间​ 往返延迟 网络延迟,越小越好
TTL​ 生存时间 数据包经过的路由器跳数
已发送/已接收​ 成功率 发送和接收的数据包数量
丢失​ 丢包率 数据包丢失百分比
最短/最长/平均​ 延迟统计 网络延迟波动情况

常见响应类型:

响应消息 含义 问题诊断
来自...的回复​ 连接正常 网络通畅
请求超时​ 目标无响应 目标关机/防火墙阻挡
目标主机无法访问​ 路由问题 网络配置错误
传输失败​ 本地问题 网卡故障/驱动问题
Ping 请求找不到主机​ DNS解析失败 域名错误/DNS故障

实际应用示例:

  1. 基础网络诊断脚本
shell 复制代码
@echo off
echo 基础网络连通性测试
echo =================

set targets=127.0.0.1 192.168.1.1 8.8.8.8 google.com

for %%t in (%targets%) do (
    echo.
    echo 测试目标: %%t
    ping -n 2 %%t >nul
    if errorlevel 1 (
        echo ✗ 连接失败
    ) else (
        echo ✓ 连接正常
    )
)
  1. 网络质量监控
shell 复制代码
@echo off
echo 网络质量持续监控
echo ===============

:monitor
cls
echo 网络监控 - 更新时间: %time%
echo =========================

ping -n 1 8.8.8.8 >nul
if errorlevel 1 (
    echo 状态: 🔴 离线
) else (
    echo 状态: 🟢 在线
    for /f "tokens=5 delims==ms" %%a in ('ping -n 4 8.8.8.8 ^| find "平均"') do (
        echo 平均延迟: %%a ms
    )
)

echo.
echo 10秒后刷新... (Ctrl+C退出)
timeout /t 10 >nul
goto monitor
  1. 自动化网络诊断
shell 复制代码
@echo off
echo 全面网络诊断报告
echo ===============

set logfile=network_diagnostic_%date:~-4,4%%date:~-10,2%%date:~-7,2%.log

echo 网络诊断报告 > "%logfile%"
echo 生成时间: %date% %time% >> "%logfile%"
echo ====================== >> "%logfile%"

echo [1. 本地环回测试] >> "%logfile%"
ping -n 2 127.0.0.1 >> "%logfile%"

echo. >> "%logfile%"
echo [2. 网关连通性测试] >> "%logfile%"
ping -n 2 192.168.1.1 >> "%logfile%"

echo. >> "%logfile%"
echo [3. DNS服务器测试] >> "%logfile%"
ping -n 2 8.8.8.8 >> "%logfile%"

echo. >> "%logfile%"
echo [4. 外网连通性测试] >> "%logfile%"
ping -n 2 google.com >> "%logfile%"

echo 诊断完成。结果保存到: %logfile%

高级用法与实用技巧:

  1. 网络延迟统计
shell 复制代码
@echo off
echo 网络延迟质量分析
echo ===============

set target=8.8.8.8
set total=0
set count=10

echo 进行%count%次ping测试...
for /l %%i in (1,1,%count%) do (
    for /f "tokens=5 delims==ms" %%a in ('ping -n 1 %target% ^| find "时间"') do (
        set /a total=!total!+%%a
        echo 测试%%i: %%a ms
    )
)

set /a average=total/count
echo.
echo 平均延迟: %average% ms (基于%count%次测试)
  1. 批量服务器监控
shell 复制代码
@echo off
echo 服务器状态监控
echo ===========

set servers=192.168.1.10:Web服务器 192.168.1.20:数据库 192.168.1.30:文件服务器 8.8.8.8:DNS服务器

for %%s in (%servers%) do (
    for /f "tokens=1,2 delims=:" %%i in ("%%s") do (
        echo 检查 %%j [%%i]...
        ping -n 2 %%i >nul
        if errorlevel 1 (
            echo ✗ 离线
        ) else (
            echo ✓ 在线
        )
    )
)
  1. 智能故障诊断
shell 复制代码
@echo off
echo 智能网络故障诊断
echo ===============

echo [第1步: 检查本地网络栈]
ping 127.0.0.1 >nul
if errorlevel 1 (
    echo ✗ TCP/IP协议栈故障
    exit /b 1
)
echo ✓ 本地网络栈正常

echo.
echo [第2步: 检查网关连接]
ping 192.168.1.1 >nul
if errorlevel 1 (
    echo ✗ 网关不可达
    echo 可能原因: 网线问题、IP冲突、网关故障
    exit /b 1
)
echo ✓ 网关连接正常

echo.
echo [第3步: 检查DNS解析]
ping google.com >nul
if errorlevel 1 (
    echo ✗ DNS解析失败
    echo 尝试直接IP连接...
    ping -n 2 8.8.8.8 >nul
    if errorlevel 1 (
        echo ✗ 外网连接失败
    ) else (
        echo ✓ 外网连通,DNS服务器故障
    )
) else (
    echo ✓ 网络连接完全正常
)

企业级应用示例:

  1. 机房设备状态监控
shell 复制代码
@echo off
set devices=192.168.1.1:核心交换机 192.168.1.2:路由器 192.168.1.10:服务器1 192.168.1.11:服务器2 192.168.1.100:网络打印机

echo 网络设备状态监控
echo ===============
echo 检查时间: %date% %time%
echo.

for %%d in (%devices%) do (
    for /f "tokens=1,2 delims=:" %%i in ("%%d") do (
        set status=离线
        ping -n 1 -w 1000 %%i >nul && set status=在线
        echo %%j [%%i]: !status!
    )
)
  1. 网络质量报表生成
shell 复制代码
@echo off
set report=network_report_%date:~-4,4%%date:~-10,2%%date:~-7,2%.csv
echo 时间,目标,丢包率,最小延迟,最大延迟,平均延迟 > "%report%"

:monitor
for /f "tokens=1-8 delims==ms " %%a in ('ping -n 10 8.8.8.8 ^| findstr "数据包 最短 平均"') do (
    if "%%a"=="数据包" (
        set loss=%%d
    )
    if "%%a"=="最短" (
        set min=%%b
        set max=%%d
        set avg=%%f
    )
)

echo %time%,8.8.8.8,%loss%,%min%,%max%,%avg% >> "%report%"
timeout /t 60 >nul
goto monitor
  1. 多地点网络质量对比
shell 复制代码
@echo off
echo 多地点网络质量测试
echo ================

set targets=8.8.8.8:GoogleDNS 1.1.1.1:Cloudflare 208.67.222.222:OpenDNS 114.114.114.114:国内DNS

for %%t in (%targets%) do (
    for /f "tokens=1,2 delims=:" %%i in ("%%t") do (
        echo 测试 %%j [%%i]...
        ping -n 4 %%i | findstr "平均"
    )
    echo.
)
相关推荐
遇到困难睡大觉哈哈40 分钟前
Harmony os 网络防火墙实战:用 @ohos.net.netFirewall 给应用加一道“网闸”
网络·.net·harmonyos·鸿蒙
qq_376766241 小时前
机房U位资产管理系统的数据分析能力:如何让数据中心运维效率升级?
网络·人工智能
q***73551 小时前
Node.JS 版本管理工具 Fnm 安装及配置(Windows)
windows·node.js
老虎06271 小时前
Java基础面试题(11)—Java(泛型)
java·开发语言·windows
Freshman小白1 小时前
《英文科技论文写作与学术报告》网课答案(雨课堂、学堂在线...)
网络·学习·答案
xmode1 小时前
常用自定义函数laravel版+thinkphp版
后端·php·laravel·thinkphp
m0_738120721 小时前
渗透测试——Kioptrix5靶机渗透测试详细教程
网络·python·安全·web安全·ssh
勇气要爆发1 小时前
问:HTTP和HTTPS的区别及安全性
网络
k***92161 小时前
MySQL 实验1:Windows 环境下 MySQL5.5 安装与配置
windows·mysql·adb