1. traceroute 是什麼?網路路由分析的基本工具
traceroute 的概述
traceroute 是一款用於追蹤網路路由的工具,它可以確認數據封包經過哪些路由器傳送到目的地。使用此工具,可以識別網路延遲或故障發生的節點,對於網路管理員和技術人員來說,這是一個非常實用的工具。
traceroute 的運作原理
traceroute 透過傳送 ICMP(網際網路控制訊息協議)或 UDP(使用者資料報協議)封包,並記錄每個路由器返回的回應。透過此過程,可以檢視數據經過的所有節點。
運作步驟
- 傳送具有較小 TTL(存活時間,Time to Live)值的封包。
- 每當封包經過一個路由器,TTL 會減少,當 TTL 變為 0 時,該路由器會返回回應。
- 根據回應記錄該路由器的 IP 位址及回應時間。
- 逐步增加 TTL,持續傳送封包,直到追蹤完整的路由。
traceroute 的優勢
- 快速識別網路故障: 能夠迅速找出網路延遲或封包遺失發生的節點。
- 路由可視化: 追蹤數據傳輸時經過的國家或區域,幫助掌握網路的整體架構。
- 效能分析: 測量每個節點的回應時間,以評估網路效能。
與其他工具的比較
traceroute 專門用於追蹤網路路由,而 ping 和 mtr 等工具也常被比較。例如,ping 用於測試單一主機的連線狀況,而 traceroute 則可視化完整的路由。mtr 結合了 traceroute 和 ping 的功能,允許即時監控網路路徑。

2. 在 Ubuntu 上安裝 traceroute 的步驟
確認是否已安裝 traceroute
在 Ubuntu 上,traceroute 可能未預設安裝,因此首先需要確認是否已經安裝。請在終端機輸入以下指令:
traceroute --version
如果顯示版本資訊,表示已安裝;如果出現「command not found」,則需要安裝。
traceroute 的安裝步驟
請按照以下步驟安裝 traceroute:
- 更新套件資訊
執行以下指令以獲取最新的套件資訊:
sudo apt update
- 安裝 traceroute
執行以下指令進行安裝:
sudo apt install traceroute
如果系統要求確認,請按「Y」繼續。
- 確認安裝是否成功
安裝完成後,執行以下指令檢查是否成功:
traceroute --version
如果成功安裝,將會顯示版本資訊。
關於權限的注意事項
由於 traceroute 涉及網路操作,因此某些選項需要 sudo
權限。例如,使用 ICMP 封包時,請使用以下指令:
sudo traceroute -I example.com
安裝失敗時的解決方法
如果安裝失敗,可能是以下幾種原因:
- 網路連線問題
如果網路不穩定,安裝可能會中斷。請確認連線狀況後,重新執行安裝指令。 - 套件管理系統問題
如果套件快取損壞,請執行以下指令清除快取後再試一次:
sudo apt clean
sudo apt update
sudo apt install traceroute

3. traceroute 的基本指令與選項列表
traceroute 的基本指令語法
traceroute 的基本語法如下:
traceroute [選項] <目標主機名稱或 IP 位址>
執行此指令後,可以查看封包到達目的地前所經過的所有路由器的 IP 位址及延遲時間。
基本使用範例
以下是查詢目標主機(如:google.com)路由的指令範例:
traceroute google.com
執行後將顯示以下資訊:
- 經過的路由器 IP 位址
- 每個節點的延遲時間(毫秒)
- 若封包無法到達,則顯示錯誤訊息(如
*
)
主要選項說明
traceroute 提供多種選項,使用這些選項可以更有效地進行網路診斷。
-I
:使用 ICMP 封包
預設情況下,traceroute 使用 UDP 封包,但透過此選項可改用 ICMP 封包。
traceroute -I example.com
使用情境: 若某些防火牆阻擋 UDP,但允許 ICMP,則可以使用此選項進行測試。
-T
:使用 TCP 封包
此選項允許使用 TCP 協議進行追蹤,適用於特定應用服務的測試。
traceroute -T example.com
使用情境: 可用於分析 Web 伺服器(如 HTTP 80、HTTPS 443)等服務的連線狀況。
-p
:指定端口號
使用此選項可以設定 UDP 或 TCP 連線時的目標端口。
traceroute -p 8080 example.com
使用情境: 當測試特定應用程式(如 Web 應用)時,可以指定相應的端口號進行診斷。
-n
:不解析主機名稱
預設情況下,traceroute 會解析 IP 位址對應的主機名稱。使用此選項可直接顯示 IP 位址,減少解析時間。
traceroute -n example.com
-m
:設定最大跳數
設定封包通過的最大跳數(預設為 30)。
traceroute -m 20 example.com
使用情境: 若確定目標伺服器的距離較短,可降低最大跳數以加快查詢速度。
-q
:設定查詢次數
設定每個跳數傳送的封包數量(預設為 3)。
traceroute -q 1 example.com
如何解讀 traceroute 的輸出結果
執行 traceroute 後,輸出結果通常包含以下資訊:
- 跳數: 顯示數據經過的路由器順序。
- IP 位址或主機名稱: 顯示經過的路由器資訊。
- 回應時間: 每個跳數的回應延遲(以毫秒為單位)。
範例輸出:
1 192.168.1.1 (192.168.1.1) 1.123 ms 1.456 ms 1.789 ms
2 10.0.0.1 (10.0.0.1) 2.456 ms 2.678 ms 2.789 ms
3 * * *
* * *
: 若某個跳數顯示「* * *」,表示該節點可能丟棄了 ICMP 回應,或者防火牆阻擋了回應。
4. traceroute 的應用範例:網路診斷的實際操作

如何使用 traceroute 來分析網路問題
traceroute 可用於識別網路延遲或中斷問題,以下是診斷網路連線問題的步驟:
- 對目標伺服器執行 traceroute
traceroute example.com
- 分析回應時間是否異常
如果某個跳數的回應時間明顯高於其他節點,可能代表該節點有延遲問題。
3 192.0.2.1 (192.0.2.1) 150.789 ms 151.123 ms 151.456 ms
- 問題分析: 若某一跳的回應時間明顯較高,可能是該節點有頻寬不足或連線問題。
5. traceroute 執行時的錯誤及其解決方法
command not found
錯誤
可能原因:
- traceroute 可能尚未安裝。
解決方法:
- 執行以下指令安裝 traceroute:
sudo apt update
sudo apt install traceroute
* * *
出現的原因
可能原因:
- 封包可能被某些路由器或防火牆阻擋。
- 特定的網路設備可能設置為不回應 ICMP 或 UDP 封包。
解決方法:
- 變更協議進行測試
- 使用 ICMP 封包測試:
traceroute -I example.com
- 使用 TCP 封包測試:
traceroute -T example.com
- 聯繫網路管理員
- 某些公司或 ISP 可能封鎖了特定的封包,請聯繫管理員確認。
6. 常見問題 (FAQ)
Q1. traceroute 與 ping 有什麼不同?
A:
- traceroute: 追蹤網路路由,幫助找出延遲或故障節點。
- ping: 測試目標主機是否可達,並測量往返時間。
Q2. 為什麼 traceroute 會中途中斷?
A: 可能的原因包括防火牆阻擋、特定路由器不回應或網路擁塞等。
Q3. 為什麼某些跳數的回應時間會突然變長?
A: 可能的原因包括:
- 網路擁塞: 某些路由器可能處於高負載狀態,導致封包處理時間變長。
- 流量限制(Rate Limiting): 某些 ISP 或企業可能限制 ICMP 或 UDP 封包的速率,使得回應變慢。
- 地理位置影響: 若封包須通過遠距離路由(例如跨國連線),則延遲會增加。
Q4. traceroute 是否支援 IPv6?
A: 是的,traceroute 支援 IPv6,但需使用 traceroute6
指令或 traceroute -6
選項:
traceroute6 example.com
或者:
traceroute -6 example.com
7. 總結
traceroute 的重要性
traceroute 是一款強大的網路診斷工具,可以幫助識別連線問題,分析網路拓撲結構,並評估網路效能。
本文重點回顧
- traceroute 的基本功能
- 可視化封包的路由,並檢查各跳數的回應時間。
- 如何在 Ubuntu 安裝 traceroute
- 透過
sudo apt install traceroute
輕鬆安裝。
- 基本指令與常用選項
- ICMP、TCP 模式、最大跳數調整等多種選項。
- traceroute 的實際應用
- 可用於分析網路延遲、封包遺失、ISP 路由問題等。
- 錯誤排除
- 解決
* * *
顯示問題、命令未找到、封包丟失等常見錯誤。
- 常見問題解答
- 了解 traceroute 與 ping 的區別、為何回應時間變長、如何使用 IPv6 等。
traceroute 的有效應用
traceroute 不僅適用於個人用戶排查網路問題,對於企業 IT 部門、網管人員、ISP 及資料中心管理者來說,也是不可或缺的工具,特別是在以下情境中:
- 診斷連線不穩定問題(例如網站無法訪問、遊戲卡頓)。
- 分析 ISP 或 VPN 連線路由(檢查是否存在不必要的跳數)。
- 檢測封包過濾或防火牆限制(識別哪些節點阻擋 ICMP 或 UDP 封包)。
下一步該做什麼?
現在,您可以嘗試在自己的網路環境中運行 traceroute,分析結果,並學習如何解讀數據。如果有興趣進一步研究,還可以嘗試使用 mtr
(一款結合 ping 和 traceroute 功能的工具)來獲取更即時的監控資訊。
最後的建議
網路診斷是 IT 技術的基本技能之一,熟練掌握 traceroute 能夠幫助您更有效地解決網路問題,提升專業能力。希望本指南對您有所幫助!