mtr命令

mtr 是一个强大的网络诊断工具,它的名字是 My Traceroute 的缩写。它结合了 pingtraceroute 两个经典命令的功能,能够实时地、持续地显示数据包从你的计算机到目标主机所经过的网络路径,并提供每一段路径的延迟、丢包等详细统计信息。


🧰 一、mtr 的核心功能

功能

说明

🔗 路径追踪

显示数据包从你这里到目标服务器经过的所有“跳”(路由器、网关等)。

📊 实时统计

不像传统 traceroute 只跑一次,mtr 会持续发送探测包,动态更新结果。

📈 延迟分析

显示每一跳的延迟(Last 最近一次、Avg 平均、Best 最佳、Wrst 最差、StDev 标准差)。

📉 丢包率检测

统计每一跳的丢包百分比(Loss%),帮助判断哪一段网络不稳定。

🎯 精确定位问题

哪一跳开始出现高延迟或高丢包,问题很可能就出在那一段链路上。


🖼️ 二、举个生活化的比喻

想象你要寄一封信从 天津广州

  • ping 就像:信能不能送到?来回要多久?

  • traceroute 就像:查一次物流记录,看信经过了哪些中转站(北京→郑州→长沙)。

  • mtr 就像:实时监控物流系统,持续观察每一段路程的运输时间、是否有包裹丢失、哪个中转站总是延误


📋 三、你刚才的 mtr 输出解读(简化版)

Host                                Loss%   Snt   Last   Avg  Best  Wrst StDev
1. _gateway                          0.0%    55    0.5   0.4   0.4   0.7   0.1   → 本地网关,正常
2. 192.168.18.1                      0.0%    55    0.9   0.9   0.7   1.9   0.2   → 内网设备,正常
3. dns1.online.tj.cn                21.8%    55    4.3   7.0   2.5  42.0   6.8   → 天津联通节点,开始丢包
...
7. 219.158.112.137                   5.5%    55    5.9   7.5   5.2  28.1   4.3   → 电信骨干网,稍好
8. 202.96.12.2                      85.5%    55    6.0   6.1   5.5   7.4   0.6   → 江苏电信,严重丢包
...
17. ecs-...hwclouds-dns.com          0.0%    54    9.6   9.5   8.6  15.1   1.2   → ✅ 最终到达目标,且无丢包

➡️ 结论:虽然中间很多“中转站”报告包裹丢失(可能是它们不回复探测),但最终信还是送到了,说明网络是通的,只是中间路径质量较差或设备不响应探测。


▶️ 四、如何使用 mtr

基本语法:

mtr [选项] 目标地址

常用示例:

# 基本用法
mtr google.com

# 只显示 IP,不解析域名
mtr -n google.com

# 使用 TCP 协议测试(绕过 ICMP 限制)
mtr --tcp --port 443 google.com

# 限制探测次数后自动退出(适合脚本)
mtr -c 10 google.com

⚠️ 五、注意事项

  • mtr 默认使用 ICMP 包,有些网络设备会限制或屏蔽 ICMP,导致“假丢包”。

  • 中间某些路由器可能不返回超时消息,所以看到 (waiting for reply) 并不一定代表网络不通。

  • 最终能到达目标且无丢包(如你的第17跳),通常说明网络是可达的


✅ 总结

mtr 是一个比 pingtraceroute 更强大、更直观的网络诊断工具,特别适合用来:

  • 排查网络延迟或丢包问题

  • 定位是本地、运营商还是对方服务器的问题

  • 判断网络链路的稳定性

如果你遇到“网络慢”、“连不上服务器”等问题,运行一个 mtr 往往能快速找到问题出在哪一段。

pathping 是 Windows 系统内置的一个强大的网络诊断命令,它结合了 pingtracert(即 Linux 下的 traceroute)的功能,专门用于分析数据包从源主机到目标主机所经过的路径,并精确统计每一跳的网络延迟和丢包情况

你可以把它理解为 Windows 版的 mtr(My Traceroute),但它是分阶段运行的,更加严谨。


Pathping命令

🧰 一、pathping 的核心功能

功能

说明

🔗 路径追踪

显示从你的电脑到目标服务器经过的所有路由器(跳数)。

📊 延迟分析

统计每一跳的往返时间(RTT),包括最小、最大、平均延迟。

📉 丢包检测

逐跳统计丢包率,能精确定位是哪一段网络出现了问题。

⏱️ 主动探测

先进行路由追踪,然后对每跳持续发送大量探测包,收集统计数据。


▶️ 二、pathping 的工作原理(两阶段)

🔹 第一阶段:路由发现(类似 tracert

  • pathping 首先执行一次路径追踪,确定从你到目标主机的所有中间节点(路由器)。

  • 它通过递增 TTL(Time to Live)值来发现每一跳的 IP 地址。

🔹 第二阶段:持续探测(类似 ping 的增强版)

  • 在确定路径后,pathping 会向每一跳发送大量 ICMP 请求包(默认持续 250 秒)。

  • 收集每个节点的响应情况,计算:

    • 每一跳的平均延迟

    • 每一跳的丢包率

  • 最终生成一份详细的报告。


📋 三、pathping 输出示例解析

C:\> pathping www.baidu.com

Tracing route to www.a.shifen.com [110.242.68.66]
over a maximum of 30 hops:
  0   PC-LOCAL
  1   192.168.1.1
  2   10.10.0.1
  3   123.123.123.123
  4   202.97.33.14
  5   202.97.8.1
  6   202.97.9.1
  7   110.242.68.66

Computing statistics for 250 seconds...
            Source  to  Here   This
 Hop  RTT    Lost/Sent = Pct  Node
  0                                   PC-LOCAL
                                 0/  100 =  0% |
  1    1ms     0/  100 =  0% |  192.168.1.1
  2    2ms     0/  100 =  0% |  10.10.0.1
  3    5ms     2/  100 =  2% |  123.123.123.123
  4   10ms    15/  100 = 15% |  202.97.33.14
  5   12ms    85/  100 = 85% |  202.97.8.1
  6   13ms     0/  100 =  0% |  202.97.9.1
  7   14ms     0/  100 =  0% |  110.242.68.66

Trace complete.

🔍 输出解读:

列名

含义

Hop

跳数,表示第几段网络

RTT

从源到该跳的平均往返延迟(毫秒)

Lost/Sent = Pct

在探测期间,该跳丢失的包数 / 发送总数 = 丢包率

Node

该跳的 IP 地址或主机名

关键判断

  • 第 1~2 跳:本地网络,延迟低、无丢包 ✅

  • 第 3 跳:开始轻微丢包(2%)⚠️

  • 第 4 跳:丢包 15%,网络质量下降 ⚠️

  • 第 5 跳:丢包高达 85%! ❌ 问题极可能出在这里(可能是运营商节点拥塞或限速)

  • 第 6~7 跳:恢复正常 → 说明目标服务器本身没问题


🛠️ 四、常用 pathping 命令参数

参数

说明

pathping www.baidu.com

基本用法,自动探测路径并统计

pathping -n www.baidu.com

不解析主机名,只显示 IP(加快速度)

pathping -h 20

设置最大跳数为 20(默认 30)

pathping -p 1000

每次探测间隔 1000 毫秒(1秒)

pathping -q 50

每跳发送 50 个查询包(默认约 100)

pathping -w 500

等待每个回复最多 500 毫秒

示例:快速不解析域名的测试

pathping -n -h 20 -q 50 www.google.com

⚠️ 五、注意事项

  1. 运行时间较长
    pathping 默认会运行 250 秒(约4分钟),因为它要收集足够数据。耐心等待最终报告。

  2. 需要管理员权限
    某些情况下需要以“管理员身份运行命令提示符”才能使用。

  3. ICMP 可能被屏蔽
    有些路由器或防火墙会屏蔽 ICMP 包,导致“假丢包”或无法显示某些节点。

  4. 仅限 Windows
    pathping 是 Windows 特有的命令,Linux/Unix 系统使用 mtr 实现类似功能。


✅ 六、适用场景(什么时候用 pathping?)

场景

是否适用

上网慢、视频卡顿

✅ 推荐使用,可定位瓶颈

无法访问某个网站

✅ 查看是中间链路问题还是目标问题

怀疑运营商网络问题

✅ 精确指出哪一跳丢包严重

简单测试通不通

❌ 用 ping 更快

快速查看路由路径

❌ 用 tracert 更快


🔄 七、与 mtr / ping / tracert 对比

命令

系统

特点

ping

所有

测试连通性和延迟,但不知道路径

tracert

Windows

显示路径,但只跑一次,不统计丢包

pathping

Windows

显示路径 + 逐跳丢包率,最全面

mtr

Linux/macOS

功能几乎等同于 pathping,但实时动态显示


✅ 总结

pathping 是 Windows 下最强大的网络路径分析工具之一,特别适合:

🔹 排查网络延迟高、卡顿、丢包问题
🔹 定位是本地、运营商还是对方服务器的问题
🔹 生成专业级网络诊断报告

📌 使用建议

  1. 遇到网络问题时,先 ping 看是否通;

  2. 再用 tracert 看路径;

  3. 最后用 pathping 做深入分析,找出具体哪一跳有问题。

如果你在 Windows 上想深入了解网络质量,pathping 是必学命令!