如果Linux系统遇到网络连接不畅的问题是不是很头疼?今天就给大家分享一个实用的网络诊断工具——mtr命令,能轻松帮我们找到网络问题的症结所在。接下来,就一起深入了解Linux如何使用mtr命令进行网络诊断吧!

一、mtr命令是什么

mtr,也就是“My Traceroute”的缩写。简单来说,它是一个融合了ping和traceroute两个工具功能的网络诊断利器。ping命令大家应该不陌生,平时我们用它来测试和目标主机能不能正常连接,看看有没有数据包丢失、延迟高不高。traceroute命令则能帮我们查看数据包从自己的设备出发,一路到目标主机都经过了哪些“站点”,也就是网络路径。而mtr命令更厉害,它不仅能做到这些,还能对网络路径进行实时分析,帮助我们快速诊断网络连接出现的各种问题。

二、mtr命令的安装方法

在Linux系统中,不同的发行版安装mtr命令的方式稍有不同,下面就给大家分别介绍。

Debian/Ubuntu系统

在Debian或Ubuntu系统下,安装mtr命令很简单,只需在终端输入下面这条命令:

sudo apt install mtr -y 

这条命令前面的sudo是用来获取管理员权限的,因为安装软件需要管理员权限。apt是Debian和Ubuntu系统的包管理工具,负责处理软件的安装、卸载等操作。install就是安装的意思,后面跟着要安装的软件名mtr,最后的-y表示在安装过程中遇到任何确认提示,都自动选择“是”,这样就不用我们手动一个个确认啦。

RHEL/CentOS系统

RHEL和CentOS系统的安装命令和上面不太一样,在终端输入:

sudo yum install mtr -y 

这里的yum是这两个系统的包管理工具,和Debian、Ubuntu系统的apt类似,也是负责软件的安装、卸载等工作。整个命令的意思和Debian/Ubuntu系统下的差不多,同样是获取管理员权限后安装mtr软件,并自动确认安装过程中的提示。

Fedora系统

Fedora系统安装mtr命令也不难,使用下面这条命令:

sudo dnf install mtr -y 

dnf是Fedora系统的包管理工具,它是yum的升级版,功能更强大、性能也更好。这条命令同样是获取管理员权限后安装mtr,并且自动确认安装过程中的各种提示。

三、mtr命令的常见用法

安装好mtr命令后,就可以用它来诊断网络问题啦,下面给大家介绍一些常见的用法。

基础用法

mtr命令的基础用法很简单,只需要在命令后面跟上目标主机的域名或者IP地址就行,格式如下:

mtr <hostname/IP> 

比如说,我们想追踪数据包到google.com的网络路径,并且实时查看结果,就在终端输入:

mtr google.com 

执行这个命令后,会出现类似下面这样的输出:

 Host Loss% Snt Last Avg Best Wrst StDev 1. router.lan 0.0% 10 1.1 1.0 0.9 1.3 0.2 2. 192.168.1.1 0.0% 10 2.2 2.1 1.9 2.4 0.2 3. isp-gateway 0.0% 10 10.2 11.1 9.8 12.2 0.8 4. core-router 0.0% 10 20.1 21.3 19.8 23.2 1.1 5. google.com 0.0% 10 30.5 32.0 29.9 34.1 1.3 

这些输出内容都是啥意思呢?给大家解释一下:

  • Host:指的是数据包在传输过程中经过的路由器或者节点,也就是数据包的一个个“停靠站”。
  • Loss%:表示这一跳的数据包丢失比例,如果这个数值不为0,那就说明网络在这个节点可能有问题。
  • Snt:是已经发送出去的数据包数量。
  • Last:最近一个数据包的响应时间,单位是毫秒。
  • Avg:平均响应时间,同样是毫秒为单位,这个数值能反映一段时间内的网络延迟情况。
  • Best/Wrst:分别代表最佳和最差响应时间,从这两个数值可以看出网络延迟的波动范围。
  • StDev:标准差,用来衡量网络的稳定性,数值越小说明网络越稳定。

针对固定数量的数据包运行mtr

默认情况下,mtr命令会一直持续运行,不断地发送数据包测试网络。要是我们只想发送固定数量的数据包进行测试,测试完就停止,该怎么办呢?这时候就可以用-c <count>这个参数啦。比如,我们想发送10个数据包后就停止测试,命令如下:

mtr -c 10 google.com 

显示数字IP地址

通常,mtr命令会自动把目标主机的域名解析成IP地址再进行测试,要是我们不想看域名,只想直接看到IP地址,方便分析,就可以加上-n这个选项,命令如下:

mtr -n google.com 

显示为报告模式

有时候,我们不需要实时更新的测试结果,只想要一份一次性的测试报告就行。这时候,用-r选项就能实现,命令是这样的:

mtr -r google.com 

限制跳数

网络路径可能很长,如果我们不想让mtr命令一直检查下去,只想检查到一定的跳数就停止,就可以用-m参数来限制跳数。比如,我们只想检查前10跳的网络情况,命令如下:

mtr -m 10 google.com 

显示已发送和已接收的数据包

想知道到底发送了多少数据包,又成功接收了多少数据包吗?用-b选项就能实现,命令很简单:

mtr -b google.com 

显示每跳数据包数

要是你还想控制发送到每一跳的数据包数量,也没问题。可以结合-c参数和--report选项来实现,比如,我们想每一跳发送5个数据包,并且以报告模式显示结果,命令如下:

mtr -c 5 --report google.com 

四、mtr与ping、traceroute的对比

mtr命令这么厉害,那它和ping、traceroute命令比起来,有啥不一样呢?给大家列个表格,一看就清楚:

命令功能
ping主要用来测试和主机能不能连接上,还能看到数据包有没有丢失、延迟高不高。
traceroute能显示数据包从自己设备到目标主机都经过了哪些路径。
mtr把ping和traceroute的功能合二为一,还能实时统计网络数据,让我们对网络状况有更全面、更实时的了解。

好啦,关于Linux系统下mtr命令的网络诊断方法就介绍到这里啦。希望大家看完这篇文章,以后在Linux系统里遇到网络问题,都能用mtr命令轻松解决!要是你在使用过程中有啥问题,或者有啥好玩的使用经验,欢迎在评论区留言分享哦!