traceroute — 追蹤網路封包的路由路徑

追蹤封包到目標主機所經過的路由路徑與各節點延遲。

語法

traceroute [選項] 主機

常用選項

選項 說明 範例
-n 不解析主機名稱(顯示 IP,速度較快) traceroute -n google.com
-w N 等待每個回應的逾時(秒,預設 5) traceroute -w 3 google.com
-m N 最大跳數(TTL,預設 30) traceroute -m 15 google.com
-q N 每個 hop 的探測次數(預設 3) traceroute -q 1 google.com
-I 使用 ICMP(類似 ping,部分防火牆不封鎖) sudo traceroute -I google.com
-T 使用 TCP(穿透較嚴格的防火牆) sudo traceroute -T -p 80 google.com
-4 / -6 強制使用 IPv4 / IPv6 traceroute -4 google.com

使用範例

範例 1:基本路由追蹤

追蹤到 google.com 的路由,顯示每個 hop 的 IP 和延遲(毫秒)。

$ traceroute google.com
traceroute to google.com (142.250.185.46), 30 hops max
 1  192.168.1.1 (192.168.1.1)  0.814 ms
 2  203.0.113.1 (203.0.113.1)  5.234 ms
 3  * * *  (封包被防火牆丟棄)
...
15  142.250.185.46  8.234 ms
範例 2:快速追蹤(不解析 DNS)

加上 -n 跳過 DNS 反解,速度明顯更快。

$ traceroute -n 8.8.8.8
traceroute to 8.8.8.8, 30 hops max
 1  192.168.1.1  0.5 ms
 2  10.0.0.1     3.2 ms
範例 3:只顯示一次探測

用 -q 1 每個 hop 只探測一次,縮短輸出。

$ traceroute -q 1 -n google.com

常見錯誤與排錯

大多數節點顯示 * * *
原因
路由器封鎖了 traceroute 使用的 UDP/ICMP 封包。
解法
使用 sudo traceroute -T -p 80 目標(TCP 模式穿透防火牆),或改用 mtr。
traceroute: command not found
原因
traceroute 未安裝。
解法
sudo apt install traceroute(或 mtr-tiny 作為替代)。

延伸閱讀