`
一、MTR简介
MTR是一种非常有用的工具。它结合了traceroute和ping两个命令的功能,可以提供更详细和实时的网络性能报告。
MTR代表 My Traceroute,是一个基于网络上ICMP协议的跟踪路由程序,用于诊断网络连接问题。在运行MTR时,它将发送数据包到目标主机并显示每个路由器的响应时间和丢包率,从而帮助用户确定网络中的瓶颈所在,并提供建议来解决这些问题。
MTR的使用非常简单,只需在终端输入 mtr <目标IP地址> 即可开始运行测试。默认情况下,MTR会连续运行测试,并显示每个路由器的IP地址、最小、平均和最大延迟(毫秒)以及丢包率。您也可以使用其他选项来控制测试的持续时间、数据包数等。
总之,MTR是一个非常方便、易于使用的网络诊断工具,可以帮助用户快速找到网络故障的根本原因。
官网:https://sourceforge.net/projects/winmtr/
二、MTR命令的基本用法
1.mtr命令参数
下面是一些常见的mtr命令参数:
-c <count>:设置要发送的数据包数。
mtr -c 10 google.com
-r:显示IP地址而不是主机名。
mtr -r google.com
-n:禁用DNS解析,只显示IP地址。
mtr -n 8.8.8.8
-b:以批处理模式运行,输出结果以可编辑格式打印。
mtr -b google.com > output.txt
-s <packet size>:设置要发送的ICMP数据包大小。
mtr -s 1500 google.com
-t <ttl>:设置初始TTL值。
mtr -t 5 google.com
-u:使用UDP协议而不是默认的ICMP协议。
mtr -u google.com
2.输出结果
当您在终端上运行mtr google.com命令时,将输出如下结果::
Start: Fri Jul 23 08:49:29 2021
HOST: your-PC Loss% Snt Last Avg Best Wrst StDev
1.|-- router.asus.com 0.0% 10 2.7 3.4 1.2 8.6 2.3
2.|-- 192.168.50.1 0.0% 10 1.9 4.5 1.9 18.6 5.1
3.|-- 172.17.128.1 0.0% 10 9.9 9.4 8.2 10.9 0.7
4.|-- 61.146.135.57 0.0% 10 11.4 12.0 9.9 16.1 1.9
5.|-- 61.146.82.253 0.0% 10 14.4 13.8 12.4 16.4 1.4
6.|-- 61.148.3.113 0.0% 10 13.3 13.5 12.5 14.6 0.4
7.|-- 219.158.40.53 0.0% 10 186.7 188.0 185.6 190.9 2.0
8.|-- 219.158.25.18 0.0% 10 187.4 188.1 186.6 191.7 1.6
9.|-- 203.208.60.237 0.0% 10 191.5 191.3 190.5 192.6 0.5
10.|-- 180.87.15.114 0.0% 10 193.7 192.7 190.3 196.6 2.1
11.|-- 108.170.250.97 0.0% 10 189.8 189.5 187.9 191.0 0.9
12.|-- 72.14.233.181 0.0% 10 190.3 190.9 189.6 194.9 1.7
13.|-- 172.253.67.176 0.0% 10 191.3 191.4 190.6 192.2 0.5
14.|-- ord30s28-in-f46.1e100.net 0.0% 10 214.3 215.7 213.2 220.7 2.4
这些英文单词通常用来描述一组数据的统计量。以下是它们的含义:
Avg:平均值,也称为算术平均数,计算方法是将所有数据相加并除以数据集中的观测次数。
Best:最佳值,通常指数据集中的最小值或最大值,具体取决于分析的问题和目的。
Wrst:最差值,通常指数据集中的最大值或最小值,具体取决于分析的问题和目的。
StDev:标准偏差,是测量数据集中数据离其平均值的距离的一种方式,它告诉我们数据分布的紧密程度。如果标准差较大,则表示数据点不集中于平均值周围;如果标准差较小,则表示数据点比较集中。
三、mtr命令使用场景
假设你的计算机无法访问特定网站,你可以使用mtr来查找问题所在。以下是如何使用mtr命令来测试并查找故障原因的示例:
打开终端并输入以下命令:mtr google.com
mtr将开始发送数据包,并显示每个路由器的IP地址、延迟和丢包率。
如果某个路由器显示高延迟或高丢包率,则可能存在网络瓶颈。您可以通过检查该路由器的IP地址来确定该路由器属于哪个ISP或互联网服务提供商。
您还可以使用mtr的选项来控制测试的持续时间、数据包数等。例如,您可以使用以下命令运行一个5分钟的测试:mtr --report-interval 30 --no-dns --num 600 google.com
在测试完成后,您可以根据mtr的报告来确定故障的原因,并采取适当的措施解决该问题。例如,如果MTR报告显示您的ISP存在延迟或丢包问题,则您可以与ISP联系并报告此问题以进行修复。
四、mtr命令和Traceroute的区别
mtr和traceroute都是网络诊断工具,它们的主要区别在于如何展示路由器路径和节点信息。
mtr可以连续地跟踪目标主机的网络性能,并提供实时更新的数据。它将目标主机作为固定的终点,并持续发送数据包,然后显示每个中间节点的延迟和丢包率。这使得用户可以快速确定哪些节点引起了性能问题。
Traceroute只会在第一次运行时显示每个节点的延迟。traceroute发送一个ICMP回显请求,并根据TTL值逐步减少到达目标主机的路由器数量。每当TTL值减少时,路由器会返回一个“超时”消息,其中包含有关该节点的延迟时间。Traceroute仅在首次调用时计算延迟,不会持续监控网络连接。
因此,mtr更适合长时间的网络监控和问题分析,而traceroute更适合单次测量和简单故障排除。