网站与速度

用 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. 智能体可以调用 MCP 工具 trace_route(传入 host 和 rounds),以及 get_route_history。

常见问题

为什么某一跳显示 * * *?

该路由器没有及时应答。许多路由器不应答探测包。只要后面的跳有应答,路径就是通的。

traceroute 需要管理员密码吗?

不需要。默认的 UDP 探测和 -I 任何用户都能使用。

参考资料

  • traceroute(8),macOS 27.2 自带的手册页
  • ping(8),macOS 27.2 自带的 man 手册页

参考资料核查于 2026年10月29日。man 手册页为 macOS 自带版本;在“终端”中用 man <name> 打开。