<p>traceroute 通过递增TTL探测路径,逐跳获取路由器IP与延迟;默认UDP/ICMP协议,遇“ *”可能是限速而非断连;需结合ping、mtr、TCP模式及AS号分析定位问题。</p>

traceroute 是排查网络路径中断、高延迟或路由异常的核心工具,它通过发送带有递增 TTL(Time To Live)值的数据包,逐跳获取从源到目标经过的每个路由器 IP 及响应延迟,从而可视化整条路径的可达性与性能表现。
理解 traceroute 的工作原理
traceroute 默认使用 UDP(Linux/macOS)或 ICMP(Windows 的 tracert)探测包,每轮发送 3 个相同 TTL 的数据包。当数据包到达某中间节点时,TTL 减为 0,该节点会返回一个“ICMP Time Exceeded”消息,其中包含自身 IP 地址和响应时间。TTL 从 1 开始逐步增加,直到抵达目标主机(收到 ICMP Port Unreachable 或 ICMP Echo Reply),从而拼出完整路径。
注意:部分节点可能禁用 ICMP 响应或限速,表现为“* * *”——这不等于断连,而是策略性静默,需结合后续跳数判断是否真实中断。
基础用法与关键参数
常用命令示例:
- Linux/macOS:traceroute example.com(默认 UDP,端口 33434–33534)
- 指定 ICMP 模式:traceroute -I example.com(更易穿透防火墙)
- 限制最大跳数:traceroute -m 20 example.com(避免无限等待)
- 设置探测包数量:traceroute -q 1 example.com(每跳只发 1 包,加快执行)
- Windows 系统:tracert -d example.com(-d 跳过 DNS 反查,提速并避免干扰)
识别典型问题模式
观察输出结果时,重点关注三类异常信号:
- 持续超时(* * *)出现在某跳之后:说明该节点及其下游不可达,可能是链路故障、ACL 丢包或目标宕机;若仅单跳超时但后续恢复,多为该设备限速或不响应 ICMP。
- 延迟突增(如前几跳 10ms,某跳骤升至 300ms+):该节点存在拥塞、高负载或跨运营商互联瓶颈,常见于城域网出口、省际骨干网或国际出口节点。
- 路径来回不对称(正向走 A-B-C,反向走 A-D-C):traceroute 仅显示去程路径,无法反映回程;如需双向分析,需在两端分别执行,或配合 mtr 实时观测。
进阶排查建议
单纯看 traceroute 输出常不足以定界问题,建议组合以下动作:
- 对异常跳数单独 ping 测试:ping -c 5 x.x.x.x,确认是否稳定可达及丢包率。
- 用 mtr example.com 替代 traceroute,它融合 ping + traceroute,支持实时刷新、统计丢包与抖动,更适合持续观察。
- 对比不同协议行为:用 traceroute -I 和 traceroute -T -p 80(TCP 模式)测试,验证是否是特定协议被拦截(如防火墙放行 ICMP 但封禁 UDP)。
- 记录 AS 号信息:配合 whois 或在线工具(如 bgp.he.net)查询各跳 IP 所属自治系统,判断是否跨运营商或国际链路导致延迟升高。









