您的位置:首页 >Linux如何查看网络接口的错误计数 统计网卡错包
发布于2026-04-25 阅读(0)
扫一扫,手机访问
遇到网络接口的RX errors计数持续攀升,这通常是一个明确的信号:问题很可能出在物理层或驱动层,而非简单的配置错误。如何快速定位并找到具体原因?下面这套方法,或许能帮你理清思路。
RX errors持续上涨基本可断定是物理层或驱动层问题,非配置错误;用ip -s link show eth0可快速查看聚合错包数,但需结合ethtool -S定位具体错误类型如rx_crc_errors或rx_missed_errors。

RX errors 持续上涨,基本可以断定是物理层或驱动层问题,不是配置错误。
ip -s link show 快速看错包总数想快速了解概况?ip -s link show eth0 是最轻量、无需额外安装的首选方案,兼容所有现代Linux发行版。它的输出简洁明了,其中的 RX errors 和 TX errors 就是你需要关注的聚合错误计数。
不过,这里有个关键细节:这个命令只告诉你“有错误”,却不区分“是什么错误”。它汇总了CRC校验错误、帧错误、长度错误、符号错误等多种底层问题。换句话说,只要网卡硬件或物理链路出了状况,这个数字就会往上跳。
另外,请务必分清 errors 和 dropped 的区别。dropped 字段通常指向内核协议栈的主动丢弃行为,比如内存不足或网络设备积压队列(netdev backlog)溢出,这和链路层产生的错误不是一回事。
顺带一提,传统的 ifconfig eth0 命令也会显示相同的错误计数,但 ifconfig 已被标记为逐渐废弃的工具,许多新系统默认不再安装,因此 ip 命令才是更面向未来的选择。
ethtool -S 查具体错误类型知道了错误总数,下一步自然是深挖根源。这时就该 ethtool -S eth0 出场了。它输出的可不是聚合数据,而是网卡驱动级别寄存器的实时快照,能精准定位到具体错误类型,比如CRC错误、对齐错误、超长帧(jabber),或是至关重要的 rx_missed_errors。
使用前,记得先安装ethtool工具包:Debian/Ubuntu系使用 sudo apt install ethtool,RHEL/CentOS系则用 sudo yum install ethtool 或 sudo dnf install ethtool。
面对冗长的统计信息,一条过滤命令能极大提升效率:ethtool -S eth0 | grep -i "error\|drop\|miss"。这能帮你快速揪出关键字段。例如,如果 rx_crc_errors 异常高,那么网线接触不良、交换机端口故障这类物理层问题的嫌疑就非常大。
对于某些特定型号的网卡(比如Mellanox或Intel X710),你可能会看到 rx_out_of_buffer 或 rx_no_buffer 这类计数器在增长。这通常是在暗示你,网卡的环形缓冲区(ring buffer)可能设置得太小,或者中断处理不及时,问题出在系统层面,而非线缆。
/proc/net/dev 的 errs 列cat /proc/net/dev 是另一个常被查看的接口,它的第三列确实标着 errs。但这里有几个“坑”需要注意:首先,这个数据本质上是 RX errors 的一个镜像,且只统计接收方向。更关键的是——它的值可能不是实时的。
该文件是内核初始化时注册的proc接口,部分驱动(尤其是虚拟网卡或一些较老的芯片驱动)并不会动态刷新这一列。结果就是,即便实际存在错包,这里也可能长期显示为0。
同样,它的 drop 列对应的是 rx_dropped,其含义与 ip -s 命令中的 dropped 字段一致,但它同样无法告诉你丢弃的具体原因(究竟是 netdev backlog full 还是 skb allocation failure?)。
所以,如果你发现 /proc/net/dev 显示 errs 为0,而 ip -s link show 却报告有错误计数,请优先相信后者——前者很可能只是没有正确上报数据。
netstat -i 不推荐用于错包诊断或许你还记得 netstat -i 这个命令。不幸的是,它对于错包诊断的价值相当有限。它显示的 errs 列数据源与 /proc/net/dev 相同,并且它犯了一个“合并”的错误:将RX和TX两个方向的错误计数加在一起显示为一列。
这就掩盖了单向故障的可能性。例如,可能只有接收方向在出错,而发送完全正常,但 netstat -i 只会给你一个混合的总数。
此外,它完全不提供 dropped、overruns、frame 等更细分的统计项,诊断信息量远少于 ip -s 或 ethtool -S。
最后,在新版系统中,netstatss 命令所取代,而 ss 命令干脆就没有提供网络接口的统计功能。
说到底,真正的挑战往往不在于发现“有没有错包”,而在于精准判断“错包出在哪一层”。物理线缆老化、交换机端口故障、网卡固件缺陷、驱动版本不匹配、内核环缓冲区设置不当,甚至BIOS中PCIe的ASPM节能选项,都可能是幕后推手。
因此,当你拿到 ethtool -S 的输出后,强烈建议对照你所使用网卡型号的官方数据手册(datasheet)来查阅寄存器定义。否则,仅凭计数器名称的字面意思,很容易做出误判。精准排障,始于对数据的准确解读。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9