代码改变世界

Linux那些查看或统计网卡流量的几种方式

  youxin  阅读(2950)  评论(0编辑  收藏  举报

iftop 是类似于 top 的实时流量监控工具,主要用来显示本机网络流量情况以及各个相互通信的流量集合,可以用来监控网卡的实时流量。

 

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

 

顶部部分
界面上面显示的是类似刻度尺的刻度范围,为显示流量图形的长条作标尺用的

中间部分
此部分分为左中右三列
左列:本地的网络
<= =>:表示的是流量的方向
中列:远程的网络
右列:实时参数分别是该访问ip连接到本机2秒,10秒和40秒的平均流量
这部分还有流量条形图,是对流量大小的动态展示,以第一部分的流量刻度为基准 

 

底部部分

  • TX:发送流量
  • RX:接收流量
  • TOTAL:总流量
  • Cumm:运行iftop到目前时间的总流量
  • peak:流量峰值
  • rates:分别表示过去 2s 10s 40s 发送、接收及总的平均流量
  1. iftop输出中最上面的一行,此行信息是流量刻度,用于显示网卡带宽流量。
  2. iftop输出中最大的一个部分,此部分又分为左、中、右三列,左列和中列记录了哪些IP或主机正在和本机的网络进行连接。其中,中列的“=>”代表发送数据,“<=”代表接收数据,通过这个指示箭头可以很清晰地知道两个IP之间的通信情况。最右列又分为三小列,这些实时参数分别表示外部IP连接到本机2秒内、10秒内和40秒内的平均流量值。另外,这个部分还有一个流量图形条,流量图形条是对流量大小的动态展示,以第一部分中的流量刻度为基准。通过这个流量图形条可以很方便地看出哪个IP的流量最大,进而迅速定位网络中可能出现的流量问题。
  3. 第三部分位于iftop输出的最下面,可以分为三行,其中,“TX”表示发送数据,“RX”表示接收数据,“TOTAL”表示发送和接收全部流量。与这三行对应的有三列,其中“cum”列表示从运行iftop到目前的发送、接收和总数据流量。“peak”列表示发送、接收以及总的流量峰值。“rates”列表示过去2s、10s、40s的平均流量值。

 

 

iftop语法
功能说明:可以查看实时的网络流量,监控TCP/IP连接,反向解析IP,显示端口信息等
语法:

iftop -h | [-npblNBP] [-i interface] [-f filter code] [-F net/mask] [-G net6/mask6]
1
-h:显示本帮助(Help)信息
-n:不进行主机名(hostName)查找
-N:不将端口号(port Number)转换成对应的服务 to services
-p:混合(Promiscuous)模式(显示网络相关的其他主机信息)
-b:不显示流量图形条(Bar)
-B:以字节(Byte)为单位,显示带宽(Bandwidth);默认以比特(bit)显示的
-i interface:监控的网卡接口(interface)
-f filter code:包统计时,使用过滤码;默认:无,只统计IP包
-F net/mask:显示特定IPv4网段的进出流量(Flow);如# iftop -F 10.10.1.0/24
-G net6/mask6:显示特定IPv6网段的进出流量(Flow)
-l:显示并统计IPv6本地(Local)链接的流量(默认:关)
-P:显示端口(Port)
-m limit:设置显示界面上侧的带宽刻度(liMit)
-c config file:指定配置(Config)文件
-t:使用不带窗口菜单的文本(text)接口
排序:
-o 2s:Sort by first column (2s traffic average)
-o 10s:Sort by second column (10s traffic average[default]
-o 40s:Sort by third column (40s traffic average)
-o source:Sort by source address
-o destination:Sort by destination address
The following options are only available in combination with -t

-s num:print one single text output afer num seconds, then quit
-L num:number of lines to print
iftop常用参数
-i:设定监测的网卡,如:# iftop -i eth1
-B:以bytes为单位显示流量(默认是bits),如:# iftop -B
-n:使host信息默认直接都显示IP,如:# iftop -n
-N:使端口信息默认直接都显示端口号,如: # iftop -N
-F:显示特定网段的进出流量,如# iftop -F 10.10.1.0/24或# iftop -F 10.10.1.0/255.255.255.0
-h:(display this message),帮助,显示参数信息
-p:使用这个参数后,中间的列表显示的本地主机信息,出现了本机以外的IP信息;
-b:使流量图形条默认就显示;
-f:这个暂时还不太会用,过滤计算包用的;
-P:使host信息及端口信息默认就都显示;
-m:设置界面最上边的刻度的最大值,刻度分五个大段显示,例:# iftop -m 100M
————————————————
原文链接:https://blog.csdn.net/qq_39341113/article/details/103560477

 

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: 设备驱动程序发送或接收的多播帧数

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

 

 

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
历史上的今天:
2014-07-24 chrome插件 postman插件 接口测试、API & HTTP 请求调试工具
2014-07-24 Yii 实现restful
2014-07-24 restful理解
2014-07-24 转:Web service是什么?
2014-07-24 mysql select count(filed) 问题(where条件没有数据匹配的话也有数据返回)。
2014-07-24 Yii 配置文件
2013-07-24 转:CSS选择器笔记
点击右上角即可分享
微信分享提示