可使用iftop、nload、/proc/net/dev、iptraf-ng或bmon等工具监控linux网络接口实时速率:iftop按连接显示流量,nload展示整体吞吐曲线,/proc/net/dev提供内核级原始数据,iptraf-ng支持多维统计,bmon具备图形化历史趋势。

如果您在Linux系统中需要了解当前网络接口的实时数据传输速率,则可能是由于缺乏对流量监控工具的使用经验。以下是解决此问题的步骤:
一、使用 iftop 实时查看网速
iftop 是基于 libpcap 库的实时流量监控工具,能以连接为粒度显示进出流量,支持按方向、端口、IP段等条件过滤,适用于快速定位高带宽占用的远程主机。
1、以 root 权限运行 iftop 命令:sudo iftop
2、若需指定网卡(如 eth0),执行:sudo iftop -i eth0
3、禁用 DNS 解析以加快响应并避免额外查询,添加 -n 参数:sudo iftop -n
4、以字节为单位显示数值(更符合直觉),追加 -B 参数:sudo iftop -n -B
5、仅监控特定 IPv4 网段(如 192.168.1.0/24)的流量,使用 -F 参数:sudo iftop -F 192.168.1.0/24
二、使用 nload 查看单接口总吞吐率
nload 专为简洁直观设计,不按连接拆分,而是分别绘制入站与出站流量曲线,适合快速掌握网卡整体带宽占用情况,且无需 root 权限即可运行。
1、直接运行 nload 查看默认网卡:nload
2、指定网卡(如 ens33):nload ens33
3、设置刷新间隔为 1 秒:nload -u M -t 1000(-u M 表示单位为 Mbit/s)
4、同时监控多个接口(如 ens33 和 lo):nload ens33 lo
三、使用 watch + cat /proc/net/dev 持续轮询统计值
/proc/net/dev 提供内核维护的原始收发字节数,通过两次读取并计算差值可得出近似瞬时速率,该方法完全依赖系统内置机制,无额外依赖。
1、执行轮询命令,每2秒刷新一次并高亮变化:watch -n 2 -d 'cat /proc/net/dev | grep -E "(eth|ens|wlan)"'
2、手动计算速率:记录两行输出中某接口 rx_bytes 或 tx_bytes 字段的差值,除以时间间隔(秒),再除以 1024² 得到 MiB/s。
3、只显示活跃接口(排除 lo):watch -n 2 'grep -v "lo:" /proc/net/dev | grep -E "[[:digit:]]{8,}"'
四、使用 iptraf-ng 查看连接级与协议级详情
iptraf-ng 是 iptraf 的现代维护分支,提供交互式彩色界面,支持按协议(TCP/UDP/ICMP)、端口、主机、接口多维度统计,并可导出日志,适合深度排查。
1、安装 iptraf-ng(CentOS/RHEL):sudo yum install iptraf-ng
2、安装 iptraf-ng(Debian/Ubuntu):sudo apt install iptraf-ng
3、启动交互式监控:sudo iptraf-ng
4、在主菜单中选择“IP traffic monitor”进入连接视图,或选择“General interface statistics”查看各接口汇总。
五、使用 bmon 查看图形化实时速率与历史趋势
bmon 采用 curses 构建多窗口界面,内置滑动窗口历史图表,支持多种输出格式(包括 JSON),可直观观察速率波动与峰值位置。
1、运行 bmon 默认监控所有接口:bmon
2、指定接口(如 enp0s3)并启用图形渲染:bmon -p enp0s3
3、切换显示单位为 Mbps:bmon -u M
4、导出当前统计为 JSON 格式供脚本解析:bmon -o json:stdout -p enp0s3










