Internet上有许多小型网络测试工具:Ping、Traceroute、Dig、Host等。
但是,这些工具的功能都比较单一。今天会给大家分享一个包含ping和traceroute功能的工具:MTR
什么是MTR?
MTR(My TraceRoute或Matt’s TraceRoute)是一个网络诊断工具,结合了traceroute和ping的功能,用于诊断网络连接中的问题。在Linux系统中,MTR是一个强大的命令行工具,可提供非常详细的网络跟踪信息。
MTR可以提供哪些功能
MTR命令为可以实现以下功能:
- 路由跟踪(Traceroute)
MTR可以跟踪数据包在网络中的传输路径,显示数据包经过的每个节点(路由器)以及到达目的地的延迟情况。 - 网络延迟测量
MTR能够测量每个跃点(路由器)的延迟,并输出每个跃点的往返时间(RTT)和丢包率。 - 连续性测试
通过连续发送数据包并检查回应,MTR可以持续测试网络连接的连通性,并监测网络节点的稳定性。 - 路径变化检测
MTR可以检测网络路径的变化,比如发生路由器故障或网络拓扑结构变化时,它能追踪路径变化的发生和影响。 - 反向路由显示
MTR能够显示反向路由信息,提供数据包返回的路由路径。 - 故障定位与网络分析
通过分析MTR输出,可以帮助定位网络连接问题,诊断网络故障并进行网络性能分析。 - 可定制性
MTR提供了多种选项和参数,可以根据需要调整跟踪的数据包数量、间隔时间、数据包大小等,以进行更精确的测试和分析。
Linux MTR可用选项
MTR可以在Windows、macOS、Linux上使用,今天主要分享在Linux中如何使用MTR。
如下是Linux上MTR命令的所有可用选项:
Option | Description |
---|---|
-h–help | Show all the available options. |
-v–version | Show the version of the MTR command. |
-r–report | This starts the report mode. In this mode, it will run the specified by “–c” number of times and show statistics at the end. |
-w–report-wide | Wide report mode. The difference with the previous is that it won’t cut hostnames in the report. |
-c COUNT–report-cycles COUNT | Specify the number of pings. |
-s BYTES–psize BYTES PACKETSIZE | Set the size of the packets. If set to a negative number, it will send packets of random size. |
-t–curses | Force curses-based terminal interface. |
-n–no-dns | Show numeric IP numbers and no hostname resolving. |
-g–gtk | Force GTK+ interface. |
-p–split | Set the mtr command for the split-user interface. |
-l–raw | With the letter “L”, you can set the use of the raw output format. |
-a IP.ADD.RE.SS–address IP.ADD.RE.SS | Bing outgoing packets’ sockets to a particular interface. |
-i SECONDS–interval SECONDS | Set the time in seconds between each ICMP ECHO request. |
-u | Force UDP use instead of ICMP ECHO. |
-4 | Force IPv4 only. |
-6 | Force IPv6 only. |
Linux MTR用法
mtr baidu.com
显示基本统计信息:每一跳(主机名)的时间和丢包率。packets 和 pings 数据会实时更新。
mtr -g baidu.com
增加“-g”参数,只显示IP地址,不显示主机名称。这样可以方便将IP地址和其他信息整合到一起分析。
mtr -b baidu.com
可以看到主机名和IP地址。地址在括号内。
mtr -c 10 baidu.com
在设置要发送的ping数(在本例中为10)。您可以将其设置为一个较大的数字,如1000,以便长时间检测网络连接情况。
mtr -rw -c 10 baidu.com >>mtr-google-log
或者
mtr -r -c 10 baidu.com >>mtr-google-log
获取MTR的输出内容,用“-r”或者“-rw”表示,>括号后表示输出的文件名。
mtr -i 10 baidu.com
“-c”参数设置ping的数量,“-i”参数设置ICMP ECHO ping之间的时间间隔。
mtr –T baidu.com
强制使用TCP协议而不是ICMP协议。“T”是大写。
mtr –u baidu.com
强制使用UDP协议而不是ICMP协议。“u”是小写。
mtr -m 35 216.58.223.78
–max-ttl NUMBER,最大跳数
mtr -r -s 50 baidu.com
可以定义ping的特定数据包大小。在这个MTR命令范例中,我们使用50个字节用于测试。
mtr –C baidu.com
MTR的输出结果可以用CSV格式文件保存。“C”是大写。
mtr –x baidu.com
MTR的输出结果可以用XML格式文件保存。
man mtr ##或者
mtr -help ## 获取帮助
这两个命令可以为您提供有关MTR命令以及如何使用它的更多信息,如果您忘记MTR的用法,可以使用这两个指令帮助获取MTR的用法。
MTR是一个功能强大但用途广泛的网络监视和故障排除命令,与Traceroute、Ping、Nslookup、Host和Dig结合使用,您可以对网络架构、网络品质等有一个完整了解。