可通过iftop、nethogs、bmon、vnstat或watch+cat /proc/net/dev五种命令行工具实时监控linux网络流量:iftop按连接显示带宽,nethogs按进程统计,bmon提供多网卡图表,vnstat后台低开销采集,watch+cat实现零依赖速查。

如果您需要在Linux系统中快速掌握当前网络接口的实时流量情况,则可以通过命令行工具直接获取动态带宽使用数据。以下是实现该目标的多种方法:
一、使用iftop实时监控网络连接带宽
iftop是一款基于libpcap的终端网络流量监控工具,可按连接维度显示实时带宽占用,支持排序与过滤,适合排查高流量连接。
1、检查系统是否已安装iftop:执行iftop --version;若提示未找到命令,则需安装。
2、在CentOS/RHEL系统中运行:yum install -y iftop。
3、在Ubuntu/Debian系统中运行:apt update && apt install -y iftop。
4、以管理员权限启动实时监控:sudo iftop。
5、按P键暂停刷新,按S键切换显示源主机排序,按D键隐藏域名解析以加快响应。
6、观察界面中TX(发送)和RX(接收)列数值,单位为KB/s或MB/s,顶部第二行显示全局总带宽速率。
二、使用nethogs按进程维度查看带宽占用
nethogs按进程(PID)分组统计网络流量,能精准定位占用带宽的具体程序,避免因聚合统计掩盖单个应用异常。
1、确认nethogs是否可用:运行nethogs --version;如无响应则需安装。
2、在CentOS/RHEL系统中执行:yum install -y nethogs。
3、在Ubuntu/Debian系统中执行:apt install -y nethogs。
4、以root权限运行:sudo nethogs。
5、界面中每行代表一个活跃进程,显示其PID、用户、程序名、发送速率(sent)与接收速率(received)。
6、按m键可在kb/s、kb/s、mb/s单位间循环切换,按q退出。
三、使用bmon查看多网卡汇总与历史趋势
bmon提供类图形化终端界面,支持多网卡并行监控、速率图表绘制及历史峰值记录,适合长期值守场景。
1、检查bmon是否存在:bmon -V;若未安装则继续后续步骤。
2、在CentOS/RHEL 8+中启用EPEL源后执行:yum install -y bmon。
3、在Ubuntu/Debian中执行:apt install -y bmon。
4、直接运行:bmon(无需sudo,但部分接口可能需权限)。
5、界面顶部显示各网卡名称,下方柱状图实时反映当前速率,底部滚动显示瞬时速率、平均速率与最大速率。
6、按右方向键切换至“graph”视图,可查看过去60秒速率曲线。
四、使用vnstat生成轻量级后台带宽快照
vnstat不依赖实时抓包,而是通过内核计数器轮询采集,资源开销极低,适合7×24小时部署并一键调取最新统计。
1、安装vnstat:sudo apt install -y vnstat(Debian/Ubuntu)或sudo yum install -y vnstat(RHEL/CentOS)。
2、初始化数据库:执行sudo vnstat -u -i eth0(将eth0替换为实际主网卡名)。
3、启动vnstat服务使其后台持续收集:sudo systemctl enable vnstat && sudo systemctl start vnstat。
4、一键查看最新分钟级统计:vnstat -l。
5、输出中“current”行显示最近5分钟平均速率,“rx/tx”列为实时接收与发送速率估算值。
五、使用watch + cat /proc/net/dev实现零依赖速查
该方法不需额外安装任何软件,直接读取内核网络设备统计接口,适用于受限环境或最小化系统的一次性快速核查。
1、确认主网卡名称:执行ip -o link show | awk -F': ' '{print $2}' | grep -v '^lo$',常见为eth0、ens33或enp0s3。
2、运行持续刷新命令:watch -n1 'cat /proc/net/dev | grep -E "(Inter|eth|ens|enp)" | awk '\''{print $1, $2, $10}'\'' | column -t'。
3、输出三列分别为接口名、接收字节数(bytes)、发送字节数(bytes)。
4、手动计算速率:两次刷新间字节数差值除以1秒,再除以1024得到KB/s;例如接收列由12500000变为12510240,则速率为10.24 KB/s。










