判断网卡真实流量需综合验证三层:ip -s link show看实时rx/tx字节数变动;ethtool eth0确认link detected: yes;/sys/class/net/eth0/operstate为up,缺一不可。

用 ip -s link show 查实时收发统计
这个命令直接读取内核网络栈的计数器,输出每秒更新的 RX/TX 字节数、包数、错误数,是判断网卡是否真正在跑流量的最可靠依据。它不依赖用户态抓包,开销极低,适合生产环境长期观察。
-
ip -s link show eth0输出里,RX和TX下方的bytes行数值持续变动,说明接口有真实数据流动 - 如果
bytes值长时间不动,但state UP存在,大概率是上层服务没发请求,或对端没响应,而非网卡故障 - 注意
errors、dropped、overruns这几列:非零值代表驱动、缓冲区或物理链路存在问题,需立即排查
用 cat /proc/net/dev 看多接口汇总快照
这是零依赖方案,所有 Linux 内核都支持,适合写监控脚本或容器内受限环境。输出格式固定,字段对齐,方便用 awk 提取指定接口的当前字节数。
Linux AI 服务器 — 将 Linux 服务器转换为本地 AI 推理集群。使用 systemd、NVIDIA CUDA 实现无头 Linux AI,零 GUI 开销。
- 第一行是表头,第二行开始是各接口数据;
eth0:开头那行对应物理网卡,lo:是回环 - 第2列是接收字节数,第10列是发送字节数(从 0 开始计数),例如:
awk '/eth0:/ {print $2, $10}' /proc/net/dev - 该文件只反映“上次内核更新时”的快照,不是流式输出,如需实时,得配合
watch,比如:watch -n 1 'cat /proc/net/dev | grep eth0'
用 ethtool eth0 验证物理链路是否真正连通
很多用户误以为 state UP 就等于能通信,其实只是内核认为接口已启用。真正决定能否收发包的是 PHY 层协商结果,ethtool 才是唯一能读取该信息的工具。
- 运行
sudo ethtool eth0 | grep "Link detected",输出yes才表示网线插稳、对端设备上电、速率/双工模式协商成功 - 若为
no,即使ip link show eth0显示state UP,也必然无法通信——此时查驱动、换网线、确认交换机端口状态 -
Speed:和Duplex:行必须与对端一致,常见坑是自动协商失败导致一端强制千兆、另一端半双工,引发大量重传和丢包
别只信 ip link show 的 state UP
这个状态仅代表接口被 ip link set up 过,跟物理连接、IP 配置、路由表完全无关。你可能看到 state UP,但实际既不能 ping 通网关,也无法建立 TCP 连接。
- 必须交叉验证:
state UP+Link detected: yes+/sys/class/net/eth0/operstate返回up才算基础链路就绪 -
NO-CARRIER标志出现在ip link show输出中,比Link detected: no更早暴露问题,它是内核 netlink 层对 PHY 失联的直接反馈 - 如果用 NetworkManager 管理网络,
nmcli device status显示connected才代表 DHCP 完成、路由注入成功——这步常被忽略,却决定上层应用能否工作
state UP 当作“一切正常”的信号。物理链路、内核操作状态、用户空间网络服务,这三层各自独立又相互依赖,漏掉任意一层的验证,都会让问题看起来像玄学。










