網絡相關命令

  • 1、ipconfig(網絡適配器)
  • 2、nbtstat(NetBIOS配置)
  • 3、netstat(網絡)
  • 4、route(路由表)
  • 5、net(網絡和系統管理工具集)
  • 5.1、用户和組管理
  • 5.1.1、net user(用户賬號管理)
  • 5.1.2、new localgroup(本地組管理)
  • 5.1.3、net group (域組管理)
  • 5.2、共享資源管理
  • 5.2.1、net share(共享資源管理)
  • 5.1.2、net use(網絡驅動器映射)
  • 5.3、服務管理
  • 5.3.1、net start(啓動服務)
  • 5.3.2、net stop(停止服務)
  • 5.3.3、net pause / continue(暫停/繼續服務)
  • 5.4、網絡配置管理
  • 5.4.1、net config(服務配置)
  • 5.4.2、net statistics(統計信息)
  • 5.5、會話和共享管理
  • 5.5.1、net session(會話管理)
  • 5.5.2、net file(打開文件管理)
  • 5.6、域和賬户策略
  • 5.6.1、net accounts(賬户策略)
  • 5.6.2、net view(網絡資源查看)
  • 5.7、其他重要子命令
  • 6、ping

1、ipconfig(網絡適配器)

ipconfig是 Internet Protocol Configuration 的縮寫,用於顯示和管理所有網絡適配器的TCP/IP網絡配置。它是網絡故障排除的首選工具。

基本語法:

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. 快速查看網絡配置(最常用)
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. 查看詳細網絡信息
ipconfig /all

# 輸出包含:
主機名、DNS後綴
節點類型、IP路由是否啓用
WINS代理是否啓用
DNS服務器、DHCP服務器
MAC地址(物理地址)
DHCP租約時間
  1. 解決網絡連接問題(經典三步曲)
# 1. 釋放當前IP
ipconfig /release

# 2. 清除DNS緩存
ipconfig /flushdns

# 3. 獲取新IP
ipconfig /renew
  1. DNS問題排查
# 查看DNS緩存
ipconfig /displaydns

# 清除DNS緩存
ipconfig /flushdns
  1. 針對特定網絡適配器操作
# 只更新無線網卡
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) 相關的問題。

基本語法:

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名稱
#查看本機註冊的所有NetBIOS名稱。
nbtstat -n

# 典型服務
本地連接:
節點 IP 地址: [192.168.1.100] 範圍 ID: []

           NetBIOS 本地名稱表

       名稱               類型         狀態
    ---------------------------------------------
    PC01           <00>  UNIQUE      已註冊
    WORKGROUP       <00>  GROUP       已註冊
    PC01           <20>  UNIQUE      已註冊
    WORKGROUP       <1E>  GROUP       已註冊
  1. 查看遠程計算機信息(通過計算機名)
nbtstat -a SERVER01
  1. 查看遠程計算機信息(通過IP地址)
nbtstat -A 192.168.1.50
  1. 查看NetBIOS名稱緩存
#顯示當前緩存的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緩存
nbtstat -R
  1. 查看名稱解析統計
# nbtstat -r

# 輸出示例
NetBIOS 名稱解析和註冊統計

通過廣播解析的名稱  = 15
通過名稱服務器解析的名稱 = 3

通過廣播註冊的名稱  = 2
通過名稱服務器註冊的名稱 = 1

實際應用示例:

  1. 局域網計算機發現腳本
@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 的縮寫,用於顯示活動的網絡連接、監聽端口、路由表、接口統計等信息。它是網絡故障排除和系統安全監控的必備工具。

基本語法:

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. 查看所有網絡連接(最常用)
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. 檢查端口占用情況
# 查找哪個進程佔用了80端口:
netstat -ano | findstr ":80"
  1. 查看監聽端口
# 顯示所有正在監聽的端口:
netstat -an | findstr "LISTENING"
  1. 實時監控網絡連接
# 每5秒刷新一次連接信息:
netstat -ano 5
  1. 查看路由表
# 顯示系統路由表:
netstat -r
  1. 查看網絡接口統計
# 顯示網絡流量統計:
netstat -e

# 輸出示例
接口統計

                           接收的            發送的
字節                     125678345         45678234
單播數據包                 1234567           567890
非單播數據包                12345             6789
丟棄                          0                 0
錯誤                          0                 0
未知協議                      0

高級用法與實用技巧:

  1. 端口占用排查腳本
@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. 網絡連接監控儀表板
@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. 安全審計腳本
@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. 服務器服務狀態檢查
@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. 網絡流量監控
@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. 自動化網絡審計報告
@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路由表。通過操作路由表,可以控制數據包在網絡中的傳輸路徑,實現複雜的網絡通信需求。

基本語法:

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

路由表結構詳解:
路由表字段説明:

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. 查看當前路由表(最常用)
route print
  1. 添加靜態路由
# 添加通往192.168.2.0網絡的路由,通過192.168.1.1網關:
route add 192.168.2.0 mask 255.255.255.0 192.168.1.1
  1. 添加持久化路由
#創建重啓後仍然有效的路由:
route -p add 192.168.2.0 mask 255.255.255.0 192.168.1.1
  1. 刪除特定路由
route delete 192.168.2.0
  1. 清除所有路由
# 警告:此操作會斷開所有網絡連接!
route -f
  1. 修改現有路由
# 更改網關地址:
route change 192.168.2.0 mask 255.255.255.0 192.168.1.2
  1. 設置特定躍點數
route add 192.168.2.0 mask 255.255.255.0 192.168.1.1 metric 10

5、net(網絡和系統管理工具集)

net命令是Windows中功能最豐富的網絡和系統管理工具集,包含大量子命令用於管理用户、服務、共享、配置等系統資源。

基本語法:

net [子命令] [選項]

命令類型:
net.exe是命令行工具,位於 C:\Windows\System32目錄下。

5.1、用户和組管理

5.1.1、net user(用户賬號管理)

常用語法:

net user [用户名 [密碼 | *] [選項]] [/domain]
net user 用户名 /add [選項]
net user 用户名 /delete

實用示例:

# 查看所有用户
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(本地組管理)

實用示例:

# 查看所有本地組
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(共享資源管理)

實例應用:

# 查看所有共享
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(網絡驅動器映射)

實用示例:

# 查看當前網絡連接
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(啓動服務)

應用示例:

# 查看運行中的服務
net start

# 啓動特定服務
net start "Windows Update"
net start spooler
net start wuauserv

# 啓動遠程服務(需要權限)
net start \\server "service name"

5.3.2、net stop(停止服務)

使用示例:

# 停止服務
net stop "Windows Update"
net stop spooler

# 強制停止(如服務有依賴)
net stop wuauserv /y

5.3.3、net pause / continue(暫停/繼續服務)

5.4、網絡配置管理

5.4.1、net config(服務配置)

實用示例:

# 查看服務器配置
net config server

# 查看工作站配置
net config workstation

# 修改服務器配置(隱藏最後用户名)
net config server /hidden:yes

# 修改自動斷開時間
net config server /autodisconnect:30
5.4.2、net statistics(統計信息)

實用示例:

# 查看服務器統計
net statistics server

# 查看工作站統計
net statistics workstation

5.5、會話和共享管理

5.5.1、net session(會話管理)

實用示例:

# 查看所有會話
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(賬户策略)

實用示例:

# 查看當前賬户策略
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(網絡資源查看)

實用示例:

# 查看工作組計算機
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)回顯請求數據包,並等待回覆來檢測網絡連接狀態。

基本語法:

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. 基本連通性測試(最常用)
ping 192.168.1.1
  1. 持續監控網絡狀態
ping -t 8.8.8.8
  1. 自定義測試包數量和大小
ping -n 20 -l 1500 google.com
  1. 帶超時設置的測試
ping -w 3000 -n 5 192.168.1.1
  1. 解析主機名
ping -a 192.168.1.1

輸出信息詳解:

  1. 成功響應示例
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. 基礎網絡診斷腳本
@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. 網絡質量監控
@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. 自動化網絡診斷
@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. 網絡延遲統計
@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. 批量服務器監控
@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. 智能故障診斷
@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. 機房設備狀態監控
@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. 網絡質量報表生成
@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. 多地點網絡質量對比
@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.
)