首页/网络/BGP 与广域网速查/traceroute 原理与常用参数
广域网排障60 条

traceroute 原理与常用参数

traceroute 靠逐跳 TTL 过期触发 ICMP 超时绘制路径:UDP、ICMP、TCP 三种探测模式在穿防火墙时表现不同,选对模式才能过墙。

BGP 与广域网速查网络更新于 2026-10-13

traceroute 的原理

traceroute 靠逐跳递增 TTL、让沿途设备回送 ICMP 超时来绘制路径。探测方式有 UDP、ICMP、TCP 三种,穿越防火墙时表现差异很大:有的环境只放行 ICMP,有的只放行特定 TCP 端口,选对模式才能过墙。

基本信息

Linux默认 UDP 高端口,-I 用 ICMP,-T 用 TCP
Windowstracert 使用 ICMP 探测
网络设备traceroute 命令可指定协议与探测次数
结果解读星号表示该跳未响应,不等于丢包
华为设备tracert 支持按 VPN 实例发起

典型使用场景

  • 定位跨网段不通:确认在哪一跳之后失去响应
  • 跨防火墙排查:切换探测模式验证是否被策略拦截
  • 路径变更验证:割接前后对比路径是否按设计走
  • 质量定位:结合逐跳时延判断瓶颈出现在哪一段
  • L3VPN 场景:指定 VPN 实例跟踪路径

用法示例

用法示例
traceroute -n 10.2.2.1              # 默认 UDP 探测,不解析域名
traceroute -I -n 10.2.2.1          # 改用 ICMP 探测,兼容性更好
traceroute -T -p 443 10.2.2.1      # 改用 TCP 443,便于穿越防火墙
!
# 设备侧
traceroute 10.2.2.1 probe 3 numeric

探测方式

方式特点适用场景
UDPLinux 默认,端口号递增一般环境
ICMP兼容性好,多数设备响应对端只放行 ICMP 时
TCP指定端口,易穿越策略穿越防火墙的场景
中间跳显示星号很常见:设备对 ICMP 限速或不回送时都会这样,不能据此判断该跳存在丢包。
目标可达但中途全是星号,说明路径可见性受限,而不是链路断裂:要结合业务实际表现与其他测量手段判断。
traceroute 的结果是探测那一刻的路径:负载分担环境下多次执行可能得到不同路径,这属于正常现象。
跨源对比很有价值:从不同位置发起跟踪,可以区分问题是局部现象还是全局路径问题。
结果要与业务表现结合:路径看起来正常而业务不通时,问题往往在策略、端口或应用层,而不是路由层。
留存路径基线很有价值:把关键链路的常态路径与逐跳时延存档,之后出现异常时可以一眼看出是哪一段发生了变化。

易错点

  • 把中间星号当成丢包:ICMP 限速场景下很常见,容易误判
  • UDP 探测被拦截就下结论不通:换 ICMP 或 TCP 模式再测一次
  • 只看一次结果就认定路径:负载分担场景下每次结果可能不同
  • 忽略探测源位置:从不同源发起的路径可能完全不同,需注明发起位置

数据来源与参考

  • RFC 792: ICMP
  • Linux man: traceroute
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌