網絡相關命令
- 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目錄下
核心參數詳解:
信息顯示參數:
|
參數
|
功能描述
|
示例
|
|
|
顯示基本網絡配置信息
|
|
|
|
顯示詳細網絡配置信息
|
|
|
|
顯示DNS解析器緩存內容
|
|
配置管理參數:
|
參數
|
功能描述
|
示例
|
|
|
釋放DHCP分配的IP地址
|
|
|
|
續訂DHCP分配的IP地址
|
|
|
|
清除DNS客户端緩存
|
|
|
|
刷新所有DHCP租約並重新註冊DNS
|
|
高級參數(較少使用):
|
參數
|
功能描述
|
|
|
顯示適配器的DHCP類別ID
|
|
|
修改適配器的DHCP類別ID
|
使用場景與實例:
- 快速查看網絡配置(最常用)
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
- 查看詳細網絡信息
ipconfig /all
# 輸出包含:
主機名、DNS後綴
節點類型、IP路由是否啓用
WINS代理是否啓用
DNS服務器、DHCP服務器
MAC地址(物理地址)
DHCP租約時間
- 解決網絡連接問題(經典三步曲)
# 1. 釋放當前IP
ipconfig /release
# 2. 清除DNS緩存
ipconfig /flushdns
# 3. 獲取新IP
ipconfig /renew
- DNS問題排查
# 查看DNS緩存
ipconfig /displaydns
# 清除DNS緩存
ipconfig /flushdns
- 針對特定網絡適配器操作
# 只更新無線網卡
ipconfig /renew "WLAN"
# 只釋放有線網卡
ipconfig /release "以太網"
輸出信息詳解:
|
信息項
|
含義
|
正常值示例
|
|
|
本機IP地址
|
|
|
|
網絡分段
|
|
|
|
出口路由器
|
|
|
|
域名解析服務器
|
|
|
|
是否自動獲取IP
|
|
|
|
分配IP的服務器
|
|
|
|
網卡MAC地址
|
|
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會話信息
核心參數詳解:
基本信息查詢參數:
|
參數
|
功能描述
|
示例
|
|
|
顯示本地NetBIOS名稱
|
|
|
|
顯示NetBIOS名稱緩存
|
|
|
|
顯示名稱解析統計信息
|
|
遠程計算機查詢參數:
|
參數
|
功能描述
|
示例
|
|
|
通過計算機名獲取遠程計算機信息
|
|
|
|
通過IP地址獲取遠程計算機信息
|
|
緩存管理參數:
|
參數
|
功能描述
|
示例
|
|
|
清除並重新加載NetBIOS名稱緩存
|
|
|
|
釋放並刷新NetBIOS名稱
|
|
會話信息參數:
|
參數
|
功能描述
|
示例
|
|
|
顯示會話表(已解析為IP地址)
|
|
|
|
顯示會話表(僅顯示IP地址)
|
|
NetBIOS命令類型詳解: nbtstat輸出中的第16個字符表示NetBIOS名稱類型:
常見NetBIOS後綴類型:
|
後綴
|
類型描述
|
含義
|
|
|
UNIQUE
|
工作站服務
|
|
|
UNIQUE
|
文件服務器服務
|
|
|
UNIQUE
|
信使服務
|
|
|
GROUP
|
域名
|
|
|
UNIQUE
|
域主瀏覽器
|
|
|
GROUP
|
域控制器組
|
|
|
UNIQUE
|
主瀏覽器
|
|
|
GROUP
|
瀏覽器服務選舉
|
名稱狀態:
UNIQUE:唯一名稱GROUP:組名稱STATUS:狀態(已註冊、衝突等)
使用場景與實例:
- 查看本地NetBIOS名稱
#查看本機註冊的所有NetBIOS名稱。
nbtstat -n
# 典型服務
本地連接:
節點 IP 地址: [192.168.1.100] 範圍 ID: []
NetBIOS 本地名稱表
名稱 類型 狀態
---------------------------------------------
PC01 <00> UNIQUE 已註冊
WORKGROUP <00> GROUP 已註冊
PC01 <20> UNIQUE 已註冊
WORKGROUP <1E> GROUP 已註冊
- 查看遠程計算機信息(通過計算機名)
nbtstat -a SERVER01
- 查看遠程計算機信息(通過IP地址)
nbtstat -A 192.168.1.50
- 查看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
- 清除和重新加載NetBIOS緩存
nbtstat -R
- 查看名稱解析統計
# nbtstat -r
# 輸出示例
NetBIOS 名稱解析和註冊統計
通過廣播解析的名稱 = 15
通過名稱服務器解析的名稱 = 3
通過廣播註冊的名稱 = 2
通過名稱服務器註冊的名稱 = 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目錄下。
核心參數詳解:
基本顯示參數:
|
參數
|
功能描述
|
示例
|
|
|
顯示已建立的連接
|
|
|
|
顯示所有連接和監聽端口
|
|
|
|
以數字形式顯示地址和端口
|
|
|
|
顯示進程ID (PID)
|
|
高級信息參數:
|
參數
|
功能描述
|
示例
|
|
|
顯示可執行程序名
|
|
|
|
顯示以太網統計信息
|
|
|
|
顯示完全限定域名 (FQDN)
|
|
|
|
顯示路由表
|
|
|
|
顯示協議統計
|
|
協議過濾參數:
|
參數
|
功能描述
|
示例
|
|
|
僅顯示TCP連接
|
|
|
|
僅顯示UDP連接
|
|
|
|
僅顯示ICMP統計
|
|
實時監控參數:
|
參數
|
功能描述
|
示例
|
|
|
指定刷新間隔(秒)
|
|
輸出信息詳解:
連接狀態説明:
|
狀態
|
描述
|
|
|
端口正在監聽連接請求
|
|
|
連接已建立,數據可傳輸
|
|
|
連接正在關閉
|
|
|
遠程端已關閉,本地等待關閉
|
|
|
正在嘗試建立連接
|
|
|
收到連接請求
|
協議類型:
- TCP:傳輸控制協議(可靠連接)
- UDP:用户數據報協議(無連接)
- ICMP:Internet控制消息協議
使用場景與實例:
- 查看所有網絡連接(最常用)
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
- 檢查端口占用情況
# 查找哪個進程佔用了80端口:
netstat -ano | findstr ":80"
- 查看監聽端口
# 顯示所有正在監聽的端口:
netstat -an | findstr "LISTENING"
- 實時監控網絡連接
# 每5秒刷新一次連接信息:
netstat -ano 5
- 查看路由表
# 顯示系統路由表:
netstat -r
- 查看網絡接口統計
# 顯示網絡流量統計:
netstat -e
# 輸出示例
接口統計
接收的 發送的
字節 125678345 45678234
單播數據包 1234567 567890
非單播數據包 12345 6789
丟棄 0 0
錯誤 0 0
未知協議 0
高級用法與實用技巧:
- 端口占用排查腳本
@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% 未被佔用
)
- 網絡連接監控儀表板
@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
- 安全審計腳本
@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%
企業級應用示例:
- 服務器服務狀態檢查
@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!): 停止
)
)
- 網絡流量監控
@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
- 自動化網絡審計報告
@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目錄下。
主要功能:
|
功能
|
描述
|
|
顯示路由表
|
查看當前系統的所有路由條目
|
|
添加路由
|
添加新的靜態路由條目
|
|
刪除路由
|
刪除指定的路由條目
|
|
修改路由
|
更改現有路由的配置
|
|
持久化路由
|
創建重啓後仍然有效的路由
|
核心參數詳解:
基本命令參數:
|
命令
|
功能描述
|
示例
|
|
|
顯示路由表
|
|
|
|
添加路由條目
|
|
|
|
刪除路由條目
|
|
|
|
修改現有路由
|
|
修飾參數:
|
參數
|
功能描述
|
示例
|
|
|
清除所有網關路由
|
|
|
|
持久化路由(重啓有效)
|
|
|
|
指定子網掩碼
|
|
|
|
設置路由躍點數(成本)
|
|
路由表結構詳解:
路由表字段説明:
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
關鍵字段解釋:
|
字段
|
描述
|
示例説明
|
|
|
目標網絡地址
|
|
|
|
目標網絡的子網掩碼
|
|
|
|
數據包轉發的下一跳地址
|
|
|
|
發送數據包的網絡接口IP
|
|
|
|
路由成本(值越小優先級越高)
|
|
使用場景與實例:
- 查看當前路由表(最常用)
route print
- 添加靜態路由
# 添加通往192.168.2.0網絡的路由,通過192.168.1.1網關:
route add 192.168.2.0 mask 255.255.255.0 192.168.1.1
- 添加持久化路由
#創建重啓後仍然有效的路由:
route -p add 192.168.2.0 mask 255.255.255.0 192.168.1.1
- 刪除特定路由
route delete 192.168.2.0
- 清除所有路由
# 警告:此操作會斷開所有網絡連接!
route -f
- 修改現有路由
# 更改網關地址:
route change 192.168.2.0 mask 255.255.255.0 192.168.1.2
- 設置特定躍點數
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、其他重要子命令
|
命令
|
功能
|
示例
|
|
|
時間同步
|
|
|
|
打印作業管理
|
|
|
|
消息名稱管理
|
|
|
|
發送消息(已淘汰)
|
|
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解析測試
|
驗證域名解析是否正常
|
|
路徑質量評估
|
評估網絡鏈路穩定性
|
工作原理:
- 向目標發送ICMP Echo Request數據包
- 目標主機收到後回覆ICMP Echo Reply
- 計算髮送和接收的時間差(往返延遲)
- 統計成功回覆的比例(丟包率)
核心參數詳解:
基本測試參數:
|
參數
|
功能描述
|
示例
|
|
|
默認發送4個數據包
|
|
|
|
持續ping,直到手動停止
|
|
|
|
指定發送數據包數量
|
|
|
|
設置數據包大小(字節)
|
|
|
|
設置超時時間(毫秒)
|
|
高級診斷參數:
|
參數
|
功能描述
|
示例
|
|
|
將地址解析為主機名
|
|
|
|
設置生存時間(跳數)
|
|
|
|
設置不分段標誌
|
|
|
|
記錄路由(1-9跳)
|
|
|
|
指定源地址
|
|
|
|
強制使用IPv4
|
|
|
|
強制使用IPv6
|
|
使用場景與實例:
- 基本連通性測試(最常用)
ping 192.168.1.1
- 持續監控網絡狀態
ping -t 8.8.8.8
- 自定義測試包數量和大小
ping -n 20 -l 1500 google.com
- 帶超時設置的測試
ping -w 3000 -n 5 192.168.1.1
- 解析主機名
ping -a 192.168.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字節
|
|
|
往返延遲
|
網絡延遲,越小越好
|
|
|
生存時間
|
數據包經過的路由器跳數
|
|
|
成功率
|
發送和接收的數據包數量
|
|
|
丟包率
|
數據包丟失百分比
|
|
|
延遲統計
|
網絡延遲波動情況
|
常見響應類型:
|
響應消息
|
含義
|
問題診斷
|
|
|
連接正常
|
網絡通暢
|
|
|
目標無響應
|
目標關機/防火牆阻擋
|
|
|
路由問題
|
網絡配置錯誤
|
|
|
本地問題
|
網卡故障/驅動問題
|
|
|
DNS解析失敗
|
域名錯誤/DNS故障
|
實際應用示例:
- 基礎網絡診斷腳本
@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 ✓ 連接正常
)
)
- 網絡質量監控
@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
- 自動化網絡診斷
@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%
高級用法與實用技巧:
- 網絡延遲統計
@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%次測試)
- 批量服務器監控
@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 ✓ 在線
)
)
)
- 智能故障診斷
@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 ✓ 網絡連接完全正常
)
企業級應用示例:
- 機房設備狀態監控
@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!
)
)
- 網絡質量報表生成
@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
- 多地點網絡質量對比
@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.
)