最可靠起点是 ip -s link show,它实时准确显示rx/tx errors和dropped总数;errors上涨表明物理层或驱动问题,dropped反映内核协议栈主动丢弃;ethtool -s可细化错误类型,/proc/net/dev和netstat -i易误导,需用tc qdisc检查人为丢包。

直接看 ip -s link show,这是最可靠、无需额外安装的起点。它能快速告诉你网卡在链路层是否出现接收错误(RX errors)、发送错误(TX errors)以及主动丢弃(dropped),且数值实时准确。
用 ip -s link 查聚合丢包和错误总数
执行 ip -s link show eth0(把 eth0 换成你的接口名),重点看两块:
- RX 下的 errors:表示接收方向的硬件/链路层错误总和,包括 CRC 错误、帧对齐失败、符号错误等。只要这个值随时间上涨,基本可断定是物理层(如网线松动、光衰、双工不匹配)或驱动问题,不是配置错误。
- RX/TX 下的 dropped:不是链路丢包,而是内核协议栈主动丢弃,常见原因有 socket 接收队列满、内存不足、netdev backlog 溢出等。
加 -h 参数(ip -s -h link show eth0)能让字节数自动转为 KiB/MiB,更易读。注意:它不显示 IP 地址或网卡型号——那是 ip addr 和 ethtool -i 的事。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
用 ethtool -S 定位具体错误类型
ip -s link 只给总数,要拆解到底是哪类错,必须用 ethtool -S eth0:
- 先确保已安装:
sudo apt install ethtool(Debian/Ubuntu)或sudo yum install ethtool(RHEL/CentOS)。 - 运行
ethtool -S eth0 | grep -i "error\|drop\|miss"快速过滤关键字段。 - 常见指标含义:
• rx_crc_errors 高 → 网线接触不良、交换机端口故障或光模块异常;
• rx_missed_errors 上涨 → ring buffer 太小或中断处理不及时(尤其虚拟机中 vCPU 调度延迟);
• rx_over_errors 或 rx_fifo_errors 显著 → Ring Buffer 溢出,可用ethtool -G eth0 rx 4096增大接收队列。
别依赖 /proc/net/dev 和 netstat -i
这两个来源的数据容易误导:
-
/proc/net/dev第三列 errs 实际只是 RX errors 的镜像,且部分驱动(尤其是虚拟网卡或老旧芯片)不会动态更新,可能长期为 0 即使真实有错包; -
netstat -i的 errs 列是 RX + TX 错误合并值,无法区分方向,也看不到 dropped、overruns、frame 等细分项,诊断价值远低于ip -s link或ethtool -S; - 如果
/proc/net/dev显示 errs 为 0,但ip -s link显示非零,优先信后者。
检查 tc/qdisc 是否人为丢包
很多“丢包”根本不在网卡统计里,而是被流量控制规则悄悄吃掉了:
- 运行
tc qdisc show dev eth0,看是否有netem、loss、policer等关键字; - 加
-s查真实丢包数:tc -s qdisc show dev eth0,关注输出中 dropped 列是否持续增长; - 容器环境要查 cali+ 或 lxc+ 等 CNI 虚拟接口,不能只盯 eth0。










