收藏!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下的网络流量情况。
请先 后发表评论~