上一篇
linux 如何查看流量
- Linux
- 2025-07-13
- 2701
Linux中,可使用
iftop
、
nload
等工具实时查看流量,或通过
/proc/net/dev
文件查看网络接口流量信息
Linux系统中,有多种方法可以查看流量信息,以下为您详细介绍:
使用命令行工具
-
ifconfig
- 功能:显示网络接口的基本信息,包括IP地址、子网掩码、接收和发送的数据包数量等。
- 用法:直接在终端输入
ifconfig
,它会列出系统中所有网络接口的详细信息,对于常见的以太网接口eth0
,会显示类似如下信息:eth0 Link encap:Ethernet HWaddr 00:0c:29:68:22:1d inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:123456 errors:0 dropped:0 overruns:0 frame:0 TX packets:654321 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 Rx bytes:12345678 (12.3 MB) TX bytes:87654321 (87.6 MB)
- 局限性:只能查看静态的网络接口信息,无法实时监控流量变化。
-
ip addr
- 功能:与
ifconfig
类似,用于查看网络接口的IP地址等信息,是iproute2
工具集的一部分,相对更现代化。 - 用法:在终端输入
ip addr
,它会显示网络接口的详细信息,包括IP地址、子网掩码、广播地址等。2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:0c:29:68:22:1d brd ff:ff:ff:ff:ff:ff inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe68:221d/64 scope link valid_lft forever preferred_lft forever
- 局限性:同样不能实时监控流量。
- 功能:与
-
cat /proc/net/dev
- 功能:该文件包含了网络接口的流量统计信息,如接收和发送的字节数、数据包数等。
- 用法:在终端输入
cat /proc/net/dev
,会显示类似如下内容:Inter Receive Transmit face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed lo: 123456 1234 0 0 0 0 0 0 123456 1234 0 0 0 0 0 0 eth0: 987654321 876543 0 0 0 0 0 0 123456789 456789 0 0 0 0 0 0
- 局限性:需要手动刷新才能获取最新数据,不够实时,可以通过结合
watch
命令实现定时刷新,如watch -n 1 cat /proc/net/dev
,每隔1秒刷新一次。
使用专门的流量监控工具
-
iftop
- 功能:实时显示网络接口的流量情况,类似于
top
命令,能显示每个连接的源IP、目标IP、端口号以及流量速率等信息,可帮助排查哪个连接占用了大量带宽。 - 安装:在Debian或Ubuntu系统上,使用
sudo apt get install iftop
命令安装;在CentOS或RHEL系统上,使用sudo yum install iftop
命令安装。 - 用法:安装完成后,在终端输入
sudo iftop
即可启动,默认会监控第一个活动接口,按h
查看帮助,按n
切换IP/主机名显示,按p
显示端口号,还可以使用f
参数过滤流量,例如只看HTTP流量:sudo iftop i eth0 f "port 80"
。
- 功能:实时显示网络接口的流量情况,类似于
-
nload
- 功能:以图表形式实时显示网络接口的流量情况,直观地展示流入和流出的流量速率,适合快速查看接口的总体使用情况。
- 安装:在Debian或Ubuntu系统上,使用
sudo apt get install nload
命令安装;在CentOS或RHEL系统上,使用sudo yum install nload
命令安装。 - 用法:在终端输入
nload
会显示所有接口的实时流量,也可以指定接口,如nload eth0
,它提供了一些参数选项,如a
设置全部数据的刷新时间周期(单位是秒,默认是300s),i
设置进入网卡的流量图的显示比例最大值(默认10240 kBit/s),o
设置出去网卡的流量图的显示比例最大值(默认10240 kBit/s)等。
-
vnstat
- 功能:主要用于统计网络流量的历史数据,但也有一个实时监控模式,可以查看网络接口的长期带宽使用趋势。
- 安装:在Debian或Ubuntu系统上,使用
sudo apt get install vnstat
命令安装;在CentOS或RHEL系统上,使用sudo yum install vnstat
命令安装,安装后需初始化:sudo systemctl start vnstat
和sudo systemctl enable vnstat
。 - 用法:查看历史统计信息可以使用
vnstat i eth0
(查看eth0接口的历史流量统计),实时监控使用vnstat l i eth0
,每秒更新流量速率。
-
bmon
- 功能:带有多窗口界面的网络流量监控工具,既可以查看网络接口的整体流量,也能深入细节,提供多种显示模式。
- 安装:在Debian或Ubuntu系统上,使用
sudo apt get install bmon
命令安装;在CentOS或RHEL系统上,使用sudo yum install bmon
命令安装。 - 用法:在终端输入
bmon
启动,还可以指定接口,如bmon p eth0
,操作技巧方面,按d
查看详细统计,按g
切换图形模式,按q
退出。
-
iptraf
- 功能:提供交互式界面,能按协议、连接等分类展示流量,功能丰富,可进行详细的网络流量分析。
- 安装:在Debian或Ubuntu系统上,使用
sudo apt get install iptraf
命令安装;在CentOS或RHEL系统上,使用sudo yum install iptraf
命令安装。 - 用法:在终端输入
sudo iptraf
启动,进入交互式界面后,可以通过菜单选择不同的功能,如查看各个接口的流量、按协议分类的流量等。
通过系统服务查看(以sysstat为例)
- sar
- 功能:是sysstat包的一部分,它可以记录系统活动,包括网络流量,通过查看历史数据,可以了解网络流量的变化趋势。
- 安装与配置:在Debian或Ubuntu系统上,使用
sudo apt get install sysstat
命令安装;在CentOS或RHEL系统上,使用sudo yum install sysstat
命令安装,要查看历史数据,需要确保syslogng或者rsyslog正在运行并且配置正确,以便sar能够写入日志文件。 - 用法:查看历史数据使用
sudo sar n DEV f /var/log/sa/saXX
(其中saXX是你想要查看的日志文件),查看昨天的网络流量历史数据,可以找到对应的日志文件进行查看。
以下是一个简单的对比表格,归纳了上述几种方法的特点:
方法 | 实时性 | 功能特点 | 适用场景 |
---|---|---|---|
ifconfig/ip addr | 否 | 查看网络接口基本信息,如IP地址、子网掩码等 | 快速获取网络接口的基本配置信息 |
cat /proc/net/dev | 可结合watch实现一定程度的实时 | 查看网络接口的流量统计信息,如接收和发送的字节数、数据包数等 | 需要查看网络接口的流量统计数据时 |
iftop | 是 | 实时显示每个连接的源IP、目标IP、端口号以及流量速率等信息,可过滤流量 | 排查哪个连接占用了大量带宽,实时监控网络连接的流量情况 |
nload | 是 | 以图表形式实时显示网络接口的流量情况,直观展示流入和流出的流量速率 | 快速查看接口的总体使用情况,对流量速率有直观的了解需求时 |
vnstat | 实时监控模式有一定实时性,主要侧重历史数据统计 | 统计网络流量的历史数据,也可实时监控,能查看长期带宽使用趋势 | 需要长期追踪带宽使用趋势,分析网络流量的历史数据时 |
bmon | 是 | 带有多窗口界面,可查看整体流量和细节,提供多种显示模式 | 需要深入了解网络流量细节,对流量监控有个性化需求时 |
iptraf | 是 | 提供交互式界面,能按协议、连接等分类展示流量,功能丰富 | 需要进行详细的网络流量分析,按不同维度查看流量情况时 |
sar(sysstat包) | 查看历史数据 | 记录系统活动,包括网络流量,可查看历史流量变化趋势 | 分析网络流量的历史数据,了解流量变化趋势时 |
FAQs
问题1:iftop命令中的-f
参数如何使用?
- 解答:
-f
参数用于过滤流量,后面跟上过滤条件。sudo iftop -i eth0 -f "port 80"
表示只查看eth0接口上端口号为80的流量信息,这在只想关注特定端口的流量时非常有用,比如排查Web服务器的流量问题。
问题2:vnstat如何查看某个接口的月流量统计?
- 解答:首先确保vnstat已经安装并初始化,然后使用命令
vnstat -i [interface] --monthly
(将[interface]替换为具体的网络接口名称,如eth0),就可以查看该接口的月流量统计信息,包括本月已使用的流量、