Linux 查看或统计网卡流量的几种方式【全】

您所在的位置:网站首页 查看所有网络状态信息怎么查 Linux 查看或统计网卡流量的几种方式【全】

Linux 查看或统计网卡流量的几种方式【全】

2024-07-03 01:16| 来源: 网络整理| 查看: 265

在工作中,我们经常需要查看服务器的实时网卡流量。通常,我们会通过这几种方式查看Linux服务器的实时网卡流量。

目录

1、sar

2、 /proc/net/dev

3、ifstat

4、iftop

5、nload 

 6、iptraf-ng

7、nethogs

8、扩展

1、sar

sar命令包含在sysstat工具包中,提供了基于网络接口的数据统计,也可以查看设备上每秒收发包的个数和流量。

sar -n DEV 1 2

上面命令的含义是:向网卡(默认eth0)每秒读取1次值,共读取2次,然后显示出来:

 详细使用教程参考博客:《sar — Linux 上最为全面的系统性能分析工具之一》

2、cat /proc/net/dev

Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的。

/proc文件系统中包含了很多目录,其中/proc/net/dev就是提供给用户读取或更改网络适配器及统计信息的途径。

注意:因为proc是伪文件系统,只存在内存中,所以这里统计的数据的时间起止时间是:系统启动到命令执行,如果此时系统发生重启,数据将会清零。

 参数说明:

bytes: 接口发送或接收的数据的总字节数packets: 接口发送或接收的数据包总数errs: 由设备驱动程序检测到的发送或接收错误的总数drop: 设备驱动程序丢弃的数据包总数fifo: FIFO缓冲区错误的数量frame: 分组帧错误的数量colls: 接口上检测到的冲突数compressed: 设备驱动程序发送或接收的压缩数据包数carrier: 由设备驱动程序检测到的载波损耗的数量multicast: 设备驱动程序发送或接收的多播帧数

其实,我们平时经常用的很多查看网卡实时流量的命令,都是通过读取该目录下的实时流量,并通过简单计算得到的。

3、ifstat

ifstat是一个统计网络接口活动状态的工具。

(1)安装

sudo apt-get update sudo apt-get install ifstat

(2)命令选项

-l 监测环路网络接口(lo)。缺省情况下,ifstat监测活动的所有非环路网络接口。经使用发现,加上-l参数能监测所有的网络接口的信息,而不是只监测 lo的接口信息,也就是说,加上-l参数比不加-l参数会多一个lo接口的状态信息。-a 监测能检测到的所有网络接口的状态信息。使用发现,比加上-l参数还多一个plip0的接口信息,搜索一下发现这是并口(网络设备中有一 个叫PLIP (Parallel Line Internet Protocol). 它提供了并口...)-z 隐藏流量是无的接口,例如那些接口虽然启动了但是未用的-i 指定要监测的接口,后面跟网络接口名-s 等于加-d snmp:[comm@][#]host[/nn]] 参数,通过SNMP查询一个远程主机-h 显示简短的帮助信息-n 关闭显示周期性出现的头部信息(也就是说,不加-n参数运行ifstat时最顶部会出现网络接口的名称,当一屏显示不下时,会再一次出现接口的名称,提示我们显示的流量信息具体是哪个网络接口的。加上-n参数把周期性的显示接口名称关闭,只显示一次)-t 在每一行的开头加一个时间 戳(能告诉我们具体的时间)-T 报告所有监测接口的全部带宽(最后一列有个total,显示所有的接口的in流量和所有接口的out流量,简单的把所有接口的in流量相加,out流量相 加)-w  用指定的列宽,而不是为了适应接口名称的长度而去自动放大列宽-W 如果内容比终端窗口的宽度还要宽就自动换行-S 在同一行保持状态更新(不滚动不换行)注:如果不喜欢屏幕滚动则此项非常方便,与bmon的显示方式类似-b 用kbits/s显示带宽而不是kbytes/s-q 安静模式,警告信息不出现-v 显示版本信息-d 指定一个驱动来收集状态信息

(3)使用示例:

ifstat -tT 

参数说明: 

in:网卡接收的总字节数out:网卡发送的总字节数 4、iftop

iftop是一款实时流量监控工具,监控TCP/IP连接等,缺点就是无报表功能。必须以root身份才能运行。

(1)安装

sudo apt-get update sudo apt-get install iftop

(2)命令选项

iftop -h | [-npblNBP] [-i interface] [-f filter code]                                [-F net/mask] [-G net6/mask6]

详细参数说明:

-i :指定需要监测的网卡-n:将输出的主机信息都通过IP显示,不进行DNS反向解析-B:将输出以bytes为单位显示网卡流量,默认是bits-p:以混杂模式运行iftop,此时iftop可以作为网络嗅探器使用-N:只显示连接端口号,不显示端口对应的服务名称-P:显示主机以及端口信息,这个参数非常有用-F:显示特定网段的网卡进出流量,例如:iftop –F 192.168.12.0/24-m:设置iftop输出界面中最上面的流量刻度最大值,流量刻度分五个大段显示-t :  使用文本方式显示结果,而非交互界面 -L :  指定结果显示的行数-s sec:  sec秒后输出结果,然后自动退出

 (3)使用示例:

1、sudo iftop -i eth0 -t -s 30 -L 100

注意,如果时间较长,各ip地址的cumulative累计和可能并不等于最终的Cumulative,此时可以每40s统计一次结果,然后将结果累加。

2、sudo iftop -i eth0 

iftop的输出从整体上可以分为三大部分:

iftop输出中最上面的一行,此行信息是流量刻度,用于显示网卡带宽流量。iftop输出中最大的一个部分,此部分又分为左、中、右三列,左列和中列记录了哪些IP或主机正在和本机的网络进行连接。其中,中列的“=>”代表发送数据,“


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3