MTR: 网络排查神器 / 网络诊断工具介绍

news/2025/2/6 17:54:11/文章来源:https://www.cnblogs.com/o-O-oO/p/18514466

原创 晓致知 电脑知识

MTR(My Traceroute)是一款功能全面且高效的网络诊断工具,它巧妙地将traceroute和ping的功能融为一体。通过MTR,用户可以实时追踪数据包在网络中的传输路径,清晰地看到数据包从源地址到目标地址所经过的所有节点。同时,MTR还能提供详细的网络性能指标,包括丢包率、延迟(包括平均值、最小值、最大值和标准偏差)等,这些指标对于评估网络连接的质量和稳定性至关重要。Linux版本的mtr命令默认发送ICMP数据包进行链路探测。可以通过“-u”参数来指定使用UDP数据包用于探测。相对于traceroute命令只会做一次链路跟踪测试,mtr命令会对链路上的相关节点做持续探测并给出相应的统计信息。所以,mtr命令能避免节点波动对测试结果的影响,所以其测试结果更正确,建议优先使用。

一、MTR工具的安装

Linux系统:在大多数Linux发行版中,MTR已经预装。如果没有预装,可以通过包管理器进行安装。例如,在基于Debian的系统(如Ubuntu)上,可以使用sudo apt-get install mtr命令进行安装;在基于RHEL的系统(如CentOS)上,可以使用sudo yum install mtr命令进行安装。

# CentOs 操作系统 
yum install mtr
# Ubuntu 操作系统:
sudo apt-get install mtr

Windows系统:对于Windows系统,有一个名为“WinMTR”的MTR端口。用户可以从WinMTR的官方网站下载并安装此应用程序。

二、MTR工具的基本用法

基本语法:在终端或命令提示符中输入mtr 目标IP或域名,然后按回车键即可开始诊断。

常用选项:


-r或--report:以报告模式显示输出,便于阅读和分析。-c:指定每次追踪的数据包数量。-i:设置数据包之间的间隔时间(以秒为单位)。-s:设置要发送的数据包大小(以字节为单位)。-u:使用UDP而不是ICMP来探测,这有时可以绕过防火墙或某些网络设备的限制。-n或--no-dns:不对IP地址做域名反解析,只显示IP地址。-4:只使用IPv4协议。-6:只使用IPv6协议。

三、MTR工具的输出解释

MTR工具的输出结果通常包含多列数据,每列数据的含义如下:

Host:节点IP地址和域名(如果启用了DNS解析)。按n键可以切换显示IP地址或域名。

Loss%:节点丢包率,表示在该节点处丢失的数据包比例。

Snt:每秒发送数据包数,默认值是10,可以通过-c参数指定。

Last:最近一次的探测延迟值,表示数据包从源主机到该节点的最后一次往返时间。

Avg:探测延迟的平均值,表示自链路测试以来所有探测的平均往返时间。

Best:探测延迟的最小值,表示数据包从源主机到该节点的最短往返时间。

Wrst:探测延迟的最大值,表示数据包从源主机到该节点的最长往返时间。

StDev:标准偏差,表示数据包在相应节点的延时值的离散程度。标准偏差越大,说明相应节点越不稳定。

MTR的输出结果直观易懂,用户可以通过分析这些数据,快速定位网络中的瓶颈或潜在问题。无论是网络管理员还是技术人员,都可以利用MTR来排查网络延迟、丢包等故障,优化网络性能,确保网络服务的稳定性和可靠性。因此,MTR无疑是网络诊断领域中的一款得力助手,它能够帮助用户全面了解网络连接的情况,为网络维护和优化提供有力的支持。MTR检测结果主要看丢包率、平均延迟和延迟偏差这几项。优先看目标主机的情况,也就是最后一跳。如果没有丢包,延迟和波动值在正常区间。即使往前跃点有丢包或超时,也不一定表示有故障。因为可能受到节点 ICMP速率限制或丢弃ICMP包影响,特别是当只有个别跃点这样显示时可能性尤其大。如果多个跃点出现丢包,并且不是短暂高峰时段网络拥堵才出现,影响了到目标主机的质量。那么就需根据丢包节点联系相关方解决。

四、MTR工具的使用实例

基本使用:在终端或命令提示符中输入mtr www.example.com,然后按回车键,即可开始诊断到www.example.com的网络连接质量。

以报告模式显示输出:使用-r参数可以以报告的形式显示结果,便于阅读和分析。例如,输入mtr -r www.example.com。

设置PING操作之间的时间间隔:使用-i参数可以设置PING操作之间的时间间隔。例如,每2秒发送一个PING请求,可以输入mtr -i 2 www.example.com。

禁用DNS解析:使用-n参数可以禁用DNS解析,只显示IP地址。例如,输入mtr -n 8.8.8.8

保存输出到文件:可以使用重定向操作符(>)将MTR的输出保存到文件中,以便稍后分析。例如,输入mtr www.example.com > mtr_output.txt。

五、MTR工具的结果分析

网络区域分析:通过分析MTR的输出结果,可以了解数据包从源主机到目标主机所经过的网络区域,包括客户端本地网络、运营商网络和目标服务器本地网络等。

丢包率和延迟分析:重点关注Loss%(丢包率)和延迟(Avg、Best、Wrst)等列的数据。高丢包率或高延迟可能表示网络连接存在问题。

链路负载均衡分析:如果中间链路某些部分启用了链路负载均衡,则MTR命令只会对首尾节点进行编号和探测统计。中间节点只会显示相应的IP或域名信息。此时,可以结合Avg(平均值)和StDev(标准偏差)综合判断网络质量。

异常节点定位:通过对比不同节点的数据,可以定位出异常节点。然后,可以进一步查询该节点的归属运营商及网络,以便采取相应的解决措施。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/826156.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

随想

日复又一日,重复再重复。

相册

国风版,相册 好看的你

锋利的在线诊断工具——Arthas

导航前言 火线告警,CPU飚了 服务重启,迅速救火 黑盒:无尽的猜测和不安 Arthas:锋利的Java诊断工具 在线追踪Cpu占比高的代码段 代码重构,星夜上线,稳了 结语 参考肮脏的代码必须重构,但漂亮的代码也需要很多重构。前言 有些代码在当初编写的时候是非常稳健的,但是随着数…

制作一个ai丛雨(附Python代码)

绫,再一次,再一次创造一个有你的世界😭开一个随笔记录一下我的第一版ai老婆,目前只有普通对话和切换背景的功能(后面可能会加一个选人物功能)先放一个效果图(看起来还行)代码和注意事项都放在了下面,应该没什么大问题,复制粘贴导包就能用了注意事项: 1、代码推荐使…

东方娱乐周刊

学科领域: 人文社科-教育学、文学、艺术、体育、人文社科:其他@目录一、征稿简介二、重要信息三、服务简述四、投稿须知 一、征稿简介二、重要信息期刊官网:https://ais.cn/u/3eEJNv三、服务简述 学科领域: 人文社科-教育学、文学、艺术、体育、人文社科:其他 四、投稿须知…

2024-2025-1 学号20241315《计算机基础与程序设计》第六周学习总结

作业信息这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计这个作业要求在哪里 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK06这个作业的目标 Polya如何解决问题 简单类型与组合类型 复合数据结构 查找与排序算法 算法复杂度 递归 代码安全作业正文 https://www…

Foods

生物活性化合物是食物中天然存在的物质,除了基本营养外,还能提供额外的健康益处。这些化合物具有特定的功能特性,对人类健康有直接影响。了解生物活性化合物发挥作用的潜在机制对于其在预防和治疗各种疾病方面的潜在应用至关重要。本期特刊的目的是整理原创研究文章和评论,…

第一周学习总结:计算机发展史及liunx系统安装

# 计算机发展相关历史 1.第一代(1946-1957年):电子管计算机 电子管计算机(1946-1957)这一阶段计算机的主要特征是采用电子管元件作基本器件,用光屏管或汞延时 电路作 存储器,输入与输出主要采用 穿孔卡片或纸带,体积大、耗电量大、速度慢、存储容量小、可靠性差、维护困…

【java开发】FileWriter

原创 大常运维FileWriter(文件字符输出流): 作用:以内存为基准,把内存中的数据以字符的形式写出到文件中去。构造函数和方法:代码:package cn.chang.d1_char_stream;import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.Write…

蓝桥算法

1.https://www.lanqiao.cn/problems/19954/learning/?contest_id=214 这道题用快速幂直接秒,而快速幂就是求一个数的次方很大的时候,我们可以把指数分解为二进制的形式,再有a的b*c次方等于a的b次方乘以a的c次方,在用一个数存储一下即可。代码如下: def qui(x, y): res = 1…

2280: 【例27.2】 最小n值 循环代码块不熟练

include <bits/stdc++.h> using namespace std; int main( ) { int n=2, m; cin >> m; double sum=1; while (sum<m) { sum+=1*1.0/n; n++; } cout << n-1; return 0; } 错误点: int n=1, m; 错误点2:while (sum>=m),错误点三 没设置 n++; 反思:1…

web安全作业(SQL注入2)

web安全作业之SQL注入2 需要掌握的知识POST提交与Get提交方法的区别 Mysql POST注入(POST Union注入、POST报错注入、POST盲注、POST报头注入) Mysql注入文件上传 堆叠注入 二次注入 http协议请求报文 理解PHP中定义的以下预定义变量:$_REQUEST (获取GET/POST/COOKIE) COO…