当前位置:首页 > Linux > 正文

linux 如何查看流量

Linux中,可使用 iftopnload等工具实时查看流量,或通过 /proc/net/dev文件查看网络接口流量信息

Linux系统中,有多种方法可以查看流量信息,以下为您详细介绍:

使用命令行工具

  1. 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)
    • 局限性:只能查看静态的网络接口信息,无法实时监控流量变化。
  2. 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
    • 局限性:同样不能实时监控流量。
  3. cat /proc/net/dev

    linux 如何查看流量  第1张

    • 功能:该文件包含了网络接口的流量统计信息,如接收和发送的字节数、数据包数等。
    • 用法:在终端输入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秒刷新一次。

使用专门的流量监控工具

  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"
  2. 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)等。
  3. vnstat

    • 功能:主要用于统计网络流量的历史数据,但也有一个实时监控模式,可以查看网络接口的长期带宽使用趋势。
    • 安装:在Debian或Ubuntu系统上,使用sudo apt get install vnstat命令安装;在CentOS或RHEL系统上,使用sudo yum install vnstat命令安装,安装后需初始化:sudo systemctl start vnstatsudo systemctl enable vnstat
    • 用法:查看历史统计信息可以使用vnstat i eth0(查看eth0接口的历史流量统计),实时监控使用vnstat l i eth0,每秒更新流量速率。
  4. bmon

    • 功能:带有多窗口界面的网络流量监控工具,既可以查看网络接口的整体流量,也能深入细节,提供多种显示模式。
    • 安装:在Debian或Ubuntu系统上,使用sudo apt get install bmon命令安装;在CentOS或RHEL系统上,使用sudo yum install bmon命令安装。
    • 用法:在终端输入bmon启动,还可以指定接口,如bmon p eth0,操作技巧方面,按d查看详细统计,按g切换图形模式,按q退出。
  5. iptraf

    • 功能:提供交互式界面,能按协议、连接等分类展示流量,功能丰富,可进行详细的网络流量分析。
    • 安装:在Debian或Ubuntu系统上,使用sudo apt get install iptraf命令安装;在CentOS或RHEL系统上,使用sudo yum install iptraf命令安装。
    • 用法:在终端输入sudo iptraf启动,进入交互式界面后,可以通过菜单选择不同的功能,如查看各个接口的流量、按协议分类的流量等。

通过系统服务查看(以sysstat为例)

  1. 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),就可以查看该接口的月流量统计信息,包括本月已使用的流量、
0