萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux traceroute 指令完整詳解:參數、實例與網路診斷實戰

指令簡介

traceroute(Windows 為 tracert)用於追蹤網路封包從來源到目的地經過的路由節點,透過發送 TTL 遞增的 UDP/ICMP 封包,記錄每一跳的回應時間與 IP,是網路故障診斷的核心工具。

指令語法

traceroute [參數] [主機名稱或IP] [封包大小]

常用參數表

參數說明
-n直接顯示 IP,不做 DNS 反解(加速顯示)
-m <TTL>設定最大跳數(預設 30)
-q <數量>每跳發送封包數(預設 3)
-w <秒數>等待回應逾時秒數(預設 5 秒)
-p <連接埠>指定 UDP 基礎連接埠(預設 33434)
-I使用 ICMP Echo Request 取代 UDP
-r忽略路由表,直接發送到目標(僅本地網段有效)
-v詳細模式顯示執行過程

實戰範例解析

範例 1:基本追蹤

traceroute www.baidu.com

輸出說明:

  • 每行為一跳(Gateway),三個時間值為三次探測的往返延遲(ms)
  • * * * 表示該跳無回應(可能被防火牆阻擋 ICMP)
  • 延遲突增可能表示該節點阻塞或物理鏈路問題

範例 2:限制最大跳數

traceroute -m 10 www.baidu.com

僅顯示前 10 跳,適合快速定位區域網路問題。

範例 3:僅顯示 IP(跳過 DNS 解析)

traceroute -n www.baidu.com

避免 DNS 解析延遲,加快輸出速度。

範例 4:指定 UDP 連接埠

traceroute -p 6888 www.baidu.com

繞過某些防火牆對預設連接埠的封鎖。

範例 5:增加每跳探測封包數

traceroute -q 4 www.baidu.com

提高統計樣本,更準確判斷丟包率。

範例 6:繞過路由表(本地測試)

traceroute -r www.baidu.com
# 輸出:connect: 網絡不可達

僅適用於同一廣播域的直接連線測試。

範例 7:調整逾時等待時間

traceroute -w 3 www.baidu.com

高延遲鏈路可適當增加,低延遲環境可減少等待。

工作原理核心

  1. 發送 TTL=1 的封包,第一個路由器收到後 TTL 歸零,丟棄並回傳 ICMP Time Exceeded
  2. 依此類推,每次 TTL+1,直到到達目的主機回傳 ICMP Port Unreachable(UDP)或 Echo Reply(ICMP)
  3. 記錄每跳 IP、主機名(若可解析)與三次 RTT

常見異常判讀

現象可能原因
中間出現 * * *防火牆封鎖 ICMP、該路由器不回應 TTL 逾期、負載過高
某跳延遲極高節點阻塞、QoS 限速、跨國/跨運營商鏈路
前幾跳正常,後段全 *目標端防火牆策略、非對稱路由

進階應用技巧

  • 配合 mtr: 結合 ping + traceroute 持續監控,動態顯示丟包率
  • 指定介面: -i eth0 多網卡環境指定出口
  • IPv6 支援: traceroute6 或 traceroute -6
  • 輸出導向檔案: traceroute target > trace.log 留存分析

善用 traceroute 參數組合,能快速定位網路路徑故障點,是運維與網工必備診斷技能。

copyright © 萬盛學電腦網 all rights reserved