Ping 是網路人的「聽診器」,掌握其參數與進階用法,不僅能快速診斷故障,更能進行 MTU 探測、作業系統指紋辨識、甚至理解基礎洪水攻擊原理以加強防禦。本文系統整理 Ping 完整參數表與實戰技巧。
核心參數速查表
| 參數 | 功能 | 預設值 | 實戰範例 |
-t | 持續傳送直到手動停止 (Ctrl+C) | 否 | ping -t 192.168.1.1 監控連線穩定度 |
-l size | 設定 ICMP 封包緩衝區大小 (位元組) | 32 | ping -l 1472 -f 目標 測試 MTU |
-n count | 指定傳送回應請求次數 | 4 | ping -n 1 目標 快速存活檢查 |
-f | 設定封包「不可分段」旗標 (DF bit) | 否 | 配合 -l 進行 MTU 探測 |
-i TTL | 設定 TTL (Time To Live) 值 | 128 (Win) | ping -i 1 目標 測試單跳可達性 |
-v TOS | 設定服務類型 (Type of Service) | 0 | QoS 測試 |
-r count | 記錄路由 (最多 9 跳) | 否 | ping -r 9 目標 |
-s count | 時間戳記 (最多 4 跳) | 否 | ping -s 4 目標 |
-w timeout | 等候回應逾時 (毫秒) | 4000 | ping -w 1000 目標 快速判斷 |
-4 / -6 | 強制使用 IPv4 / IPv6 | 自動 | ping -4 google.com |
關鍵指標解讀
- time=Xms:往返延遲 (RTT),< 30ms 優、30-100ms 良、> 200ms 差。
- TTL:初始值減去經過路由器數。常見初始值:128 (Windows)、64 (Linux/Unix/macOS)、255 (網路設備)。可被修改,僅供參考。
- 回覆來源 IP:非目標 IP 回覆 → 中繼設備回應(如閘道回報不可達)。
進階實戰技巧
1. MTU 探測 (Path MTU Discovery)
ping -l 1472 -f 目標IP
# 1472 + 28 bytes (IP+ICMP header) = 1500 MTU
# 若出現 "Packet needs to be fragmented but DF set" → 遞減 -l 直到成功
# 成功時的 -l 值 + 28 = 路徑 MTU
2. 快速存活掃描 (Ping Sweep)
for /L %i in (1,1,254) do @ping -n 1 -w 100 192.168.1.%i | find "TTL="
3. TTL 指紋辨識作業系統
| 回傳 TTL | 推測 OS |
| 128 / 127 | Windows (NT 核心) |
| 64 / 63 | Linux, *BSD, macOS, Android, iOS |
| 255 / 254 | Cisco/Juniper/網路設備 |
| 32 / 30 | Windows 95/98 (舊版) |
4. 理解 Ping 洪水攻擊原理以加強防禦
# 攻擊者視角(僅供防禦理解)
ping -t -l 65500 目標IP # 大封包 + 持續發送 → 佔滿頻寬/耗盡目標 CPU
# 防禦措施
- 邊界防火牆/路由器:限制 ICMP 速率 (rate-limit icmp 100/s)
- 主機防火牆:阻擋來自非信任區段的 ICMP Echo Request
- 啟用 SYN Cookie、TCP Intercept 緩解協同攻擊
常見誤區澄清
- Ping 通 ≠ 服務正常:Web/DB/SSH 可能掛掉,需應用層健康檢查。
- Ping 不通 ≠ 主機離線:防火牆封鎖 ICMP、目標啟用隱身模式。
- TTL 非絕對指紋:可透過
sysctl net.ipv4.ip_default_ttl (Linux) 或註冊表修改。
- 大封包 Ping ≠ 壓力測試:專業壓測請用 iperf3、wrk、JMeter。
跨平台差異提醒
| 平台 | 持續 Ping | 指定次數 | 指定大小 | 不可分段 |
| Windows | -t | -n | -l | -f |
| Linux/macOS | 預設持續 | -c | -s | -M do |
總結
Ping 看似簡單,參數組合卻能解決 80% 網路連通性疑難。熟練掌握 -t -l -n -f -w 五大核心參數,配合 TTL 判讀與 MTU 探測,是網管、資安、開發人員的必修內功。