收藏!Linux下如何实时查看网络流量

有时候我们需要查看Linux下网络的流量情况,以此排查故障或者评估带宽的情况,可以使用以下方法:

一、sar

sar是(System Activity Reporter 系统活动情况报告),是Linux下最全面的系统性能分析工具。sar命令包含在sysstat工具包中,可以提供系统的众多统计数据。

使用以下命令:sar -n DEV 1 2查看网络流量,代表每隔1秒钟取一次数据,连续取2次,DEV表示显示网络接口信息。

[root@node1 ~]# sar -n DEV 1 2
Linux 3.10.0-1062.12.1.el7.x86_64 (node1)       09/10/2022      _x86_64_        (1 CPU)

10:51:19 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
10:51:20 AM      eth0      1.00      1.00      0.06      0.17      0.00      0.00      0.00
10:51:20 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:51:20 AM   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00

10:51:20 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
10:51:21 AM      eth0      1.01      1.01      0.06      0.47      0.00      0.00      0.00
10:51:21 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
10:51:21 AM   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00

Average:        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
Average:         eth0      1.01      1.01      0.06      0.32      0.00      0.00      0.00
Average:           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:      docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00

参数-n可以指定不同的值:

  • DEV 显示网络接口信息。
  • EDEV 显示关于网络错误的统计数据。
  • NFS 统计活动的NFS客户端的信息。
  • NFSD 统计NFS服务器的信息
  • SOCK 显示套接字信息
  • ALL 显示所有

输出值中有很多的内容,可以重点关注以下几个值:

  • IFACE:LAN接口
  • rxpck/s:每秒钟接收的数据包
  • txpck/s:每秒钟发送的数据包
  • rxbyt/s:每秒钟接收的字节数
  • txbyt/s:每秒钟发送的字节数

通过这个命令就可以很简单的获取相关的网络流量信息了。

二、cat /proc/net/dev

Linux系统提供了proc文件系统,在运行时能够动态地访问内核内部数据结构,从操作系统内核中读出所需要的信息,用户和应用程序可以通过proc得到系统的统计信息,/proc文件系统中包含了很多目录,其中/proc/net/dev 保存了网络适配器及统计信息。

[root@node1 ~]# cat /proc/net/dev
Inter-|   Receive                                                |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
  eth0:    8883      95    0    0    0     0          0         0    11188      78    0    0    0     0       0          0
    lo:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
docker0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0

如上所示,Receive表示收包,Transmit表示发送包,bytes表示收发的字节数。

三、watch+ifconfig

watch命令定期监测命令的运行结果,避免手工不断执行,ifconfig可以用于显示或设置网络设备,以下为每隔1秒钟检测一次ifconfig命令执行结果,

[root@node1 ~]# watch -n 1 "ifconfig eth0"
Every 1.0s: ifconfig eth0                                                Sat Sep 10 11:19:35 2022

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.56.11  netmask 255.255.255.0  broadcast 192.168.56.255
        inet6 fe80::20c:29ff:fe5f:220a  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:5f:22:0a  txqueuelen 1000  (Ethernet)
        RX packets 149  bytes 13113 (12.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 112  bytes 18412 (17.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

RX packets表示读的数据包数量,紧跟着的bytes是字节数;TX packets指的是写得数据包数量,紧跟着的bytes是写得字节数。

通过以上的方法可以比较简单的查看Linux下的网络流量情况。

#头条创作挑战赛#

举报
评论 0