本文主要是介绍Linux网络诊断工具mtr命令详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
一、mtr概述
二、mtr的特点
1、动态路由显示
2、数据包类型
3、显示延迟和丢包
4、过滤和日志
5、网络探测
三、基本用法
1、基本语法
2、帮助
3、常用选项
四、输出解释
1、常见mtr命令及其输出
2、输出解释
四、命令实例
1. 最基本的用法
2. 显示报告形式的结果
3. 设置PING操作之间的时间间隔
4. 显示所有经过的节点的IP地址
5. 设置要发送的数据包数
6. 禁用DNS解析
7. 设置ICMP数据包大小
8. 使用UDP协议
9. 保存输出到文件
10. 批处理模式
11、多个选项同时使用
四、安装MTR
1、apt安装
2、yum安装
一、mtr概述
MTR是一个强大的网络诊断工具, MTR(My Traceroute)是一个结合了traceroute和ping功能的网络诊断工具,它能够提供路径探测和网络诊断服务。MTR通过发送ICMP或者UDP数据包来测试网络连接,并实时显示数据包所经过的路由器及其响应时间。
这个工具对于网络工程师和系统管理员来说非常有用,可以帮助他们识别网络延迟和丢包等问题;能够帮助他们详细地了解网络连接的质量和性能。
通过实时显示路径上的网络状况,MTR在诊断和解决网络问题方面非常有用。
二、mtr的特点
根据mtr的工作原理,概况下来,MTR网络工具有几个主要特点,下面分别描述。
1、动态路由显示
与传统的traceroute工具不同,MTR在运行时会持续显示路径上的网络状况,而不是只显示一次路径。这使得MTR在检测临时网络问题时非常有用。
2、数据包类型
MTR默认发送UDP数据包,但也可以配置为发送ICMP Echo请求(类似于ping命令)。
3、显示延迟和丢包
MTR显示每一跳的往返时间(RTT),并可以标记出数据包丢失的跳。
4、过滤和日志
MTR允许用户应用过滤器,以查看特定的路由器或网络段的信息。此外,MTR可以配置为将诊断结果保存到日志文件中。
5、网络探测
MTR可以在不同的网络协议和端口上运行,以适应不同的网络测试需求。
三、基本用法
1、基本语法
在Linux终端中输入mtr命令,然后指定要测试的域名或IP地址,如下命令格式:
mtr 目标IP或域名
2、帮助
在centos7的命令行中输入:
Mtr –help
显示如下帮助信息:
3、常用选项
-r
:报告模式。指定要发送的数据包数量,然后停止。例如,-r 10
将发送10个数据包然后停止。
-c
:连续模式。指定要发送的数据包数量,然后重新开始。这允许我们持续监视网络性能。
-i
:设置数据包之间的间隔时间(以秒为单位)。默认是1秒。
-s
:设置要发送的数据包大小(以字节为单位)。默认是50字节。
-u
:使用UDP而不是ICMP来探测。这有时可以绕过防火墙或某些网络设备的限制。
-P
:设置要使用的ICMP类型。默认为ICMP echo请求(类型8)。
四、输出解释
1、常见mtr命令及其输出
比如我们查看到 百度网站的网络状况,可以输入如下命令:
mtr www.baidu.com
运行后,MTR会开始显示数据包经过的路径,并实时更新每一跳的响应时间。如下图所示
2、输出解释
mtr的输出通常分为几个部分:
(1)Host:当前跳点的IP地址或主机名(如果可用)。
(2)Loss%:该跳点的丢包率。
(3)Snt:已发送的数据包数量。
(4)Last:最后一个数据包的往返时间(RTT)。
(5)Avg:所有数据包的平均RTT。
(6)Best:最佳(最小)RTT。
(7)Wrst:最差(最大)RTT。
(8)StDev:RTT的标准偏差。
四、命令实例
Mtr网络工具的常见用法例子很多,下面列举几个。
1. 最基本的用法
直接指定要诊断的目标主机名或IP地址。例如,要诊断到www.example.com的网络连通性,可以执行:
mtr www.example.com
2. 显示报告形式的结果
使用-r参数可以以报告的形式显示结果,便于阅读和分析。例如:
mtr -r www.example.com
3. 设置PING操作之间的时间间隔
如果需要找到网络中的瓶颈,可以使用-w参数来设置PING操作之间的时间间隔。例如,每1秒发送一个PING请求:
mtr -w 1 www.example.com
4. 显示所有经过的节点的IP地址
使用-d参数可以显示所有经过的节点的IP地址,不进行名称解析。这在某些情况下可能更有用,因为名称解析可能会增加延迟或失败。例如:
mtr -d www.example.com
5. 设置要发送的数据包数
使用-c参数可以设置要发送的数据包数。默认情况下,mtr会发送一定数量的数据包以获取更准确的统计信息。例如,发送10个数据包:
mtr -c 10 www.example.com
6. 禁用DNS解析
使用-n参数可以禁用DNS解析,只显示IP地址。这在某些情况下可能更有用,例如当DNS解析失败或缓慢时。例如:
mtr -n 8.8.8.8
7. 设置ICMP数据包大小
使用-s参数可以设置要发送的ICMP数据包大小。这有助于检测是否存在MTU(最大传输单元)问题。例如,发送1500字节的数据包:
mtr -s 1500 www.example.com
8. 使用UDP协议
默认情况下,mtr使用ICMP协议进行探测。但是,某些网络可能阻止ICMP数据包。在这种情况下,可以使用-u参数使mtr使用UDP协议进行探测。例如:
mtr -u www.example.com
9. 保存输出到文件
可以使用重定向操作符(>)将mtr的输出保存到文件中,以便稍后分析。例如:
mtr www.example.com > mtr_output.txt
10. 批处理模式
使用-b参数可以以批处理模式运行mtr,输出结果以可编辑格式打印。这有助于将输出导入到其他工具或脚本中进行进一步处理。例如:
mtr -b www.example.com > output.txt
11、多个选项同时使用
MTR也支持许多高级配置选项,例如指定数据包大小、跳数、端口等。这些选项可以通过命令行参数或配置文件进行设置。例如:
mtr -s 100 -p 80 www.example.com
这条命令指定了数据包大小为100字节,并指定测试端口为80。
四、安装MTR
在大多数Linux发行版中,MTR可以通过包管理器安装。
1、apt安装
例如,在Debian和Ubuntu上,可以使用以下命令:
sudo apt-get install mtr
2、yum安装
在Red Hat和CentOS上,可以使用:
sudo yum install mtr
在centos7上实际操作如下:
[root@ecs-52a1 /]#
[root@ecs-52a1 /]# mtr --h
bash: mtr: command not found
[root@ecs-52a1 /]# sudo yum install mtr
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
base | 3.6 kB 00:00:00
epel | 4.3 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
(1/2): epel/x86_64/updateinfo | 1.0 MB 00:00:00
(2/2): epel/x86_64/primary_db | 8.7 MB 00:00:00
Resolving Dependencies
--> Running transaction check
---> Package mtr.x86_64 2:0.85-7.el7 will be installed
--> Finished Dependency ResolutionDependencies Resolved==============================================================================================================================================================Package Arch Version Repository Size
==============================================================================================================================================================
Installing:mtr x86_64 2:0.85-7.el7 base 71 kTransaction Summary
==============================================================================================================================================================
Install 1 PackageTotal download size: 71 k
Installed size: 128 k
Is this ok [y/d/N]: y
Downloading packages:
mtr-0.85-7.el7.x86_64.rpm | 71 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transactionInstalling : 2:mtr-0.85-7.el7.x86_64 1/1Verifying : 2:mtr-0.85-7.el7.x86_64 1/1Installed:mtr.x86_64 2:0.85-7.el7Complete!
[root@ecs-52a1 /]#
[root@ecs-52a1 /]#
[root@ecs-52a1 /]# mtr --h
usage: mtr [-BfhvrwctglxspQomniuT46] [--help] [--version] [--report][--report-wide] [--report-cycles=COUNT] [--curses] [--gtk][--csv|-C] [--raw] [--xml] [--split] [--mpls] [--no-dns] [--show-ips][--address interface] [--filename=FILE|-F][--ipinfo=item_no|-y item_no][--aslookup|-z][--psize=bytes/-s bytes] [--order fields][--report-wide|-w] [--inet] [--inet6] [--max-ttl=NUM] [--first-ttl=NUM][--bitpattern=NUM] [--tos=NUM] [--udp] [--tcp] [--port=PORT] [--timeout=SECONDS][--interval=SECONDS] HOSTNAME
[root@ecs-52a1 /]#
由此可以看出,开始并没有安装mtr,安装好以后,使用mtr --h可以正确查看帮助信息。
文章正下方可以看到我的联系方式:鼠标“点击” 下面的 “威迪斯特-就是video system 微信名片”字样,就会出现我的二维码,欢迎沟通探讨。
这篇关于Linux网络诊断工具mtr命令详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!