Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >网络排查工具MTR介绍

网络排查工具MTR介绍

原创
作者头像
苏欣
修改于 2020-01-20 01:32:58
修改于 2020-01-20 01:32:58
22.5K20
代码可运行
举报
运行总次数:0
代码可运行

常用的 ping,tracert,nslookup 一般用来判断主机的网络连通性,其实 Linux 下有一个更好用的网络联通性判断工具,它可以结合ping nslookup tracert 来判断网络的相关特性,这个命令就是 mtr。mtr 全称 my traceroute,是一个把 ping 和 traceroute 合并到一个程序的网络诊断工具。

traceroute默认使用UDP数据包探测,而mtr默认使用ICMP报文探测,ICMP在某些路由节点的优先级要比其他数据包低,所以测试得到的数据可能低于实际情况。

安装方法

1.Windows系统可以直接在https://cdn.ipip.net/17mon/besttrace.exe下载BestTrace工具并安装。也可以在https://github.com/oott123/WinMTR/releases GitHub上下载MTR专用工具,该工具为免安装,下载后可以直接使用。

2.Linux可以直接运行命令进行安装。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Debian/Ubuntu 系统
sudo apt install mtr
RedHat/CentOS 系统
sudo yum install mtr 

3.Apple客户端可以在App store搜索Best NetTools下载安装

4.Android客户端:可以在Google Play上下载TracePing,但是由于国内Google Play无法访问,笔者自行下载下来,可以直接访问 https://dwz.cn/KCdNPH4c 下载TracePing。

使用

MTR使用非常简单,查看本机到 qq.com 的路由以及连接情况直接运行如下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mtr qq.com
MTR qq.com 测试界面
MTR qq.com 测试界面

具体输出的参数含义为:

  • 第一列是IP地址
  • 丢包率:Loss
  • 已发送的包数:Snt
  • 最后一个包的延时:Last
  • 平均延时:Avg
  • 最低延时:Best
  • 最差延时:Wrst
  • 方差(稳定性):StDev

参数说明

-r or --report

使用 mtr -r qq.com 来打印报告,如果不使用 -r or --report 参数 mtr 会不断动态运行。使用 report 选项, mtr 会向 qq.com 主机发送 10 个 ICMP 包,然后直接输出结果。通常情况下 mtr 需要几秒钟时间来输出报告。mtr 报告由一系列跳数组成,每一跳意味着数据包通过节点或者路由器来达到目的主机。

一般情况下 mtr 前几跳都是本地 ISP,后几跳属于服务商比如 腾讯数据中心,中间跳数则是中间节点,如果发现前几跳异常,需要联系本地 ISP 服务提供上,相反如果后几跳出现问题,则需要联系服务提供商,中间几跳出现问题,则需要联系运营商进行处理

默认使用 -r 参数来生成报告,只会发送10个数据包,如果想要自定义数据包数量,可以使用 -c 参数

-s or --packetsize

使用 -s 来指定ping数据包的大小

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mtr -s 100 qq.com

100 bytes 数据包会用来发送,测试,如果设置为负数,则每一次发送的数据包的大小都会是一个随机数。

-c

指定发送数量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mtr -c 100 qq.com

-n

不进行主机解释

使用 -n 选项来让 mtr 只输出 IP,而不对主机 host name 进行解释

mtr -n qq.com

MTR结果分析

当我们分析 MTR 报告时候,最好找出每一跳的任何问题。除了可以查看两个服务器之间的路径之外,MTR 在它的七列数据中提供了很多有价值的数据统计报告。 Loss% 列展示了数据包在每一跳的丢失率。 Snt 列记录的多少个数据包被送出。 使用 –report 参数默认会送出10个数据包。如果使用 –report-cycles=[number-of-packets] 选项,MTR 就会按照 [number-of-packets] 指定的数量发出 ICMP 数据包。

Last, Avg, Best 和 Wrst 列都标识数据包往返的时间,使用的是毫秒( ms )单位表示。 Last 表示最后一个数据包所用的时间, Avg 表示评价时间, Best 和 Wrst 表示最小和最大时间。在大多数情况下,平均时间( Avg)列需要我们特别注意。

最后一列 StDev 提供了数据包在每个主机的标准偏差。如果标准偏差越高,说明数据包在这个节点的延时越不相同。标准偏差会让您了解到平均延时是否是真的延时时间的中心点,或者测量数据受到某些问题的干扰。

例如,如果标准偏差很大,说明数据包的延迟是不确定的。一些数据包延迟很小(例如:25ms),另一些数据包延迟很大(例如:350ms)。当10个数据包全部发出后,得到的平均延迟可能是正常的,但是平均延迟是不能很好的反应实际情况的。如果标准偏差很高,使用最好和最坏的延迟来确定平均延迟是一个较好的方案。

在大多数情况下,您可以把 MTR 的输出分成三大块。根据配置,第二或第三跳一般都是您的本地 ISP,倒数第二或第三跳一般为您目的主机的ISP。中间的节点是数据包经过的路由器。

当分析 MTR 的输出时,您需要注意两点: loss 和 latency。

网络丢包

如果在任何一跳上看到 loss 的百分比,这就说明这一跳上可能有问题了。当然,很多服务提供商人为限制 ICMP 发送的速率,这也会导致此问题。那么如何才能指定是人为的限制 ICMP 传输 还是确定有丢包的现象?此时需要查看下一跳。如果下一跳没有丢包现象,说明上一条是人为限制的。如下示例:

人为限制MTR丢包
人为限制MTR丢包

在此例中,第4跳发生了丢包现象,但是接下来几条都没任何丢包现象,说明第二跳的丢包是人为限制的。如果在接下来的几条中都有丢包,那就可能是第二跳有问题了。请记住,ICMP 包的速率限制和丢失可能会同时发生。

MTR丢包截图
MTR丢包截图

从上面的图中,您可以看从第13跳和第17跳都有 10% 的丢包率,从接下来的几跳都有丢包现象,但是最后15,16跳都是100%的丢包率,我们可以猜测到100%的丢包率除了网络糟糕的原因之前还有人为限制 ICMP。所以,当我们看到不同的丢包率时,通常要以最后几跳为准。

还有很多时候问题是在数据包返回途中发生的。数据包可以成功的到达目的主机,但是返回过程中遇到“困难”了。所以,当问题发生后,我们通常需要收集反方向的 MTR 报告。

此外,互联网设施的维护或短暂的网络拥挤可能会带来短暂的丢包率,当出现短暂的10%丢包率时候,不必担心,应用层的程序会弥补这点损失。

网络延迟

除了可以通过MTR报告查看丢包率,我们也还可以看到本地到目的之间的时延。因为是不通的位置,延迟通常会随着条数的增加而增加。所以,延迟通常取决于节点之间的物理距离和线路质量。

MTR查看网络延迟
MTR查看网络延迟

从上面的MTR报告截图中,我们可以看到从第11跳到12跳的延迟猛增,直接导致了后面的延迟也很大,一般有可能是11跳到12跳属于不通地域,物理距离导致时延猛增,也有可能是第12条的路由器配置不当,或者是线路拥塞。需要具体问题进行具体的分析。

然而,高延迟并不一定意味着当前路由器有问题。延迟很大的原因也有可能是在返回过程中引发的。从这份报告的截图看不到返回的路径,返回的路径可能是完全不同的线路,所以一般需要进行双向MTR测试。

注:ICMP 速率限制也可能会增加延迟,但是一般可以查看最后一条的时间延迟来判断是否是上述情况。

根据MTR结果解决网络问题

MTR 报告显示的路由问题大都是暂时性的。很多问题在24小时内都被解决了。大多数情况下,如果您发现了路由问题,ISP 提供商已经监视到并且正在解决中了。当您经历网络问题后,可以选择提醒您的 ISP 提供商。当联系您的提供商时,需要发送一下 MTR 报告和相关的数据。没有有用的数据,提供商是没有办法去解决问题的。

然而大多数情况下,路由问题是比较少见的。比较常见的是因为物理距离太长,或者上网高峰,导致网络变的很慢。尤其是跨越大西洋和太平洋的时候,网络有时候会变的很慢。这种情况下,建议就近接入客户的节点。

如果在腾讯云上有网络的问题,且不能解读MTR的报告,可以直接联系腾讯云相关售后人员进行处理。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
2 条评论
热度
最新
TracePing https://play.google.com/store/apps/details?id=com.inflim.trp
TracePing https://play.google.com/store/apps/details?id=com.inflim.trp
11点赞举报
下载试用了下,有MTR功能,感谢!
下载试用了下,有MTR功能,感谢!
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
Linux Ubuntu / CentOS / MacOS 等系统安装使用 MTR 以及阅读分析 MTR 报告教程
网络诊断工具包括ping、traceroute以及mtr,主要都是通过发送 ICMP 包,来测试网络连通性。简单地说,mtr集成了ping和traceroute,使用更为方便。本文介绍 MTR 安装、使用教程,以及 MTR 报告的阅读和分析方法。
搬砖部落
2020/09/25
9.9K0
MTR工具使用说明文档
Mtr是一个将“traceroute”和“ping”程序功能结合在一起的一个网络诊断工具。
Hunter
2018/02/02
34.3K12
MTR工具使用说明文档
MTR 网络诊断工具
今天线上业务出现了大量语音合成问题,本以为是服务出问题,但是经过排查发现服务一切正常就是合成的特别慢,在TTS语音合成服务那边也没有大量的任务堆积,这边也一直再发送需要合成的数据过去,这种情况只能说明在传输需要合成的语句的时候出现了问题,这时候第一个排查的就是网络问题,可能是网络大量丢包造成的数据传输问题,于是开始使用ping命令查看,发现确实有丢包,但是通过ping又没有办法发现是哪个地方丢包,这个时候聪明的你肯定想到我们用traceroute命令来检测数据包传输到哪个地方不传了,但是我发现这个并不能说明什么,因为丢包不是完全丢,而是丢一部分,这个时候想有没有一个命令是ping和traceroute的合体,于是google了一下,发现mtr刚好满足我的需求,于是使用记录并分享.
张琳兮
2019/03/14
3.7K0
如何使用 mtr 命令来诊断网络延迟问题
mtr(My Traceroute)命令是一种网络诊断工具,它结合了ping和traceroute的功能,用于分析网络连接的路径和质量。
程序熵
2024/09/17
3940
如何使用 mtr 命令来诊断网络延迟问题
linux系统如何安装使用MTR收集路径测试信息?
MTR(全称My TraceRoute)是Linux系统中一个强大的网络诊断工具,它结合了traceroute(路径追踪)和ping(持续探测)的功能,能够实时分析网络路径的性能问题。
子沐u
2025/03/21
4301
linux系统如何安装使用MTR收集路径测试信息?
Linux系统之mtr命令的基本使用
在大多数Linux发行版中,mtr可能已经预装。如果没有,你可以使用包管理器安装它,例如:
江湖有缘
2024/06/20
3160
Linux系统之mtr命令的基本使用
linux网络95值工具,Linux下网络故障排查工具之ping|traceroute和tcptraceroute|mtr工具[通俗易懂]
服务器运维人员在日常运维服务器的过程中经常会遇到服务器网络故障,有服务器硬件造成的,也有服务商网络问题造成的,也有区域网络问题造成的,这个时候就需要用到ping,traceroute,mtr这三个命令
全栈程序员站长
2022/08/31
1.7K0
这款网络排查工具,堪称神器!
MTR是一款非常好用的网络分析工具。相信好多人都用过,因为个人工作中需要经常用到分析网络状况,加之它非常简单实用,今天民工哥给大家介绍并推荐一下。
民工哥
2020/09/15
2.1K0
这款网络排查工具,堪称神器!
CentOS下网络路由追踪软件mtr及besttrace
MTR是Linux平台上一款非常好用的网络诊断工具,或者说网络连通性判断工具,集成了traceroute、ping、nslookup的功能,用于诊断网络状态,可以实时显示经过的每一跳路由的信息,并不断进行探测,可以做路由图供我们分析哪里出现故障或者是否存在有网络拥塞的情况
yuanfan2012
2020/02/19
5.5K0
CentOS下网络路由追踪软件mtr及besttrace
牛逼运维常用的工具系列-1
nali,名字看起来就是中文"哪里"的,该工具主要功能就是识别IP,附加地理位置信息,安装之后,包含一下命令
李俊鹏
2021/02/23
8740
牛逼运维常用的工具系列-1
mtr使用详解
当客户端访问目标服务器或负载均衡,使用ping命令测试出现丢包或不通时,可以通过MTR等工具进行链路测试来判断问题来源。
阿dai学长
2019/07/01
7.4K1
Zabbix MTR 链路质量检测 主备链路监控
注意: 如提示 "mtr: unable to get raw sockets" 则 mtr 脚本使用 zabbix 外部检查时 zabbix-server 需要使用 root 用户运行
Kevin song
2020/08/06
2.8K0
Linux命令之ping、traceroute、mtr——查看网络状态
ping、traceroute、mtr这三个都是Linux下查看本机或服务器网络状态等所用的命令,下面一一介绍:
浩Coding
2019/07/03
37.8K0
服务器mtr链路测试工具使用方法详解
服务器ping不通或者出现丢包等现象可以使用mtr工具来测试网络链路及路由诊断,服务器百科网来说说mtr使用的方法及mtr测试结果数值说明:
上云小秘书
2019/12/05
6.2K1
网络配置信息查看命令一览表
描述:查看路由设置与路由跟踪,用户发出的数据包经过多个网关、路由器传送到目的地,目标的主机回应此数据包,将响应数据包,返回完成用户和网上主机的交互。
全栈工程师修炼指南
2020/10/26
4.4K0
网络配置信息查看命令一览表
Kubernetes 网络排错中文指南
本文将引入一个思路:“在 Kubernetes 集群发生网络异常时如何排查”。文章将引入 Kubernetes 集群中网络排查的思路,包含网络异常模型,常用工具,并且提出一些案例以供学习。
杰哥的IT之旅
2022/12/06
3.5K0
Kubernetes 网络排错中文指南
网络配置信息查看命令一览表
描述:查看路由设置与路由跟踪,用户发出的数据包经过多个网关、路由器传送到目的地,目标的主机回应此数据包,将响应数据包,返回完成用户和网上主机的交互。
全栈工程师修炼指南
2022/09/29
3.8K0
网络配置信息查看命令一览表
关于网络的总结-命令篇2
Mtr是 Linux中有一个非常棒的网络连通性判断工具,它结合了ping, traceroute,nslookup 的相关特性。
用户8851537
2021/07/27
7470
Traceroute网络排障实用指南(1)
一、概述 1.1 什么是Traceroute 当遇到网络问题,通常会用Traceroute去排查,但Traceroute是什么? 根据百度百科定义,Traceroute是一种电脑网络工具,它可显示数据包在IP网络经过的路由器的IP地址。 Traceroute有三大特点: 跨平台。Traceroute工具存在与各个操作系统平台,包括主流系统MAC OS、Windows、Linux、Android、IOS等; 使用方便。只要在Traceroute后输入IP或域名即可; 信息全面。Traceroute能够显示跳数
小小科
2018/05/02
2.6K0
Traceroute网络排障实用指南(1)
云网络运维常用命令工具
ping 命令是基于 ICMP 协议来工作的,ICMP全称为 Internet 控制报文协议(Internet Control Message Protocol)。ping 命令会发送一份ICMP回显请求报文给目标主机,并等待目标主机返回ICMP回显应答。因为ICMP协议会要求目标主机在收到消息之后,必须返回ICMP应答消息给源主机,如果源主机在一定时间内收到了目标主机的应答,则表明两台主机之间网络是可达的。除了监测是否可达以外,还可以利用应答时间和发起时间之间的差值,计算出数据包的延迟耗时。
Ching云服务杂论
2020/07/06
5.4K0
相关推荐
Linux Ubuntu / CentOS / MacOS 等系统安装使用 MTR 以及阅读分析 MTR 报告教程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验