在Linux系统中,监控网络流量是系统管理和故障排查的重要任务,通过命令行工具可以高效获取网络接口的实时流量、历史数据或连接状态,以下是常用的Linux查看网络流量命令及其详细用法,涵盖不同场景需求。

iftop:实时流量监控工具
iftop通过监听网络接口的数据包,实时显示各主机的带宽使用情况,适合查看当前流量较大的连接。
安装:
sudo apt install iftop # Debian/Ubuntu sudo yum install iftop # CentOS/RHEL
常用参数:
-i:指定网络接口,如iftop -i eth0;-n:以数字形式显示主机名,避免DNS解析;-P:显示端口信息;-t:非交互模式,便于日志记录。
示例:运行iftop后,界面会显示实时上传/下载速度、连接目标IP及端口,按q退出。
nethogs:按进程监控流量
nethogs按进程分类显示网络带宽使用情况,能快速定位占用高流量的程序。
安装:
sudo apt install nethogs
用法:

sudo nethogs eth0 # 指定接口监控
输出包括进程ID、名称、上传/下载速度,异常流量进程可直接终止。
iptraf-ng:图形化流量分析工具
iptraf-ng提供交互式界面,支持实时流量、TCP/UDP连接、接口统计等多种监控模式。
安装:
sudo apt install iptraf-ng
操作:运行iptraf-ng后,选择“IP traffic monitor”可查看实时流量,“Interface stats”可查看历史统计。
vnstat:长期流量统计
vnstat通过后台服务持续记录网络流量,支持按天、周、月查看历史数据,适合长期监控。
安装与初始化:

sudo apt install vnstat sudo vnstat --eth0 -u # 初始化eth0接口数据
常用命令:
vnstat:显示今日流量;vnstat -d:按天统计;vnstat -m:按月统计。
数据持久化:需确保vnstat服务开机自启(sudo systemctl enable vnstat)。
sar:系统活动报告工具
sar是sysstat包的一部分,可通过-n DEV参数查看网络设备的历史流量数据。
安装:
sudo apt install sysstat
查看实时流量:
sar -n DEV 1 5 # 每秒刷新一次,共5次
查看历史数据:
sar -n DEV -f /var/log/sysstat/saDD # DD为日期,如sa10
其他实用命令
- ifconfig:查看网络接口基本信息(如IP、MTU),结合
watch ifconfig eth0可实时监控流量变化。 - netstat -i:显示网络接口统计数据,如接收/发送数据包数量。
- tcpdump:抓取网络数据包,适合深度分析流量内容(需结合
-i指定接口)。
不同工具对比表
| 工具名 | 主要功能 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|---|
| iftop | 实时连接流量监控 | 快速定位高流量连接 | 直观显示主机和端口 | 无历史数据 |
| nethogs | 按进程统计流量 | 定位异常进程 | 关联进程与流量 | 需root权限 |
| vnstat | 长期流量统计 | 月度/年度流量分析 | 数据持久化 | 初始化后需等待数据积累 |
| sar | 系统历史数据报告 | 服务器流量趋势分析 | 支持长时间跨度 | 需提前开启sysstat服务 |
相关问答FAQs
Q1:iftop显示流量为0,但网络连接正常,如何解决?
A:可能原因包括:
- 接口名错误,使用
ifconfig确认接口名称; - 权限不足,需用
sudo iftop运行; - 流量较小,尝试
iftop -t -s 10(10秒采样)或改用nethogs。
Q2:如何统计过去24小时内某个接口的总流量?
A:使用vnstat结合日期参数:
vnstat -d -i eth0 | grep "$(date +%Y-%m-%d)" | awk '{print $9}'
或通过/var/log/vnstat/eth0日志文件手动计算,确保vnstat服务已正常运行。
