实时监测网卡数据传输速率需区分当前实际吞吐量与物理链路最大能力,推荐使用/proc/net/dev(轻量原始数据)、sar -n DEV 1(直接输出kB/s速率)、iftop(连接粒度流量)和nload(图形化曲线)四种方法。

要实时监测网卡数据传输速率,必须区分「当前实际吞吐量」和「物理链路最大能力」——前者反映此刻真实收发速度,后者只是硬件上限。直接读取内核动态统计接口 /proc/net/dev 是最轻量、最可靠的方式,无需安装额外工具,也无第三方依赖。
用 watch + cat 实时刷出字节数变化
执行 watch -n 1 'cat /proc/net/dev',每秒刷新一次所有网卡的收发字节数。
注意观察 eth0 或 wlan0 行中 Receive 下的 bytes 和 Transmit 下的 bytes 两列数值——它们是累加值,单位为字节(B),不是速率。
这一步不显示速率,只提供原始数据;后续需手动计算差值才能得出 B/s,适合调试或验证数据源是否更新。
用 sar 命令直接输出实时速率(推荐)
第一步:确保 sysstat 已安装,Ubuntu/Debian 执行 sudo apt install sysstat,CentOS/RHEL 执行 sudo yum install sysstat。
第二步:运行 sudo sar -n DEV 1,每秒输出一次各网卡的实时收发速率。
第三步:关注输出中 rxkB/s(接收千字节每秒)和 txkB/s(发送千字节每秒)两列——这是已换算好的瞬时速率,单位明确,无需再做除法。
⚠️ 注意:sar 默认只监控活跃网卡,若某接口未连接,其数据行可能不出现;如需强制显示所有接口,加参数 -I ALL。
用 iftop 查看按连接粒度的实时流量
方法一:直接运行 sudo iftop,界面顶部显示总入站/出站速率,下方按 TCP/UDP 连接列出各目标 IP+端口的实时带宽占用。
方法二:聚焦单个网卡,运行 sudo iftop -P -f "port 80 or port 443",仅过滤 HTTP/HTTPS 流量,避免干扰。
方法三:禁用域名解析加快响应,加 -n 参数:sudo iftop -n,避免 DNS 查询拖慢刷新。
这一步操作起来很简单,直接把命令敲进去回车就行;但要注意 iftop 默认以字节每秒(B/s)显示,数值较小,容易误判为“没流量”,其实只是单位小——它内部自动缩放为 K/s、M/s,右上角有单位标识。
用 nload 查看图形化实时速率曲线
安装后运行 sudo nload,默认进入交互式界面,左右方向键切换网卡。
界面上半部分显示 Current(当前瞬时速率)、Average(过去 30 秒均值)、Min/Max(极值),下半部分是滚动柱状图,每列代表一秒历史。
加 -m 参数可隐藏图形只留数字:sudo nload -m,更适合远程终端或脚本集成场景。
若系统提示 command not found,请先安装:Ubuntu/Debian 执行 sudo apt install nload,CentOS/RHEL 执行 sudo yum install nload。

















