traceroute 诊断核心是识别延迟陡升、星号集中段、ttl超时异常和跳数突变四类信号;需关注相邻跳延迟差值、连续星号位置、跳数变化及结合mtr持续观测。

traceroute 是定位网络链路中延迟突增、丢包、跳数异常或路径绕行等问题的利器。关键不在于看完整路径,而在于识别“延迟陡升”“星号集中段”“TTL超时异常”和“跳数突变”四类信号。
关注延迟跳变点,而非绝对数值
每跳的 RTT 值本身参考意义有限,真正重要的是相邻跳之间的延迟差值。当某跳延迟比前一跳突然增加 50ms 以上(尤其在骨干网段),大概率表明该节点或其出向链路存在拥塞、策略限速或设备过载。
- 示例:第 4 跳 12ms → 第 5 跳 86ms → 第 6 跳 92ms,说明问题集中在第 5 跳设备或它到第 6 跳之间的链路
- 注意排除 ICMP 限速干扰:部分运营商对 traceroute 的 ICMP 探测包做速率限制,导致单次测试中后几跳显示 *,可尝试加 -q 3(发送 3 个探测包)或改用 mtr 持续观测
- 对比多次 traceroute 结果:若某跳延迟波动剧烈(如 20ms~200ms 来回跳),比稳定高延迟更指向瞬态拥塞或队列调度问题
识别连续星号段,定位策略拦截或防火墙过滤
连续出现多个 * 并非一定代表断连,常见于中间节点禁 ping、ICMP 不响应或 ACL 丢弃 TTL=0 报文。需结合前后跳判断是否真实中断:
- 若星号出现在起始几跳(如第 2–3 跳),多为本地网关或 ISP 边界设备主动过滤,属正常策略
- 若星号出现在路径中段(如第 7–9 跳),且前后跳可达,则大概率是某运营商核心路由器关闭 ICMP 响应,不表示故障
- 若星号从某跳开始持续到终点(如第 5 跳起全 *),且第 4 跳有响应,说明第 4 跳之后链路不通或全程过滤——此时需配合 ping 目标 IP 确认端到端连通性
检查跳数异常与路径绕行
同一目标在不同时间或不同源发起 traceroute,跳数差异超过 2 跳,往往暗示 BGP 路由抖动、多出口负载不均或 CDN 调度变化:
- 对比两次 traceroute:若一次走 11 跳(经北京骨干),另一次走 17 跳(绕行广州再返沪),说明存在非最优路径,可能受 BGP Local Preference 或 AS_PATH 长度影响
- 使用 traceroute -I(基于 ICMP)与 traceroute -T(基于 TCP SYN)对比:若 ICMP 路径绕远但 TCP 路径直达,可能是运营商对 ICMP 做了特殊策略,实际业务流量不受影响
- 结合 whois 或 bgp.he.net 查看各跳 IP 所属 ASN,确认是否跨运营商(如从电信跳入联通),这类跳转常伴随延迟升高和丢包
结合 mtr 实时诊断,避免单次快照误判
标准 traceroute 是单次快照,易受瞬时干扰误导。mtr 整合 ping + traceroute,持续采样并统计丢包率、延迟均值/抖动,更适合瓶颈定位:
- 运行 mtr -rwc 50 example.com(发 50 包后输出报告),重点关注 “Loss%” 列非零且集中在某跳,比延迟更可靠指示故障点
- mtr 默认显示最近 10 行实时滚动,观察 “StDev”(延迟抖动):若某跳 StDev > 50ms,反映链路不稳定,即使平均延迟不高也需警惕
- 在 mtr 运行中按 d 切换显示模式,查看每跳的丢包分布是否呈周期性(如每 30 秒规律丢 1 包),可能指向 QoS 限速或定时维护










