菜鸟科技网

Linux查看网络流量,哪个命令最实用?

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

Linux查看网络流量,哪个命令最实用?-图1
(图片来源网络,侵删)

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

用法

Linux查看网络流量,哪个命令最实用?-图2
(图片来源网络,侵删)
sudo nethogs eth0  # 指定接口监控

输出包括进程ID、名称、上传/下载速度,异常流量进程可直接终止。

iptraf-ng:图形化流量分析工具

iptraf-ng提供交互式界面,支持实时流量、TCP/UDP连接、接口统计等多种监控模式。
安装

sudo apt install iptraf-ng

操作:运行iptraf-ng后,选择“IP traffic monitor”可查看实时流量,“Interface stats”可查看历史统计。

vnstat:长期流量统计

vnstat通过后台服务持续记录网络流量,支持按天、周、月查看历史数据,适合长期监控。
安装与初始化

Linux查看网络流量,哪个命令最实用?-图3
(图片来源网络,侵删)
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

其他实用命令

  1. ifconfig:查看网络接口基本信息(如IP、MTU),结合watch ifconfig eth0可实时监控流量变化。
  2. netstat -i:显示网络接口统计数据,如接收/发送数据包数量。
  3. 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服务已正常运行。

分享:
扫描分享到社交APP
上一篇
下一篇