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 作為替代)。