首页/网络/网络排障速查/traceroute 三种探测模式:-I、-T、-U 怎么选
连通性与链路检测54 条

traceroute 三种探测模式:-I、-T、-U 怎么选

不同模式发出的报文不同,穿越策略的效果也不同:ICMP 模式最通用、TCP 模式最能反映业务路径、UDP 模式是传统默认。

网络排障速查网络更新于 2026-10-13

三种探测模式的区别

traceroute 靠逐级加大 TTL 让沿途设备回 ICMP 超时,从而画出路径。发出去的是什么包由模式决定:默认模式用高端口 UDP 报文,-I 用 ICMP Echo,-T 用 TCP SYN,-U 显式指定 UDP。模式不同,穿越策略设备的命运也不同:只放行 TCP 的网络里,UDP 模式会全程星号;反过来,ICMP 被限速时,-I 的结果会残缺。选模式的判断标准只有一个:让探测报文尽量与真实业务报文长得一样。

基本信息

适用平台Linux traceroute(含现代 2.x 版本),-T 需要 root 或 CAP_NET_RAW
默认行为UDP 高端口,每跳 3 个探针,最多 30 跳
常用选项-n 不做反解、-m 最大跳数、-q 每跳探针数、-p 端口、-s 源地址、-w 超时
Windows 对应tracert 只有 ICMP 模式,TCP 路径探测需第三方工具

典型使用场景

  • 只放行 443 的网络:用 -T -p 443 复现业务真实路径,否则全程星号
  • 网络允许 ICMP:用 -I 拿到与 ping 路径一致的结果,最适合与 ping 结论互证
  • 多出口或有策略路由:用 -s 指定源地址,观察不同源地址的路径差异
  • 对比三种模式:三条路径不一致时,说明中间设备对不同协议做了差异化处理
  • 定位路径在哪一跳断掉:先用通用模式,再用 -T 复测可疑跳

三模式对比同一目标

三模式对比同一目标
traceroute -n -m 15 10.9.9.9                  # 默认 UDP 高端口模式
traceroute -I -n -m 15 10.9.9.9               # ICMP Echo 模式,最接近 ping
traceroute -T -p 443 -n -m 15 10.9.9.9        # TCP SYN 到 443,复现业务路径
traceroute -T -p 443 -s 10.0.0.5 -n 10.9.9.9  # 指定源地址,验证策略路由
traceroute -U -p 5000 -n -m 15 10.9.9.9       # 显式 UDP 到指定端口

模式选择对照

模式探测包适用场景
默认(UDP)高端口 UDP 包通用路径探测,传统实现
-IICMP Echo网络允许 ICMP 时,结果最接近 ping 路径
-T -p 443TCP SYN 到指定端口防火墙只放行业务端口时复现真实路径
-T -p 443 -s IP指定源地址 TCP多出口环境复现特定业务流量路径
-U -p N指定端口 UDP排查 UDP 业务(如 DNS、语音)的路径
TCP 模式到达目标后目标回 SYN/ACK 或 RST,两种都算探测成功到达;看到最后一跳有回应即可确认路径连通。
-I 与 -T 都需要原始套接字权限(CAP_NET_RAW):生产机上长期用 root 跑探测脚本属于权限过大,建议单独授权或限制执行的账号。

易错点

  • 默认 UDP 模式在只放行 TCP 的网络里全程星号,容易被误判为不通
  • -T 探测的目标端口没有服务时对方回 RST,虽然仍能画路径,但不代表业务端口可用
  • 把不同模式画出的路径混着比较:协议不同得到不同哈希结果,差异未必是故障
  • 忘记加 -n:大规模反解会拖慢探测,DNS 异常时还会卡住整个命令

数据来源与参考

  • traceroute 手册(-I/-T/-U)
  • 防火墙环境探测实践

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌