Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
Linux 环境下如何通过 mtr 命令行工具进行链路测试_创想鸟

Linux 环境下如何通过 mtr 命令行工具进行链路测试

本文在介绍linux 环境下如何通过 mtr 命令行工具进行链路测试的基础上,重点探讨了其具体步骤,本文内容紧凑,希望大家可以有所收获。

Linux实例网站访问丢包延时高

当网站访问很慢或无法访问时,若排除其它显著问题,而检测到 ping 有明显丢包时,建议您作链路测试。Linux 环境下,您可以通过 mtr 命令行工具(优先使用) 或 traceroute 命令行工具进行链路测试来判断问题来源。

通常情况下,请依照下述步骤进行处理:

利用链路测试工具探测网络状况和服务器状态。

根据链路测试结果分析处理。

mtr 命令行工具(优先使用)

mtr (My traceroute)几乎是所有 Linux 发行版本预装的网络测试工具,集成了 tracert 与 ping 这两个命令的图形界面,功能十分强大。

ping 与 tracert 通常被用來检测网络状况和服务器状态,具体说明如下:

微信截图_20180928144114.png

mtr 默认发送 ICMP 数据包进行链路探测,通过 -u 参数来指定 UDP 数据包用于探测。相对于 traceroute 只作一次链路跟踪测试,mtr 会对链路上的相关节点做持续探测并给出相应的统计信息。mtr 能避免节点波动对测试结果的影响,所以其测试结果更正确,建议优先使用。

用法说明

mtr [-hvrctglspni46] [--help] [--version] [--report]                [--report-cycles=COUNT] [--curses] [--gtk]                [--raw] [--split] [--no-dns] [--address interface]                [--psize=bytes/-s bytes]                [--interval=SECONDS] HOSTNAME [PACKETSIZE]

示例输出

[root@centos ~]# mtr 223.5.5.5                                  My traceroute  [v0.75]mycentos6.6 (0.0.0.0)                                             Wed Jun 15 23:16:27 2016Keys:  Help   Display mode   Restart statistics   Order of fields   quit                                                  Packets               Pings Host                                           Loss%   Snt   Last   Avg  Best  Wrst StDev 1. ??? 2. 192.168.17.20                                0.0%     7   13.1   5.6   2.1  14.7   5.7 3. 111.1.20.41                                  0.0%     7    3.0  99.2   2.7 632.1 235.4 4. 111.1.34.197                                 0.0%     7    1.8   2.0   1.2   2.9   0.6 5. 211.138.114.25                               0.0%     6    0.9   4.7   0.9  13.9   5.8 6. 211.138.114.70                               0.0%     6    1.8  22.8   1.8  50.8  23.6    211.138.128.134    211.138.114.2    211.138.114.66 7. 42.120.244.186                               0.0%     6    1.4   1.6   1.3   1.8   0.2    42.120.244.198 8. 42.120.244.246                               0.0%     6    2.8   2.9   2.6   3.2   0.2    42.120.244.242 9. ???10. 223.5.5.5                                    0.0%     6    2.7   2.7   2.5   3.2   0.3

常见可选参数说明

-r 或 —report:以报告模式显示输出。

-p 或 —split:将每次追踪的结果分别列出来,而非如 —report 统计整个结果。

-s 或 —psize:指定 ping 数据包的大小。

-n 或 —no-dns:不对 IP 地址做域名反解析。

-a 或 —address:设置发送数据包的 IP 地址。用于主机有多个 IP 时。

-4:只使用 IPv4 协议。

-6:只使用 IPv6 协议。

在 mtr 运行过程中,您也可以输入相应字母来快速切换模式,各字母的含义如下:

? 或 h:显示帮助菜单。

d:切换显示模式。

n:切换启用或禁用 DNS 域名解析。

u:切换使用 ICMP 或 UDP 数据包进行探测。

返回结果说明

默认配置下,返回结果中各数据列的说明如下:

第一列(Host):节点 IP 地址和域名。如前面所示,按 n 键可以切换显示。

第二列(Loss%):节点丢包率。

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

第四列(Last):最近一次的探测延迟值。

第五、六、七列(Avg、Best、Wrst):分别是探测延迟的平均值、最小值和最大值。

第八列(StDev):标准偏差。越大说明相应节点越不稳定。

traceroute 命令行工具

traceroute 是几乎所有 Linux 发行版本预装的网络测试工具,用于跟踪 Internet 协议(IP)数据包传送到目标地址时经过的路径。

traceroute 先发送具有小的最大存活时间值(Max_TTL)的 UDP 探测数据包,然后侦听从网关开始的整个链路上的 ICMP TIME_EXCEEDED 响应。探测从 TTL=1 开始,TTL 值逐步增加,直至接收到 ICMP PORT_UNREACHABLE 消息。ICMP PORT_UNREACHABLE 消息用于标识目标主机已经被定位,或命令已经达到允许跟踪的最大 TTL 值。

traceroute 默认发送 UDP 数据包进行链路探测。可以通过 -I 参数来指定发送 ICMP 数据包用于探测。

用法说明

traceroute [-I] [ -m Max_ttl ] [ -n ] [ -p Port ] [ -q Nqueries ] [ -r ] [ -s SRC_Addr ] [  -t TypeOfService ] [ -f flow ] [ -v ] [  -w WaitTime ] Host [ PacketSize ]

示例输出

[root@centos ~]# traceroute -I 223.5.5.5traceroute to 223.5.5.5 (223.5.5.5), 30 hops max, 60 byte packets 1  * * * 2  192.168.17.20 (192.168.17.20)  3.965 ms  4.252 ms  4.531 ms 3  111.1.20.41 (111.1.20.41)  6.109 ms  6.574 ms  6.996 ms 4  111.1.34.197 (111.1.34.197)  2.407 ms  2.451 ms  2.533 ms 5  211.138.114.25 (211.138.114.25)  1.321 ms  1.285 ms  1.304 ms 6  211.138.114.70 (211.138.114.70)  2.417 ms 211.138.114.66 (211.138.114.66)   1.857 ms 211.138.114.70 (211.138.114.70)  2.002 ms 7  42.120.244.194 (42.120.244.194)  2.570 ms  2.536 ms 42.120.244.186 (42.120.244.186)  1.585 ms 8  42.120.244.246 (42.120.244.246)  2.706 ms  2.666 ms  2.437 ms 9  * * *10  public1.alidns.com (223.5.5.5)  2.817 ms  2.676 ms  2.401 ms

常见可选参数说明

-d 使用 Socket 层级的排错功能。

-f 设置第一个检测数据包的存活数值 TTL 的大小。

-F 设置不要分段标识。

-g 设置来源路由网关,最多可设置 8 个。

-i 使用指定的网卡送出数据包。用于主机有多个网卡时。

-I 使用 ICMP 数据包替代 UDP 数据包进行探测。

-m 设置检测数据包的最大存活数值 TTL 的大小。

-n 直接使用 IP 地址而非主机名称(禁用 DNS 反查)。

-p 设置 UDP 传输协议的通信端口。

-r 忽略普通的 Routing Table,直接将数据包送到远端主机上。

-s 设置本地主机送出数据包的 IP 地址。

-t 设置检测数据包的 TOS 数值。

-v 详细显示指令的执行过程。

-w 设置等待远端主机回包时间。

-x 开启或关闭数据包的正确性检验。

分析链路测试结果

以如下链路测试结果示例图为基础进行阐述:

微信截图_20180928144129.png

操作步骤

判断各区域是否存在异常,并根据各区域的情况分别处理。

区域 A:客户端本地网络,即本地局域网和本地网络提供商网络。针对该区域异常,客户端本地网络相关节点问题,请对本地网络进行排查分析;本地网络提供商网络相关节点问题,请向当地运营商反馈。

区域 B:运营商骨干网络。针对该区域异常,可根据异常节点 IP 查询归属运营商,然后直接或通过阿里云售后技术支持,向相应运营商反馈问题。

区域 C:目标服务器本地网络,即目标主机归属网络提供商网络。针对该区域异常,需要向目标主机归属网络提供商反馈问题。

结合 Avg(平均值)和 StDev(标准偏差),判断各节点是否存在异常。

若 StDev 很高,则同步观察相应节点的 Best 和 Wrst,来判断相应节点是否存在异常。

若 StDev 不高,则通过 Avg 来判断相应节点是否存在异常。

注意:上述 StDev 高 或者 不高,并没有具体的时间范围标准。而需要根据同一节点其它列的延迟值大小来进行相对评估。比如,如果 Avg 为 30 ms,那么,当 StDev 为 25 ms,则认为是很高的偏差。而如果 Avg 为 325 ms,则同样的 StDev(25 ms),反而认为是不高的偏差。

查看节点丢包率,若 Loss% 不为零,则说明这一跳网络可能存在问题。

导致节点丢包的原因通常有两种:

人为限制了节点的 ICMP 发送速率,导致丢包。

节点确实存在异常,导致丢包。

确定当前异常节点的丢包原因。

若随后节点均没有丢包,说明当前节点丢包是由于运营商策略限制所致,可以忽略。如前文链路测试结果示例图中的第 2 跳所示。

若随后节点也出现丢包,说明当前节点存在网络异常,导致丢包。如前文链路测试结果示例图中的第 5 跳所示。

说明:前述两种情况可能同时发生,即相应节点既存在策略限速,又存在网络异常。对于这种情况,若当前节点及其后续节点连续出现丢包,而且各节点的丢包率不同,则通常以最后几跳的丢包率为准。如前文链路测试结果示例图所示,在第 5、6、7跳均出现了丢包。所以,最终丢包情况,以第 7 跳的 40% 作为参考。

通过查看是否有明显的延迟,来确认节点是否存在异常。通过如下两个方面进行分析:

若某一跳之后延迟明显陡增,则通常判断该节点存在网络异常。如前文链路测试结果示例图所示,从第 5 跳之后的后续节点延迟明显陡增,则推断是第 5 跳节点出现了网络异常。

注意:高延迟并不一定完全意味着相应节点存在异常,延迟大也有可能是在数据回包链路中引发的,建议结合 反向链路测试 一并分析。

ICMP 策略限速 也可能会导致相应节点的延迟陡增,但后续节点通常会恢复正常。如前文链路测试结果示例图所示,第 3 跳有 100% 的丢包率,同时延迟也明显陡增。但随后节点的延迟马上恢复了正常。所以判断该节点的延迟陡增及丢包是由于策略限速所致。

以上就是Linux 环境下如何通过 mtr 命令行工具进行链路测试的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/176452.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
苹果14强制关机使用方法介绍
上一篇 2026年8月31日 21:59:19
下一篇 2026年8月31日 22:03:27

相关推荐

  • 【Linux】While循环吃hang行了?(图是一个毒)

    【Linux】While循环吃hang行了?(图是一个毒)【Linux】While循环吃hang行了?(图是一个毒)【Linux】While循环吃hang行了?(图是一个毒)【Linux】While循环吃hang行了?(图是一个毒)

    最近被一首歌曲洗脑了:心火烧,原名《情伴》,作为新中国的第一首流行歌曲,绝对是神曲的开山祖师呀,而在《向往的生活》中被宋丹丹老师、黄磊老师等演绎后,每天忍不住哼唱? 进入正题 这两天因为测试准备了一个脚本,流程就是类似需要登录各个服务器然后执行命令,从设计上看感觉非常简单: 将各服务器的IP全部写入…

    2026年9月22日 用户投稿
    000
  • mysql怎么执行sql命令 mysql输入代码创建表详细步骤

    mysql怎么执行sql命令 mysql输入代码创建表详细步骤mysql怎么执行sql命令 mysql输入代码创建表详细步骤mysql怎么执行sql命令 mysql输入代码创建表详细步骤mysql怎么执行sql命令 mysql输入代码创建表详细步骤

    在mysql中执行sql并创建表的步骤如下:1.通过命令行或图形工具连接数据库,使用mysql -u 用户名 -p并输入密码登录;2.选择或创建数据库,用use database_name或create database语句;3.使用create table定义表结构,如字段名、数据类型、约束等,例…

    2026年9月22日 用户投稿
    100
  • LINUX怎么查看命令历史记录_Linux查看与清除历史命令的方法

    使用history命令查看历史记录,可通过history | grep搜索或上下箭头浏览,记录保存在~/.bash_history文件中;通过export HISTSIZE和HISTFILESIZE修改保存数量,并写入~/.bashrc永久生效;用history -c清空当前会话,> ~/.b…

    2026年9月22日
    000
  • 使用php连接mssql实现日志记录_通过php连接mssql完成日志管理

    使用PHP连接MSSQL可实现高效日志管理,首先需安装sqlsrv扩展并配置php.ini;接着通过sqlsrv_connect建立数据库连接,确保SQL Server启用TCP/IP协议;然后创建包含LogLevel、Message、Source等字段的AppLogs表;封装writeLog函数插…

    2026年9月22日
    000
  • Swift 3到5.1新特性整理

    tocSwift 5.1Swift 5.0Result类型Raw string自定义字符串插值动态可调用类型处理未来的枚举值从try?抹平嵌套可选检查整数是否为偶数字典compactMapValues()方法撤回的功能: 带条件的计数Swift 4.2CaseIterable协议警告和错误指令动态查…

    2026年9月22日
    000
  • MySQL安装后初始密码在哪里查看?

    MySQL安装后初始密码在哪里查看?MySQL安装后初始密码在哪里查看?MySQL安装后初始密码在哪里查看?MySQL安装后初始密码在哪里查看?

    mysql安装后的初始密码取决于安装方式和操作系统,通常可在错误日志中找到。1. 查看mysql错误日志:linux系统使用grep命令查找/var/log/mysqld.log或类似路径;windows系统在data目录下的hostname.err中搜索“temporary password”。2…

    2026年9月22日 用户投稿
    100
  • Winscp连接本地linux(centos7)

    要在本地linux系统(例如centos7)中查找ip地址,可以使用以下命令: ip addr show 或者更简洁的: ip a 这两个命令都会显示系统中所有网络接口的详细信息,包括IP地址。 如果你只想查看IPv4地址,可以使用以下命令: ip -4 addr show 或者使用ifconfig…

    2026年9月22日
    000
  • VSCode 如何配置 Python 虚拟环境 VSCode 配置 Python 虚拟环境的步骤​

    VSCode 如何配置 Python 虚拟环境 VSCode 配置 Python 虚拟环境的步骤​VSCode 如何配置 Python 虚拟环境 VSCode 配置 Python 虚拟环境的步骤​VSCode 如何配置 Python 虚拟环境 VSCode 配置 Python 虚拟环境的步骤​VSCode 如何配置 Python 虚拟环境 VSCode 配置 Python 虚拟环境的步骤​

    在vscode中配置python虚拟环境的核心是选择正确的解释器,确保项目依赖隔离;2. 首先在项目根目录使用python -m venv .venv创建虚拟环境,或使用conda、pipenv等工具;3. 在vscode中打开项目文件夹,通过ctrl+shift+p输入“python: selec…

    2026年9月22日 用户投稿
    100
  • MySQL最新版本如何下载?官方下载指南

    MySQL最新版本如何下载?官方下载指南MySQL最新版本如何下载?官方下载指南MySQL最新版本如何下载?官方下载指南MySQL最新版本如何下载?官方下载指南

    要下载mysql,推荐从官网直接下载;选择社区版或商业版取决于用途;下载时需选对操作系统和版本;安装遇到问题可查错误提示并搜索解决方案;验证安装成功可用命令行登录。下载步骤包括访问官网、选择版本与操作系统、使用installer、注册账号、开始下载安装。安装后配置root密码、字符集等。验证方式为命…

    2026年9月22日 用户投稿
    100
  • VSCode配合Vivado进行FPGA图像处理(算法加速与优化)

    答案:VSCode与Vivado结合可提升FPGA图像处理开发效率,前者用于代码编辑、版本控制和远程开发,后者负责综合、实现与调试,二者协同实现高效算法优化。 将VSCode与Vivado结合用于FPGA图像处理,本质上是利用VSCode作为高效的代码编辑、版本控制和辅助开发环境,来弥补Vivado…

    2026年9月22日
    200
  • linux系统下codeblocks控制台打印中文乱码[通俗易懂]

    linux系统下codeblocks控制台打印中文乱码[通俗易懂]linux系统下codeblocks控制台打印中文乱码[通俗易懂]linux系统下codeblocks控制台打印中文乱码[通俗易懂]linux系统下codeblocks控制台打印中文乱码[通俗易懂]

    大家好,很高兴再次和大家见面,我是你们的朋友全栈君。 在Linux系统下使用CodeBlocks时,如果在控制台中打印中文可能会遇到乱码问题。以下是解决这一问题的详细步骤: 首先,我们来看一下在Linux系统下安装CodeBlocks后,运行以下代码时出现的问题: #include #include…

    2026年9月22日 用户投稿
    600
  • VSCode搭建FPGA与ROS通信环境(机器人控制,硬件加速指南)

    VSCode可高效集成FPGA与ROS开发,通过远程SSH连接实现跨环境代码编辑、任务自动化与调试,结合FPGA通信接口设计与ROS节点开发,统一硬件与软件工作流,提升开发效率。 将VSCode作为FPGA与ROS通信的集成开发环境是完全可行的,甚至可以说,它是一个非常高效且灵活的选择。核心在于利用…

    2026年9月22日
    200
  • Linux基础必知必会(一)

    文章目录 前言 一、初识Linux操作系统 二、网络配置原理 三、虚拟机网络配置原理 四、虚拟机网络环境配置 五、远程工具Xshell 六、Linux目录结构讲解 七、Linux常用的命令讲解 八、用户和用户组的管理 结语 前言 为什么需要学习Linux系统? 许多人可能疑惑,为什么在当前可视化操作…

    2026年9月22日
    1200
  • Oracle定时任务

    oracle 介绍 oracle job 是应用在数据库层面,用来定时执行存储过程或者 SQL 语句的定时器。 测试数据代码语言:javascript代码运行次数:0运行复制 –建测试表CREATE TABLE TEST_JOB( DATETIME DATE, BEG_DATE VARCHAR2(…

    2026年9月22日
    500
  • Linux系统如何解压rar文件

    大家好,很高兴再次与大家见面,我是你们的老朋友全栈君。 1、获取Linux版本的rar软件 前往官方网站,下载最新版的Linux rar软件包。 2、解压已下载的安装文件 使用以下命令解压压缩包: tar -xzpvf rarlinux-x64-610b2.tar.gz 3、编译并安装软件 进入解压…

    2026年9月22日
    100
  • Sublime开发MySQL备份与恢复脚本方案_实现定时导出与自动导入机制

    Sublime开发MySQL备份与恢复脚本方案_实现定时导出与自动导入机制Sublime开发MySQL备份与恢复脚本方案_实现定时导出与自动导入机制Sublime开发MySQL备份与恢复脚本方案_实现定时导出与自动导入机制Sublime开发MySQL备份与恢复脚本方案_实现定时导出与自动导入机制

    使用sublime编写mysql备份与恢复脚本能提升数据安全性与操作效率;1.通过shell或python调用mysqldump实现自动备份,建议加入时间戳、压缩存储及权限设置;2.结合cron配置定时任务实现自动化,注意使用绝对路径并添加日志记录;3.编写恢复脚本导入sql文件,需确保数据库结构一…

    2026年9月22日 用户投稿
    100
  • NFV中:DPDK与SR-IOV应用场景及性能对比

    NFV中:DPDK与SR-IOV应用场景及性能对比NFV中:DPDK与SR-IOV应用场景及性能对比NFV中:DPDK与SR-IOV应用场景及性能对比NFV中:DPDK与SR-IOV应用场景及性能对比

    关于作者 作者简介: 张帅,Wechat:yorkszhang 网站:www.flowlet.net DPDK和SR-IOV目前主要用于提升IDC(数据中心)中的网络数据包处理速度。然而,在NFV(网络功能虚拟化)场景下,DPDK与SR-IOV各自的应用场景和优缺点是什么呢?本文将从以下几个方面来探…

    2026年9月22日 用户投稿
    000
  • Linux命令行中last命令的实用技巧

    last命令用于查看Linux用户登录历史,读取/var/log/wtmp文件。1. 查看指定用户登录记录:执行last username(如last alice)可审计特定账户活动;2. 限制输出行数:使用last -n 10或last -10避免刷屏,便于脚本处理;3. 识别远程登录来源:pts…

    2026年9月22日
    000
  • rm -rf 误删文件?别急,或许有救!

    rm -rf 误删文件?别急,或许有救!rm -rf 误删文件?别急,或许有救!rm -rf 误删文件?别急,或许有救!rm -rf 误删文件?别急,或许有救!

    立即采取行动! 在生产环境中,我们应尽量避免进行风险操作。但如果不慎犯错,如何挽救呢?让我分享一个故事:上周我为了打包一个应用,需要整理Ubuntu 16.04上的线上数据,不小心删除了一个数据文件,幸而最终有惊无险,现记录如下。 extundelete 我的恢复计划主要依赖于一个工具——extun…

    2026年9月22日 用户投稿
    000
  • unix怎么安装php_unix系统安装php环境指南

    首先确认系统环境并检查是否已安装相关软件,然后选择包管理器或源码编译方式安装PHP;推荐使用包管理器快速安装,如Debian/Ubuntu用apt,CentOS/RHEL/Fedora用yum或dnf,FreeBSD用pkg;安装后配置Web服务器,Apache需加载mod_php或集成PHP-FP…

    2026年9月22日
    300

发表回复

登录后才能评论
关注微信