必须通过cat /proc/net/dev和sudo ethtool -s查看内核及驱动级错误统计,结合watch实时监控rx_errors、tx_errors等字段变化,才能准确诊断网卡物理层或驱动异常。

在统信UOS中排查网卡异常丢包、CRC校验失败或驱动兼容性问题时,必须直接读取内核为每个网络接口维护的底层错误统计,仅靠ping或流量监控无法发现物理层或链路层的静默错误。
用cat /proc/net/dev查看接口收发错误计数
该文件由内核实时更新,每行对应一个网络接口,包含接收(rx)和发送(tx)方向的各类错误字段,是诊断网卡硬件故障或驱动异常的最原始依据。
执行命令:cat /proc/net/dev。
跳过第一行表头,在后续各行中定位目标接口(如eth0、wlan0),观察第3列(rx_errors)、第4列(rx_dropped)、第5列(rx_fifo_errors)、第6列(rx_frame_errors)、第7列(rx_compressed)、第8列(rx_multicast)——其中【rx_errors是接收总错误数,非零即表明存在物理层或驱动级问题】;再看第11列(tx_errors)、第12列(tx_dropped)、第13列(tx_fifo_errors)、第14列(tx_collisions)、第15列(tx_carrier_errors)——【tx_errors为发送总错误数,若持续增长且伴随连接中断,大概率是网线接触不良或交换机端口故障】。
注意:该文件不显示接口状态(UP/DOWN),需配合ip link show确认接口是否已启用。
用ethtool -S查看网卡驱动级详细错误
此方法适用于有线网卡(如r8169、iwlwifi不支持),能暴露驱动与硬件交互过程中的深层错误,比如DMA超时、PHY重置次数、EEE协商失败等,普通/proc/net/dev无法覆盖。
第一步:确认网卡驱动类型,执行ethtool -i eth0 | grep driver(将eth0替换为实际接口名)。
第二步:运行sudo ethtool -S eth0,输出中查找含“error”“fail”“drop”“fifo”“over”“crc”“frame”“buffer”的字段,例如rx_missed_errors(接收缓冲区溢出)、tx_aborted_errors(发送中止)、rx_length_errors(帧长错误)。
第三步:若输出为空或提示“Operation not supported”,说明该网卡驱动未实现统计扩展接口,此时只能依赖/proc/net/dev结果。
用watch实时监控错误计数变化
当怀疑错误是偶发或随负载升高而出现时,需连续观察计数是否递增,静态快照无法判断问题活跃性。
执行:watch -n 1 'cat /proc/net/dev | grep -E "^(eth|wlan)"'。
每秒刷新一次,聚焦观察rx_errors和tx_errors两列数值是否跳变;若某次刷新后数值增加,立即暂停watch(按Ctrl+C),再执行一次cat /proc/net/dev比对前后差值,确认错误发生频次。
这一步操作起来很简单,直接把命令敲进去回车就行。











