最轻量实时测网速的方法是读取/proc/net/dev并计算每秒差值,需用watch定期刷新比对rx_bytes和tx_bytes,再换算为b/s或mbps;iftop按连接定位流量源,nload提供双通道图表,ip -s link仅适合排查链路错误。

直接看 /proc/net/dev 的实时差值最轻量
不需要装额外工具,/proc/net/dev 是内核原生暴露的计数器,所有流量统计工具底层都读它。但它只给累计值,想得到“实时流入流出量(即每秒字节数)”,必须自己算差值。
常见错误是直接 cat /proc/net/dev 看一眼就走——那只是个快照,看不出速率。真正有用的是用 watch 定期刷新并人工或脚本比对:
- 运行
watch -n 1 'cat /proc/net/dev | grep -E "(eth|ens|enp|wlan)"',每秒刷新一次 - 盯住某行(如
ens33:)的rx_bytes和tx_bytes两列,观察数字是否稳定增长 - 手动算:两次输出间隔 1 秒,差值就是 B/s;除以 125 得 Mbps(因为 1 Mbps ≈ 125,000 B/s)
- 注意:lo(回环)接口流量也会计入,别误当成外网流量
iftop 按连接显示实时速率,但需 sudo 权限
iftop 不是看“接口总吞吐”,而是看“谁在用、用了多少”,适合定位异常 IP 或端口。它默认把所有流量加总到接口级顶部,但主界面展示的是连接粒度。
容易踩的坑:
- 不加
sudo会报错或只显示部分连接(Linux 抓包需要 CAP_NET_RAW) - 默认单位是 bits/s,看着数值很大但其实是 bit——加
-B切成 Bytes/s 更符合直觉 - 执行
sudo iftop -i ens33 -B后,顶部一行的Totals就是该接口当前实时 RX/TX 速率(B/s) - 按
P可隐藏端口,按T切换显示模式(rate/peak/cum),按q退出
nload 显示双通道图表,但不区分连接
nload 是最接近“网速监控器”体验的命令:两个滚动条分别对应 RX(流入)、TX(流出),单位自动换算成 KB/s、MB/s,还带历史峰值和累计总量。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
关键点:
- 启动后按左右方向键切换网卡,不用反复输
-m或dev参数 - 它不解析 IP 或端口,所以不会受 DNS 延迟影响,响应快、CPU 占用低
- 如果看到 RX 突然归零但 TX 还在动,大概率是上行流量(比如你发文件、上传日志),不是网络断了
- 注意:某些旧版 nload 在高流量下可能丢帧,数值略低于真实值,但趋势可靠
ip -s link 只给累计统计,不能当实时速率用
ip -s link 输出的是自接口 up 起的链路层累计计数,包括 bytes、packets、errors 等——但它不提供时间戳,也没法自动做差值运算。
所以它不适合看“现在每秒多少 MB”,但特别适合排查底层问题:
- 执行
ip -s -h link show dev ens33(加-h自动单位换算) - 重点看
RX errors是否非零且持续上涨:可能是网线松动、光模块衰减、驱动 bug -
TX dropped高 ≠ 网络丢包,而是内核发送队列满导致主动丢弃,常出现在突发大流量时 -
carrier非零说明物理链路反复 up/down,比如交换机端口 flapping
真要算实时速率,还是得回到 /proc/net/dev 或用 iftop/nload 这类封装好的工具——ip -s link 的价值不在带宽数字,而在链路健康信号。










