路由追踪2025-01-2811分钟

路由追踪与MTR:网络路径分析的终极指南

详细介绍Traceroute和MTR工具的工作原理、使用方法和结果分析,帮助您精确定位网络故障点。

TracerouteMTR路由追踪网络诊断

什么是路由追踪

路由追踪(Traceroute)是一种网络诊断工具,用于显示数据包从源主机到目标主机所经过的所有路由器(跳)路径。它能帮助网络管理员了解数据包的传输路径,定位网络延迟或丢包发生的具体位置。

Traceroute的工作原理

Traceroute利用IP协议中的TTL(Time to Live,生存时间)字段来实现路径发现:

  1. 发送TTL=1的数据包到目标,第一个路由器将TTL减为0后丢弃数据包,并返回"ICMP Time Exceeded"消息
  2. 发送TTL=2的数据包,第二个路由器返回"ICMP Time Exceeded"
  3. 依次递增TTL值,直到数据包到达目标主机
  4. 目标主机返回"ICMP Port Unreachable"(UDP方式)或"ICMP Echo Reply"(ICMP方式)

通过这一过程,Traceroute可以获取路径上每个路由器的IP地址和响应时间。

不同平台的Traceroute命令

Windows:tracert

Windows使用ICMP Echo Request实现路由追踪:

tracert example.com

# 输出示例
跟踪到 example.com [93.184.216.34] 的路由:

  1     1 ms     1 ms     1 ms  192.168.1.1
  2    12 ms    11 ms    12 ms  10.10.10.1
  3    15 ms    14 ms    15 ms  72.14.215.85
  4    18 ms    17 ms    18 ms  93.184.216.34

Linux/macOS:traceroute

Linux默认使用UDP实现,也可以指定ICMP模式:

# UDP模式(默认)
traceroute example.com

# ICMP模式
traceroute -I example.com

# TCP模式
traceroute -T example.com

Traceroute结果解读

每一跳的含义

每行输出代表路径上的一个路由器:

5  202.97.12.34 (202.97.12.34)  25.123 ms  24.567 ms  25.890 ms
  • 序号(5):跳数,即第几个路由器
  • IP地址:路由器的IP地址
  • 主机名:路由器的反向DNS名称(可能为空)
  • 三个时间值:三次探测的往返时间(ms)

常见异常情况

现象 含义 可能原因
* * * 无响应 路由器丢弃了探测包
某一跳延迟突然增大 该路由器存在拥塞 网络瓶颈或QoS限制
后续跳延迟持续高 该点之后的链路有问题 跨运营商或跨境链路
最终目标不可达 目标主机或最后一跳有问题 服务器故障或防火墙阻止

MTR:Traceroute的增强版

什么是MTR

MTR(My Traceroute)是Traceroute和Ping的结合体。与传统Traceroute只发送3个探测包不同,MTR会持续向路径上的每个路由器发送探测包,实时统计每一跳的延迟和丢包率。

MTR的优势

  1. 持续监测:持续发送探测包,结果更具统计意义
  2. 丢包率统计:显示每一跳的丢包百分比
  3. 延迟统计:显示最好、最差和平均延迟
  4. 实时更新:结果实时刷新,便于观察网络变化

MTR命令使用

# Linux安装MTR
sudo apt install mtr    # Debian/Ubuntu
sudo yum install mtr    # CentOS/RHEL

# 运行MTR
mtr example.com

# 指定发送次数后退出
mtr -c 100 example.com

# 报告模式(非交互式)
mtr -r -c 50 example.com

MTR输出解读

Host                     Loss%   Snt   Last   Avg  Best  Wrst StDev
1. gateway.local           0.0%   100    0.5   0.6   0.4   1.2   0.1
2. isp-router.net          0.0%   100    8.2   9.1   7.5  15.3   1.5
3. backbone-router.net     2.0%   100   15.3  16.2  14.1  25.8   2.3
4. ???                    100.0%  100    0.0   0.0   0.0   0.0   0.0
5. target-server.com       0.0%   100   22.1  23.5  21.2  30.1   1.8

关键指标:

  • Loss%:丢包率,中间跳的高丢包率可能是ICMP限速,不一定是问题
  • Last/Avg/Best/Wrst:最近/平均/最好/最差延迟
  • StDev:标准差,值越大表示延迟越不稳定

如何定位网络问题

使用MTR定位问题的步骤

  1. 运行MTR测试:对问题目标运行MTR,收集足够样本(至少100个包)
  2. 观察丢包模式:如果某一跳开始出现持续丢包,问题可能在该跳或其上游
  3. 观察延迟变化:延迟突然增大的位置往往是瓶颈所在
  4. 区分真实丢包和ICMP限速:如果某一跳丢包但后续跳正常,通常是路由器限速ICMP

常见网络问题模式

模式一:最后一跳丢包

  • 现象:路径上所有路由器正常,只有目标主机丢包
  • 原因:目标服务器过载或防火墙限制

模式二:中间某跳开始丢包

  • 现象:从某一跳开始,后续所有跳都有丢包
  • 原因:该路由器或其上游链路存在问题

模式三:跨运营商延迟跳变

  • 现象:在运营商交界处延迟显著增加
  • 原因:跨运营商互联带宽不足

使用在线MTR工具

TCPTest提供在线MTR和路由追踪服务,具有以下优势:

  • 多节点测试:从不同地区同时进行路由追踪
  • 多运营商覆盖:覆盖电信、联通、移动等主要运营商
  • 可视化展示:直观显示路由路径和各跳性能
  • 历史对比:保存历史测试数据,便于追踪变化

总结

Traceroute和MTR是网络故障排查的重要工具。Traceroute适合快速了解网络路径,MTR适合深入分析网络质量。在实际工作中,建议先用Traceroute了解路径,再用MTR进行详细的性能分析。当问题涉及多个地区或运营商时,使用TCPTest等在线工具进行多节点测试可以获得更全面的诊断信息。

广告
广告

我们使用Cookie和类似技术来改善您的浏览体验、分析网站流量并展示个性化内容和广告。您可以查看我们的 隐私政策 了解详细信息。继续使用本网站即表示您同意我们使用Cookie。