路由追踪
追踪到目标主机的网络路径和各跳延迟。
Traceroute 展示数据包从我们服务器到目标经过的每一跳路由器,并给出到每跳的往返延迟。
用它定位延迟突涨在哪一跳、哪里在丢包、目标网络依赖哪些传输商。
执行中...(可能需要一点时间)
怎么读输出
- 每一行是一跳——一个把 TTL 减到 0 并回包的路由器。前几跳通常是我们机房的边缘,后面会跨传输商、IXP,最后到达目标网络。
- ms 列是每个探测包的往返时延。每行 3 个数字代表对那个 TTL 发了 3 个探测包。
* * *表示这台路由器限速或没回我们的探测。中间某一跳缺,后续跳数都正常返回时基本不必担心。- 延迟跳变是有用的信号:某一跳比上一跳多 100 ms 并一直高,说明那条链路或那台路由器有问题。
从结果能看出什么
- 哪里慢?找到延迟突涨并持续到路径末尾的那一跳。
- 流量跨过哪些 ISP?把每跳 IP 映射到 ASN(可以用我们的 ASN 查询),看清传输链。
- 目标是否屏蔽你的协议?如果全部超时,目标可能屏蔽了 ICMP/UDP;TCP 模式 traceroute(如 curl 详细输出)经常能通。
注意事项
- Traceroute 路径是非对称的——回程可能走不同路由。看到的延迟是双向往返的总和。
- 很多路由器主动限速 ICMP 响应。路径中间出
* * *是常态;连续多跳到路径末尾都* * *才是真信号。 - 单次 traceroute 只是快照。间歇性问题用持续运行的
mtr。背景阅读:用 Traceroute 理解网络延迟。