Write by lyc at 2021-1-27
Linux mtr 命令详解

1.mtr 安装

mtr是个结合了 tracerouteping 的工具

1
$ yum install mtr -y

2.mtr 参数

  • -r, --report 已报告模式显示
  • -c COUNT 默认值是10,向目的主机发送10个 ICMP 包
  • --no-dns 忽略 rDNS 查找。主机的域名是通过反向 DNS 查找确定的
  • -h 提供帮助命令
  • -v 显示mtr的版本信息

如果我们不使用 -r, --report 参数, mtr 会不断的动态运行。在动态模式下, mtr 的输出结果表述每个主机的往返时间。大多数情况下,使用 --report 参数就可以提供足够的数据了。

1
$ mtr -r REMOTE_HOST

3.如何读懂 mtr 报告

分析 mtr 输出报告

如何读懂MTR报告

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ mtr -r 106.75.20.11
Start: Wed Jan 27 11:44:55 2021
HOST: vm10-5-0-9 Loss% Snt Last Avg Best Wrst StDev
1.|-- 10.196.175.73 0.0% 10 1.6 1.6 1.5 1.7 0.0
2.|-- 172.24.89.61 0.0% 10 54.1 32.4 5.2 58.6 23.6
3.|-- 172.24.35.41 0.0% 10 1.7 1.4 1.3 1.7 0.0
4.|-- 125.94.53.121 20.0% 10 4.7 5.1 4.5 8.4 1.2
5.|-- 121.14.0.57 0.0% 10 5.0 7.7 5.0 10.1 1.5
6.|-- 113.96.4.77 0.0% 10 4.2 7.2 4.0 16.2 4.8
7.|-- 202.97.100.9 0.0% 10 36.5 37.6 35.8 51.1 4.7
8.|-- 36.110.245.190 90.0% 10 37.9 37.9 37.9 37.9 0.0
9.|-- ??? 100.0 10 0.0 0.0 0.0 0.0 0.0
10.|-- 36.110.169.202 0.0% 10 42.1 43.5 41.4 60.2 5.8
11.|-- ??? 100.0 10 0.0 0.0 0.0 0.0 0.0
  • 第一列 HOST :每一跳的IP地址或域名
  • 第二列 Loss%:数据包在每一跳的丢失率
  • 第三列 Snt:记录的多少个数据包被送出,使用 --report 参数默认会送出10个数据包
  • 第四列 Last:显示的最近一次数据包的返回延迟,单位毫秒ms
  • 第五列 Avg:数据包延迟平均值
  • 第六列 Best:最好或者说延迟最短的
  • 第七列 Wrst:最差或者说延迟最长的
  • 第八列 StDev:是标准偏差

如何判断异常节点

我们做 mtr 测试,一般都需要进行双向 mtr 结合起来分析数据包往返所经过的路由节点。

在大多数情况下,您可以把 MTR 的输出分成三大块:

  • 前三跳一般都是您的本地 ISP
  • 中间的节点是数据包经过的广域网路由器
  • 后三跳一般为您目的主机的ISP

当您在本地运行 MTR,如果您在前几跳发现异常,请联系您本地的 ISP 服务提供商。

相反,如果您在接近目的地的几跳发现问题,请联系您目的地的服务器提供商。

如果您的问题出现在中间几跳,很不幸,两边的服务提供商的能力有限,可能不能完全为您解决问题。