Linux系统检查网络丢包情况 ping和mtr命令详解

秋雪小哥_8056

秋雪小哥_8056

2026-04-09

492人浏览

原创

丢包必须用 mtr 定位具体跃点,ping 只能显示整条链路总丢包率而无法定位节点;mtr -n -r 是最小可靠组合,可逐跳统计 loss% 和延迟波动,精准识别过载或异常节点。

linux系统检查网络丢包情况 ping和mtr命令详解

丢包必须用 mtr 定位到具体跃点,单靠 ping 只能看出“有没有丢”,看不出“在哪丢”

ping -c 能确认丢包率但无法定位节点

Linux 的 ping 默认不自动退出,不加 -c 就会一直发包,容易误判为“卡住”或“没响应”。它只输出每次的 time=xx.x ms 和末尾统计行里的 packet loss 百分比,但这个值是整条链路的总丢包,对排查毫无指向性。

  • 用 ping -c 10 -n 223.5.5.5 测 DNS 服务器,若显示 10 packets transmitted, 8 received, 20% packet loss,你只知道丢了 2 个包,但不知道是本地网关、运营商出口还是远端机房丢的
  • -f(flood ping)在生产环境禁用:它绕过内核限速,可能触发交换机 ACL 或被对端限流,导致结果失真
  • -s 设大包(如 -s 1472)可暴露 MTU 问题,但若目标主机禁 ICMP,ping 直接全无响应,不能反推是丢包还是策略拦截

mtr -n -r 是诊断丢包的最小可靠组合

mtr 的核心价值在于逐跳统计——每经过一个路由器,它都持续发包并记录该节点的丢包率(Loss%)和延迟波动。不加 -n 会卡在 DNS 解析上,尤其在中间节点无反向解析时,界面会停顿甚至假死;不加 -r 进入交互模式后,新手常误按空格或方向键导致视图错乱,反而看不清关键字段。

Mottle
Mottle

Mottle是一款用于为网站创建自定义 AI 聊天机器人的无代码工具。

下载
  • 执行 mtr -n -r -c 20 14.215.177.39,输出中某行 Loss% = 45% 且 StDev > 100ms,基本可断定该 IP 对应设备已过载或线路异常
  • 若第 3 跳 Loss% = 0%,第 4 跳突增至 60%,后续所有跳均 100%,说明问题就在第 4 跳设备本身或其上游链路
  • mtr -n --tcp -P 443 example.com 可绕过 ICMP 限制,但需注意:TCP 探测会真实建立连接,某些防火墙会对 SYN 包做速率限制,造成假性丢包

丢包和高延迟不是一回事,别混着看

mtr 输出里 Loss% 和 Avg 是两个独立指标。常见误区是看到某跳 Avg = 320ms 就认定“这里丢包”,其实只要 Loss% = 0%,说明包全到了,只是处理慢;反过来,Loss% = 30% 但 Avg = 12ms,说明该节点丢包严重但剩余包转发极快——典型如队列满后随机丢弃。

  • Wrst 远大于 Avg(比如 Avg=15ms,Wrst=850ms)是网络抖动信号,往往伴随 StDev > 50ms,此时重传机制更容易触发,TCP 吞吐会断崖下跌
  • 对比两次 mtr -r 结果时,重点比对同一跳的 Loss% 是否持续存在,而非只盯 Avg 数值变化——瞬时延迟波动正常,持续丢包才危险
  • 如果所有跳 Loss% = 0% 但业务仍超时,问题大概率不在网络层,而是目标服务响应慢、DNS 解析慢或本地 socket 缓冲区溢出

实际排查时最容易忽略的三件事

第一是源地址绑定:mtr 默认从本机默认路由出口发包,若机器有多个公网 IP(比如双线 BGP),不加 -a 可能走错线路,导致测试结果与真实业务路径不一致;第二是 IPv6 干扰:某些网络栈在 DNS 返回 AAAA 记录后会优先走 IPv6,而 IPv6 链路质量可能远差于 IPv4,务必用 -4 强制限定;第三是缓存误导:mtr 的交互模式下按 d 切换延迟视图时,屏幕显示的是历史累积值,新数据要等下一轮刷新才更新,想看实时变化得盯住 Last 列而非 Avg。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux系统

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.18

5387

5

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

2023.08.10

2368

6

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3950

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3393

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2553

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6150

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5802

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3393

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2885

4

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Linux man-pages 项目
Linux man-pages 项目

共0课时 | 0人学习

Linux系统运维及项目正式上线
Linux系统运维及项目正式上线

共14课时 | 2.8万人学习

Linux负载均衡视频教程
Linux负载均衡视频教程

共7课时 | 1.9万人学习