linux流量统计 centos查看网络流量
大家好,今天小编来为大家解答linux流量统计这个问题,centos查看网络流量很多人还不知道,现在让我们一起来看看吧!
盘点Linux那些查看或统计网卡流量的几种方式
sar命令包含在sysstat工具包中,用于统计基于网络接口的数据,可以查看设备上每秒收发包的个数和流量。执行命令例如:sar-n DEV 1 2,向网卡(默认eth0)每秒读取1次值,共读取2次,然后显示出来。
在Linux内核中,/proc/net/dev文件提供了用户访问和更改网络适配器及统计信息的途径。注意,因为proc是伪文件系统,只存在内存中,统计的时间起止时间是从系统启动到命令执行。数据在重启时会清零。
ifstat是一个统计网络接口活动状态的工具,用于监控网络接口的活动状态。需要安装后使用,常用选项包括-tT等。使用示例:ifstat-tT。
iftop是一款实时流量监控工具,监控TCP/IP连接等,但无报表功能。必须以root身份才能运行。iftop命令选项包括-h、-npblNBP等。使用示例:iftop-i eth0-t-s 30-L 100。
nload是一个实时监控网络流量和带宽使用的控制台应用程序。用于可视化地展示接收和发送的流量,并提供附加信息。nload命令选项包括[options] [devices]等。使用示例:nload eth0。
iptraf-ng是观察网络流速的强力工具,可从硬件层到传输层逐步深入监控。iptraf-ng命令选项包括[options]:等。使用示例:sudo iptraf-ng-s eth0。
nethogs专门用于查看单独进程流量情况。nethogs命令选项包括[-V] [-h] [-b] [-d seconds]等。使用示例:sudo nethogs eth0。
Linux还提供了其他流量监控工具,例如扩展部分提及的工具。
如何在Linux下统计高速网络中的流量
Linux下统计高速网络流量方法如下:
在Linux中有很多的流量监控工具,它们可以监控、分类网络流量,以花哨的图形用户界面提供实时流量分析报告。大多数这些工具(例如:ntopng,iftop)都是基于libpcap库的,这个函数库是用来截取流经网卡的数据包的,可在用户空间用来监视分析网络流量。尽管这些工具功能齐全,然而基于libpcap库的流量监控工具无法处理高速(Gb以上)的网络接口,原因是由于在用户空间做数据包截取的系统开销过高所致。
在本文中我们介绍一种简单的Shell脚本,它可以监控网络流量而且不依赖于缓慢的libpcap库。这些脚本支持Gb以上规模的高速网络接口,如果你对“汇聚型”的网络流量感兴趣的话,它们可统计每个网络接口上的流量。
脚本主要是基于sysfs虚拟文件系统,这是由内核用来将设备或驱动相关的信息输出到用户空间的一种机制。网络接口的相关分析数据会通过“/sys/class/net/<ethX>/statistics”输出。
举个例子,eth0的网口上分析报告会输出到这些文件中:
/sys/class/net/eth0/statistics/rx_packets:收到的数据包数据
/sys/class/net/eth0/statistics/tx_packets:传输的数据包数量
/sys/class/net/eth0/statistics/rx_bytes:接收的字节数
/sys/class/net/eth0/statistics/tx_bytes:传输的字节数
/sys/class/net/eth0/statistics/rx_dropped:收包时丢弃的数据包
/sys/class/net/eth0/statistics/tx_dropped:发包时丢弃的数据包
这些数据会根据内核数据发生变更的时候自动刷新。因此,你可以编写一系列的脚本进行分析并计算流量统计。下面就是这样的脚本(感谢 joemiller提供)。第一个脚本是统计每秒数据量,包含接收(RX)或发送(TX)。而后面的则是一个描述网络传输中的接收(RX)发送(TX)带宽。这些脚本中安装不需要任何的工具。
测量网口每秒数据包:
#!/bin/bash
INTERVAL="1"#update interval in seconds
if [-z"$1" ]; then
echo
echousage:$0 [network-interface]
echo
echoe.g.$0 eth0
echo
echoshows packets-per-second
exit
fi
IF=$1
while true
do
R1=`cat/sys/class/net/$1/statistics/rx_packets`
T1=`cat/sys/class/net/$1/statistics/tx_packets`
sleep$INTERVAL
R2=`cat/sys/class/net/$1/statistics/rx_packets`
T2=`cat/sys/class/net/$1/statistics/tx_packets`
TXPPS=`expr$T2-$T1`
RXPPS=`expr$R2-$R1`
echo"TX$1:$TXPPS pkts/s RX$1:$RXPPS pkts/s"
done
网络带宽测量
#!/bin/bash
INTERVAL="1"#update interval in seconds
if [-z"$1" ]; then
echo
echousage:$0 [network-interface]
echo
echoe.g.$0 eth0
echo
exit
fi
IF=$1
while true
do
R1=`cat/sys/class/net/$1/statistics/rx_bytes`
T1=`cat/sys/class/net/$1/statistics/tx_bytes`
sleep$INTERVAL
R2=`cat/sys/class/net/$1/statistics/rx_bytes`
T2=`cat/sys/class/net/$1/statistics/tx_bytes`
TBPS=`expr$T2-$T1`
RBPS=`expr$R2-$R1`
TKBPS=`expr$TBPS/ 1024`
RKBPS=`expr$RBPS/ 1024`
echo"TX$1:$TKBPS kb/s RX$1:$RKBPS kb/s"
done
下面的屏幕截图显示了上面的两个脚本的输出。
Linux 查看或统计网卡流量的几种方式么
在工作中,经常需要查看服务器的实时网卡流量,以监控网络状况和优化资源分配。本文将介绍几种常用的Linux命令和工具,用于查看和统计Linux服务器的实时网卡流量。
1. sar命令包含在sysstat工具包中,可以提供基于网络接口的数据统计,如每秒收发包的个数和流量。使用命令:sar-n DEV 1 2,可以每秒读取1次值,共读取2次,并显示结果。
2. cat/proc/net/dev是Linux内核提供的一种通过/proc文件系统访问内核内部数据结构的机制。/proc/net/dev目录提供给用户读取或更改网络适配器及统计信息的途径。注意,该目录统计的数据时间起止范围为系统启动到命令执行,重启后数据将清零。
3. ifstat是一个统计网络接口活动状态的工具。首先需要安装ifstat,使用命令:sudo apt-get update,sudo apt-get install ifstat。命令选项和使用示例在文档中详细说明。
4. iftop是一款实时流量监控工具,监控TCP/IP连接等。安装iftop使用命令:sudo apt-get update,sudo apt-get install iftop。iftop的输出分为三大部分,使用示例和按键控制说明在文档中提供。
5. nload是一个实时监控网络流量和带宽使用的控制台应用程序。首先安装nload,使用命令:sudo apt-get update,sudo apt-get install nload。使用示例包括接收和发送流量的可视化展示。
6. iptraf-ng是一个观察网络流速的强力工具,可以逐层深入分析网络数据。首先安装iptraf-ng,使用命令:sudo apt-get update,sudo apt-get install iptraf-ng。详细参数说明在文档中提供。
7. nethogs是一个查看进程流量情况的工具,按进程进行带宽分组,适用于网络阻塞分析。首先安装nethogs,使用命令:sudo apt-get update,sudo apt-get install nethogs。使用示例说明在文档中。
以上工具和命令提供了多种查看Linux服务器实时网卡流量的方法,满足不同的监控需求。除了上述提到的工具外,Linux还提供了其他流量监控工具,如扩展部分列出的工具。
本文中提供的资源包括Linux学习视频、电子书等,免费共享给需要学习和提升Linux技能的朋友们。资料预览在文章结尾展示,可通过访问链接获取。欢迎关注,点赞、收藏、转发支持。开源Linux社区欢迎各位贡献和交流。