睿诚科技协会

Centos如何实时查看网络流量?

使用 iftop - 交互式实时流量监控 (最推荐)

iftop 是一个非常流行的实时网络流量监控工具,它能清晰地显示哪个 IP 地址正在占用最多带宽,非常适合排查网络瓶颈或异常流量。

Centos如何实时查看网络流量?-图1
(图片来源网络,侵删)

安装 iftop

如果系统中没有 iftop,可以使用 yum 安装:

# CentOS 7/8
sudo yum install iftop -y

使用 iftop

直接在命令行输入 iftop 即可启动:

sudo iftop

注意: iftop 需要 root 权限来捕获网络数据包。

界面解读

启动后,你会看到一个类似 top 命令的界面:

Centos如何实时查看网络流量?-图2
(图片来源网络,侵删)
                  => 10.0.1.100
                  <= 10.0.1.100
   Traffic      Ports
   ----------------------------
   10.0.1.1      22
                  <= 1.15 Mbits    1.52 Mbits    => 10.0.1.1
   10.0.1.2      80
                  <= 800 Kbits     920 Kbits     => 10.0.1.2
   10.0.1.3      443
                  <= 500 Kbits     600 Kbits     => 10.0.1.3
...
  • 中间部分:显示了当前网络连接中流量最大的源/目标 IP 地址。
  • <=入站流量(Inbound),即流向本机的流量。
  • =>出站流量(Outbound),即从本机流出的流量。
  • 最右侧:显示了对应的端口号。
  • 底部状态栏:显示所有网络接口的总流量、平均带宽等。

常用快捷键

  • n:显示主机名而不是 IP 地址。
  • N:再次按 N 切换回 IP 地址。
  • s:切换源主机/端口显示。
  • d:切换目标主机/端口显示。
  • p:暂停/恢复显示。
  • b:切换条形图显示模式。
  • q:退出 iftop

使用 nethogs - 按进程监控网络流量

nethogs 的特点是它能告诉你是哪个进程(Program)在消耗网络流量,这对于定位具体是哪个应用程序导致流量激增非常有用。

安装 nethogs

sudo yum install nethogs -y

使用 nethogs

直接运行即可:

sudo nethogs

界面解读

  PID USER     PROGRAM     DEV       SENT      RECEIVED
 1234 root     sshd        eth0      1.25MB    3.45MB
 5678 apache2  httpd       eth0      45.6MB    12.3MB
 9012 john     chrome      eth0      120MB     580MB
...
  • PID:进程 ID。
  • USER:运行该进程的用户。
  • PROGRAM:进程名。
  • DEV:使用的网络设备(如 eth0, ens33)。
  • SENTRECEIVED:该进程发送和接收的数据量。

q 键退出。


使用 iptraf / nload - 经典流量监控工具

iptraf (功能全面的网络监控器)

iptraf 是一个基于 curses 的 IP 网络监控器,功能非常强大。

Centos如何实时查看网络流量?-图3
(图片来源网络,侵删)

安装:

sudo yum install iptraf -y

使用:

sudo iptraf

启动后,它会提供一个菜单,你可以选择:

  • IP traffic monitor:监控 IP 流量。
  • General interface statistics:查看网络接口的通用统计信息。
  • Detailed interface statistics:查看指定接口的详细统计信息。

nload (简洁的双向流量图)

nload 以图形化的方式显示流入和流出网络设备的实时流量,非常直观。

安装:

sudo yum install nload -y

使用:

sudo nload

它会自动列出所有网络接口,你可以使用左右箭头键切换接口查看,按 q 退出。


使用 sar (系统活动报告器) - 历史数据分析

sarsysstat 软件包的一部分,它主要用于收集、报告和存储系统活动信息,它的优势在于可以查看历史网络流量数据,而不仅仅是实时数据。

安装 sysstat

sudo yum install sysstat -y

查看实时网络流量

sar -n DEV 1 5
  • -n DEV:显示网络设备统计信息。
  • 1:每隔 1 秒刷新一次。
  • 5:共刷新 5 次。

输出示例:

Linux 3.10.0-1160.el7.x86_64 (centos7)  11/20/2025  _x86_64_    (1 CPU)
12:00:01 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
12:00:02 PM        eth0     125.3     89.1      85.2      22.3      0.0       0.0       0.0
12:00:03 PM        eth0     210.5     95.4     142.1      25.6      0.0       0.0       0.0
...
Average:           eth0     167.9     92.2     113.6      23.9      0.0       0.0       0.0
  • rxpck/s:每秒接收的数据包数。
  • txpck/s:每秒发送的数据包数。
  • rxkB/s:每秒接收的数据量(KB)。
  • txkB/s:每秒发送的数据量(KB)。

查看历史网络流量

sar 会自动将数据保存到 /var/log/sa/ 目录下,你可以查看昨天的数据:

sar -n DEV -f /var/log/sa/saDD
# 查看昨天的数据
sar -n DEV -f /var/log/sa/sa19

DD 代表上个月的某一天。


使用 vnstat - 轻量级网络流量统计器

vnstat 是一个基于控制台的网络流量监控器,它后台运行,持续收集网络数据,并以友好的格式显示流量统计信息,非常适合查看长期的流量使用情况。

安装 vnstat

sudo yum install vnstat -y

初始化数据库

需要为要监控的网络接口创建数据库:

# 查看你的主网络接口,通常是 ens33 或 eth0
ip a
sudo vnstat -u -i eth0  # 将 eth0 替换成你的接口名

使用 vnstat

  • 查看今日流量:
    vnstat
  • 查看本月流量:
    vnstat -m
  • 查看昨日流量:
    vnstat -y
  • 查看实时流量(类似 nload):
    vnstat -l

总结与选择建议

工具名 主要特点 适用场景
iftop 交互式、按 IP/端口排序、实时 首选,快速定位哪个IP或连接占用了大量带宽。
nethogs 按进程监控、实时 当你需要知道是哪个程序(如Chrome, wget)导致流量异常时。
nload 图形化、直观显示双向流量 快速、直观地查看总流入/流出流量曲线。
iptraf 功能全面、菜单式操作 需要详细分析网络连接、协议、端口等综合信息时。
sar 查看历史数据、系统自带 分析过去某个时间段的网络流量趋势,用于故障排查或容量规划。
vnstat 长期统计、后台运行 监控网络接口的月、日、年流量使用情况,像流量计费一样。

对于绝大多数日常排查和监控需求,iftopnethogs 是最常用且最强大的组合,一个看连接,一个看进程。

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