用 ip -s link show dev 网卡名可查看指定网卡详细统计,分rx/tx两组,含packets、errors、dropped等字段;errors反映物理层问题,dropped多为内核主动丢弃;应以ip命令为准,持续监控需计算差值。

直接用 ip -s link 就能看到网卡收发包、错误、丢包等实时统计,但默认只显示所有接口总览,想查特定网卡或持续观察得加参数,否则容易漏掉关键字段(比如 rx_errors 和 tx_dropped 的含义差异)。
怎么只看某一块网卡的详细统计
不加过滤时 ip -s link 会列出全部接口(包括 lo、docker0 等),干扰判断。指定网卡名最稳妥:
- 用
ip -s link show dev <code>ens33(把ens33换成你的网卡名,可用ip link show先确认) - 输出分两块:上面是链路层基础信息(UP/DOWN、MTU),下面是两组统计:
RX(接收)和TX(发送),每组含 packets、bytes、errors、dropped、overruns 等字段 - 注意:
dropped不等于故障——可能是内核主动丢弃(如 netfilter 规则匹配、内存不足),而errors才更指向物理层或驱动问题
为什么 ip -s link 的 errors 和 ifconfig 的不一致
ifconfig 已被标记为废弃,其 error 计数来源和 ip 不同:前者读取的是旧式 /proc/net/dev,后者直连 netlink 接口,统计维度更细(比如区分 rx_length_errors、rx_crc_errors)。实际排障应以 ip -s link 为准。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
rx_errors是总和,包含length、crc、frame等子类错误,需结合ethtool -S <code>ens33查底层寄存器确认是否硬件问题 -
tx_fifo_errors高通常说明驱动队列溢出,可能和中断合并(ethtool -c)或 CPU 负载有关 - 如果
rx_dropped持续增长但rx_errors为 0,优先检查net.core.netdev_max_backlog和应用层是否来不及收包
如何持续监控变化量而非绝对值
ip -s link 默认输出瞬时快照,看不出速率。要观察增量,得靠重复执行 + 差值计算:
- 用
watch -n 1 'ip -s link show dev <code>ens33| grep -A 2 \"RX\|TX\"' 每秒刷新一次,重点关注packets和bytes列的变化速度 - 更准的做法是两次调用
ip -s link show dev <code>ens33,提取rx_packets字段做减法(脚本里可用awk '/RX/ {getline; print $1}'提取) - 别依赖
ifconfig的interrupts或collisions—— 现代千兆+网卡这些字段基本恒为 0,无参考价值
真正关键的不是数字本身,而是各字段间的比例关系:比如 rx_dropped 占 rx_packets 超过 0.1%,或 tx_dropped 非零且伴随高 tx_queue_len,这时候才需要深入查驱动、IRQ 绑定或 TCP 窗口设置。字段含义混淆比命令不会用更容易导致误判。










