Linux怎么查看具体的网络接口实时丢包及错包的详细分类

雨枫吖_5317

雨枫吖_5317

2026-07-09

469人浏览

原创

最轻量且字段明确的丢包分类查看方式是ip -s link show,它将接收侧丢包分为dropped(内核协议栈丢)、overruns(ring buffer溢出)、errors(物理层错误)三类,需观察两次执行的差值是否增长:overruns增说明硬件层丢包;dropped增而overruns为0表明napi或软中断丢包;errors增则指向网线、光模块等物理问题。

linux怎么查看具体的网络接口实时丢包及错包的详细分类

用 ip -s link show 快速看实时丢包分类

这是最轻量、无需额外安装、且字段含义明确的入口。它把丢包拆成三类:接收侧的 dropped(内核协议栈丢)、overruns(Ring Buffer 溢出)、errors(物理层错误),发送侧也有对应项。ip -s link show eth0 输出后,重点盯 RX 下这三列数字——不是看绝对值,而是隔 2 秒执行两次,观察差值是否持续增长。

  • overruns 上涨:说明网卡 DMA 写入速度 > 内核取走速度,包在硬件层就被丢了,tcpdump 在该接口抓不到这些包
  • dropped 上涨但 overruns == 0:包进了 Ring Buffer,但在 NAPI 或软中断处理阶段被丢,常见于 CPU 过载、net.core.netdev_max_backlog 太小
  • errors 上涨:指向物理链路问题,比如网线松动、光衰、双工不匹配,必须结合 ethtool -S 看具体错误类型

用 ethtool -S 查驱动级真实丢包原因

ip -s link 是聚合统计,ethtool -S 才是驱动寄存器快照,字段更细、更准,但名字因芯片而异。执行 ethtool -S eth0 | grep -i "error\|drop\|miss" 后,重点关注这几个字段:

  • rx_over_errors 或 rx_fifo_errors:对应 ip -s link 的 overruns,确认 Ring Buffer 是否真溢出
  • rx_missed_errors:虚拟化环境关键指标,vCPU 调度延迟导致中断丢失,值上涨即说明宿主机 CPU 过载或 vCPU 绑定不合理
  • rx_dropped:包已进 Ring Buffer,但被驱动主动丢弃,常见于校验失败、帧长异常,或启用了 rp_filter
  • rx_crc_errors / rx_frame_errors:纯物理层问题,非零持续增长基本可断定是线缆/光模块/交换机端口故障

注意:ethtool -S 不是所有网卡都支持完整字段,虚拟网卡(如 veth、macvlan)或老旧芯片(如某些 RTL8139)可能只输出基础项甚至报 No data available。

Alpine Linux
Alpine Linux

获取最新发布版本;聚合最新版本架构

下载

别漏掉 tc qdisc 导致的“静默丢包”

很多丢包根本不在网卡统计里——是人为配置的限流规则在起作用。运行 tc qdisc show dev eth0,检查是否有 netem、loss、policer、fq_codel 等关键字;加 -s 参数看真实丢包数:tc -s qdisc show dev eth0,关注输出中 dropped 列是否持续增长。

  • 容器环境要查 cali+ 或 lxc+ 接口,CNI 插件常在这些虚拟接口上挂 tc 规则,不能只查 eth0
  • tc qdisc add dev eth0 root netem loss 5% 这类命令会导致 5% 出向包静默消失,删规则前先确认是否为预期行为
  • tc 丢包不会反映在 ip -s link 或 ethtool -S 中,必须单独查

为什么 /proc/net/dev 和 netstat -i 不推荐用于错包诊断

/proc/net/dev 的 errs 列本质是 ip -s link 中 errors 的镜像,但它不更新实时值——部分驱动(尤其是虚拟网卡)不会动态刷新这一列,可能长期为 0 即使实际有错包。netstat -i 更糟:它的 errs 是 RX + TX 错误总和,无法区分方向,也不显示 dropped、overruns、frame 等细分项。

  • 如果你看到 /proc/net/dev 中 errs 为 0,但 ip -s link show 显示非零,优先信后者
  • netstat -i 已被标记废弃,新版系统中 ss 根本不提供接口统计功能
  • ifconfig 的 RX dropped 实际是 socket buffer 满时的丢弃,和 ip -s link 的 dropped 统计口径不同,容易误判

真正要定位丢包,得从 ip -s link 入手,再按需深入 ethtool -S 或 tc -s qdisc ——别一上来就翻 /proc/net/dev 或跑 netstat -i,它们提供的信息既滞后又模糊。

相关文章

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

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

下载

相关标签:

linux

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

相关专题

更多
硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

2023.10.19

3088

3

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

2025.10.17

4569

12

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2025.12.29

3729

9

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

2026.01.19

426

15

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

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

2023.06.21

3870

4

如何安装LINUX
如何安装LINUX

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

2023.06.29

3333

10

linux find
linux find

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

2023.06.30

2473

5

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

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

2023.07.05

5930

7

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

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

2023.07.06

5582

7

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习