網站與速度

用 traceroute 找出連線在哪裡變慢

traceroute 會顯示從 Mac 到主機路徑上的每台路由器,以及每台回應所花的時間。

適用於:所有目前的 macOS 版本。檢查日期:2026年10月29日

症狀

  • 某個網站或服務很慢,其他的卻很快。
  • 你想知道延遲是在你的網路內,還是在更遠的地方。
  • 你的網路業者要求提供路由追蹤結果。

可能原因

  • 路由某一段壅塞。如果延遲從某一跳開始出現,並一路持續到最後一跳,就表示路徑上有一段很慢。
  • 路由器把探測封包的優先順序放低。某一跳很慢、但下一跳就恢復,通常不是問題。
  • 不回應的路由器。man 頁面說明,星號表示在逾時前沒有收到回應。有些路由器不會送出 traceroute 需要的回應。

如何檢查

  1. 打開終端機,追蹤到該主機的路由。

    traceroute example.com

    輸出每一跳一行,包含位址和三個回應時間。星號表示沒有收到回應。

  2. 若要略過名稱查詢、更快得到結果,請加上 -n。

    traceroute -n example.com
  3. 如果許多跳都只顯示星號,請用 -I 改用 ICMP 探測封包。

    traceroute -I example.com
  4. 找出時間開始上升、並一路維持到最後的第一跳。

  5. 追蹤兩到三次。以所有次數共同的模式為準,而不是只看一次的結果。

如何修正

  1. 如果延遲從第一跳就開始,請檢查你的 Wi-Fi 或路由器。請參閱Mac 網路很慢:找出慢在哪一段。

  2. 如果延遲從網路業者的網路開始,請把追蹤結果傳給你的網路業者。

  3. 如果延遲在目的地附近才開始,請聯絡該服務,或稍後再試。

  4. 不要把中間某一跳很慢當成證據。也要看最後一跳。

使用 Kilobat

  1. Kilobat 會執行有上限的 12 跳路由探測,並把結果存進路由歷史記錄。

    kilobat trace example.com
  2. 若要看某一跳是否持續很慢,請追蹤三次。Kilobat 會像 mtr 一樣,把對該主機的每次已儲存追蹤逐跳彙整。

    kilobat trace example.com --rounds 3
  3. 顯示每一跳的封包遺失、最佳、平均和最差延遲,以及持續延遲從哪裡開始。

    kilobat route-history --host example.com
  4. AI 代理程式可以用 host 和 rounds 呼叫 MCP 工具 trace_route,也可以呼叫 get_route_history。

常見問題

為什麼某一跳顯示 * * *?

那台路由器沒有及時回應。很多路由器不會回應探測封包。只要後面的跳有回應,路徑就是通的。

traceroute 需要管理者密碼嗎?

不需要。預設的 UDP 探測封包和 -I 任何使用者都能使用。

資料來源

  • traceroute(8),macOS 27.2 內建的 man 頁面
  • ping(8),macOS 27.2 內建的 man 頁面

資料來源檢查日期:2026年10月29日。man 頁面為 macOS 內建版本;在終端機中用 man <name> 開啟。