萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 網路安全 >  >> 網路基礎知識

Ping 指令完整參數詳解與實戰網路診斷技巧

Ping 是網管/資安人員的「聽診器」,利用 ICMP 回送請求/回應(Type 8/0)測試連通性、延遲、封包大小、MTU、TTL 推算躍點。本文整理核心參數、輸出解讀與進階診斷技巧。

核心參數速查表

參數說明範例
-t持續傳送直到 Ctrl+C 停止,監控長期連線品質ping -t 8.8.8.8
-n count指定回送請求次數(預設 4)ping -n 10 192.168.1.1
-l size設定傳送緩衝區大小(位元組,預設 32,上限 65500)ping -l 1472 8.8.8.8(測試 MTU 1500)
-f設定 IP 標頭「不可分片」旗標(DF=1),配合 -l 測試路徑 MTUping -f -l 1472 8.8.8.8
-i TTL設定發送封包初始 TTL(1-255),測試特定躍點可達性ping -i 1 8.8.8.8(只能達本地閘道)
-v TOS設定服務類型(TOS/DSCP),測試 QoS 標記轉發ping -v 0x80 8.8.8.8(CS5/EF)
-r count記錄路由(IP 選項),最多 9 跳(舊式,現多用 tracert)ping -r 9 8.8.8.8
-s count時間戳記(IP 選項),最多 4 跳ping -s 4 8.8.8.8
-j host-list鬆散來源路由(指定中繼清單,易被防火牆丟棄)ping -j 10.0.0.1 8.8.8.8
-k host-list嚴格來源路由(強制經過指定節點)ping -k 10.0.0.1 8.8.8.8
-w timeout等候回應逾時毫秒數(預設 4000ms)ping -w 1000 8.8.8.8
-RIPv6 路由標頭測試ping -6 -R ::1
-S srcaddr指定來源 IP(多介面卡/多 IP 主機指定出口)ping -S 192.168.1.50 8.8.8.8
-4 / -6強制使用 IPv4 / IPv6ping -6 google.com

輸出欄位深度解讀

回覆自 192.168.1.1: 位元組=32 時間=1ms TTL=64
  • 位元組:回應封包大小(含 ICMP 標頭 8 bytes + 資料)。
  • 時間:往返延遲(RTT),單位毫秒。< 1ms 顯示 <1ms。受距離、擁塞、QoS、裝置效能影響。
  • TTL (Time To Live):封包剩餘躍點數。初始 TTL 為 2 的冪次(64/128/255),每經過一層路由器 -1。
    推算躍點:初始 TTL - 回傳 TTL = 經過路由器數。
    常見初始值:Linux/Unix/macOS=64、Windows=128、網路設備=255/254。
    範例:回傳 TTL=119 → 128-119=9 跳(Windows 來源);回傳 TTL=55 → 64-55=9 跳(Linux 來源)。

進階診斷技巧

1. 路徑 MTU 發現 (PMTUD)

ping -f -l 1472 目標IP   # 1500 MTU - 20 IP頭 - 8 ICMP頭 = 1472
# 成功 → 路徑 MTU ≥ 1500
# 失敗「封包需分片但已設 DF」 → 遞減 -l 直到成功,該值+28 = 路徑 MTU

2. 偵測特定躍點阻斷

ping -i 3 目標IP   # TTL=3 只能到第 3 跳
# 若第 3 跳回應 TTL exceeded,代表第 3 跳可達;若超時,第 3 跳或之前有阻斷

3. 同時監控多目標(PowerShell)

$targets = @("8.8.8.8","1.1.1.1","192.168.1.1")
while($true) {
  $targets | ForEach-Object { 
    $r = Test-Connection -Count 1 -ComputerName $_ -ErrorAction SilentlyContinue
    [PSCustomObject]@{Time=Get-Date; Target=$_; Latency=if($r){$r.ResponseTime}else{"Timeout"}}
  } | Format-Table -AutoSize
  Start-Sleep 1
}

4. TTL 值判斷遠端作業系統(參考值,可被修改)

回傳 TTL 範圍推測 OS 初始 TTL可能作業系統
120-128128Windows 2000/XP/2003/Vista/7/8/10/11、Windows Server
58-6464Linux、Unix、macOS、BSD、大多數嵌入式裝置、Android/iOS
250-255255Cisco/網路設備、Solaris/AIX 部分版本
30-3232/64Windows 95/98/ME(初始 32)、部分舊版網路設備

⚠️ TTL 可被 sysctl net.ipv4.ip_default_ttl、登錄表 DefaultTTL 修改,僅供參考不可當鐵證。

常見錯誤訊息對照

訊息含義排查方向
Request timed out無回應(ICMP 被封、目標離線、路由不可達、ARP 失敗)檢查防火牆、目標電源、路由表、ARP 表、tracert 定位斷點
Destination host unreachable路由器明確告知無路由至目標網路檢查本機/中繼路由表、閘道設定、目標網段是否存在
TTL expired in transit封包 TTL 歸零被丟棄增加 -i 初始 TTL、檢查路由迴圈
Parameter problem / Packet too bigMTU/分片/選項錯誤調整 -l、-f、檢查 PMTUD 黑洞

安全性提醒

  • 大量/大封包 Ping 可構成 DoS(Ping of Death、Smurf、Ping Flood),嚴禁對未授權目標發動。
  • 生產環境建議在邊界防火牆限制 ICMP 速率(如 5 pps/源 IP),而非完全封鎖(破壞 PMTUD、路由收斂、監控探測)。
copyright © 萬盛學電腦網 all rights reserved