ip -s link 仅显示网卡累计收发包和字节数,不提供实时速率;需两次采样差值除以时间估算平均速率,如5.2MiB/5s≈1.04MiB/s;它统计链路层帧数据,不含TCP重传或应用层吞吐,非带宽监控工具。

用 ip -s link 可以查看每个网卡自启用以来的累计收发包和字节数,但它不显示实时速率,也不直接给出“每秒多少 MB”的流量值——它统计的是链路层帧级数据,适合查错误、丢包和长期趋势,不是带宽监控工具。
怎么查当前接口的累计流量
运行以下命令(需 root 权限):
-
ip -s -h link show dev eth0:加-h自动转换单位(KiB/MiB),加dev eth0指定接口,避免刷屏 - 输出中重点关注 RX(接收)和 TX(发送)下的
bytes和packets -
bytes是从系统启动或接口 up 以来的总字节数,不是瞬时速率
如何估算实时流量速率
因为 ip -s link 不提供速率,需手动对比两次采样:
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
- 第一次执行:
ip -s -h link show dev eth0 | grep -A1 "RX\|TX",记下 RX bytes 和 TX bytes - 等 5–10 秒后再次执行,用新值减旧值,再除以时间,就得到平均字节/秒
- 例如:两次 RX bytes 差值为 5.2MiB,间隔 5 秒 → 平均接收速率约 1.04 MiB/s(≈ 8.3 Mbps)
注意几个关键限制
这个命令只反映协议栈入口的数据,有几点容易误解:
- 不包含 TCP 重传包,也不统计应用层实际吞吐(比如 HTTP 响应体大小)
-
dropped不是网络丢包,是内核发送队列满时主动丢弃;carrier非零说明物理链路反复断连 - 查不到 IP 地址(用
ip addr)、查不到网卡型号(用ethtool -i eth0或lspci)
如果真要盯实时带宽,换这些工具更合适
ip -s link 是基础链路统计,不是流量监控器。需要看“此刻谁在跑多少 Mbps”,推荐:
-
iftop -n -i eth0:按连接实时排序,显示 IP+端口+2s/10s/40s 平均速率 -
nload eth0:简洁图形化界面,左右双栏分别显示 RX/TX 实时速率曲线 -
cat /proc/net/dev:和ip -s link数据来源一致,但格式更紧凑,适合脚本解析

















