linux下常用流量监控软件的使用说明

时间:2022-11-19 23:13:12

1 目的

在工作中,经常会遇到linux流量查看的问题,所以做好流量监控还是很有必要的,于是研究下linux流量监控的方法,在这里和大家分享一下。下面一一介绍这几款软件和具体实现步骤,希望工作中对大家更好的排查网络流量问题有所帮助。

2 常用软件

2.1 iptraf

2.1.1 iptraf简介

iptraf是一个IP网络监控工具。它能拦截网络上的报文,获取报文各个部分的信息,如:

1. IPTCPUDPICMP报文总数和非IP字节数。

l TCP连接的源/目的地址和源/目的端口。

l TCP报文数和字节数。

l TCP标志状态。

l UDP/目的信息。

l ICMP类型信息。

l OSPF/目的信息。

l TCPUDP服务统值。

l 网络接口报文计数。

l 网络接口IP校验和错误数目。

l 网络接口活动指示器。

1. LAN统计

iptraf能够用于监视IP网络的负载。iptraf使用Linux内核的内置原始包捕获接口,可以广泛地用于以太网卡,支持FDDI适配器、ISDN适配器以及任何异步SLIP/PPP接口。

2.1.2 安装iptraf

Iptraf有两种安装方式,一般是使用光盘自带的rpm包进行安装,首先检测安装环境,查看安装环境需求是否满足rpm安装。

2.1.2.1 查看系统环境

--- gcc 2.7.2.3 or later

--- GNU C (glibc) development library 2.1 or later

--- ncurses development libraries 4.2 or later

可以在linux下执行:

# rpm -qa | grep gcc

# rpm -qa | grep glibc

# rpm -qa | grep ncurses

查看信息如下:

linux下常用流量监控软件的使用说明 

2.1.3 rpm软件包安装iptraf

满足安装条件后,可以进行rpm包的安装:

mount /dev/cdrom /mnt/

cd /mnt/CentOS

rpm -ivh iptraf-3.0.0-5.el5.i386.rpm 

2.1.4 源代码包安装iptraf

如果不支持rpm安装,则请使用以下方式安装

使用wgetiptraf官网上下载源代码软件包

wget http://iptraf.seul.org/pub/iptraf/Iptraf-2.7.0.tar.gz

开始安装

# tar zxf Iptraf-2.7.0.tar.gz

# cd Iptraf-2.7.0

# ./Setup

至此,安装完毕。安装程序会将执行程序安装到 /usr/local/bin 目录下,并创 /var/local/iptraf 目录放置iptraf的配置文件,同时创建 /var/log/iptraf 目录放置iptraf产生的日志文件。

2.2 查看iptraf 命令的帮助

iptraf -h

iptraf主要命令行参数说明 命令行格式:

iptraf { [  -f  ] [ -q ] [ { -i iface | -g | -d iface | -s iface | -z iface | -l iface } [ -t timeout ] [ -B [ -L logfile ] ] ] | [ -h ] } 

参数说明:

-i 网络接口

iptraf监视特定的网络接口,如:eth0-i all表示监视系统的所有网络接口。

-g

网络接口的一般统计信息。

-d 网络接口

显示特定网络接口的详细统计信息。

-s 网络接口

对特定网络接口的TCP/UDP数据流量进行监视。

-z 网络接口

监视局域网的特定网络接口。-l all表示全部。

-t timeout

使iptraf在指定的时间后,自动退出。如果没有设置iptraf就会一直运行,直到用户按下退出键(x)才退出。

-B

使iptraf在后台运行。单独使用无效(被忽略直接进入菜单界面),只能和-i-g-d-s-z-l中的某个参数一块使用。

-L filename

如果使用-B参数,使用-L filename使iptraf把日志信息写入其它的文件(filename)中。如果filename不包括文件的绝对路径,就把文件放在默认的日志目录(/var/log/iptraf)

-q

这个参数现在已经不用了。原来,如果iptraf运行在使用IP地址伪装(IP Masquerading)的内核上时,会出现大量的警告信息。现在新版的IP Masquerading代码已经没有这个问题了。

-f

使iptraf强制清除所有的加锁文件,重置所有实例计数器。

2.3 iptraf的使用

在终端输入iptraf,就会出现它的菜单:

linux下常用流量监控软件的使用说明 

linux下常用流量监控软件的使用说明 

2.3.1 菜单IP Traffic Monitor

IP数据包流量实时监控窗口,监控所有的来往数据包。在这里可以实时的看到每一个连接的流量状态,它有两个窗口,上面的是TCP的连接状态,下面的窗口可以看到UDPICMPOSPFIGRPIGPIGMPGREARPRARP的数据包。可以点击s键选择排序,可以按照包的数量排序,也可按照字节的大小排序,如果因为它是实时变化的而导致看不太清楚的话,可以在Configure菜单中把Logging功能打开,它就会在/var/log/iptraf 目录中记录日志,以方便你在日后查看,当Logging功能打开后,当开始监控IP Traffic时,程序会提示你输入Log文件的文件名,默认的是ip_traffic-1.log

linux下常用流量监控软件的使用说明 

2.3.2 菜单General Interface Statistics

显示每个网络设备出去和进入的数据流量统计信息,包括总计、IP包、非IP包、Bad IP包、还有每秒的流速,单位是kbit/sec或者是kbyte/sec ,这由Configure菜单的Activity选项决定

linux下常用流量监控软件的使用说明 

2.3.3 菜单Detailed Interface Statistics

显示每个网络设备的详细的统计信息。

linux下常用流量监控软件的使用说明 

2.3.4 菜单Statistical Breakdowns

显示更详细的统计信息,可以按包的大小分类,分别统计;也可以按Tcp/Udp的服务来分类统计。按s键可以显示一个排序菜单;按p键,会以报文的数量进行排序;按b键,会以字节数进行排序;按T键,以进入的报文数排序;按O键,以进入的字节数排序;按F键,以向外的报文数进行排序;按M键,以向外的字节数进行排序;按任意键取消排序。

linux下常用流量监控软件的使用说明 

2.3.5 菜单LAN station monitor

显示所有局域网的信息

linux下常用流量监控软件的使用说明 

2.3.6 菜单Filters

设置过滤规则,通过该设置可以过滤掉不需要的数据包。它包括六个选项,分别是:TcpUdpOther IPARPRARPNon-ip。下面以TCP为例说明,其他选项的配置都很相似。

— Defining a New Filter 要求填入所建规则的描述名,然后回车确定,Ctrlx取消。  再接下来的对话框里

Host name/IP address: 前面的框填源地址,后面的框填目标地址。

Wildcard mask:分别是源地址和目标地址所对应的掩码。

注意,这里的地址即可以是单个地址,也可以是一个网段,如果是单个IP,则相应的子网掩码要填成255.255.255.255,如果是一个网段,则填写相应的子网掩码:例如,想表示192.168.0.0,有256IP地址的网段,则填写192.168.0.0,子网是:255.255.255.0,其他类推,All则用0.0.0.0,子网也是0.0.0.0表示。

Port:填入要过滤的端口号,0表示任意端口号

Include/Exclude:填入I或者EI表示包括,E表示排除

— Applying a Filter 让过滤规则生效

— Editing a Defined Filter 编辑一个已经存在的规则

— Deleting a Defined Filter 删除一个已经定义的规则

— Detaching a Filter 取消执行当前所有应用的规则

linux下常用流量监控软件的使用说明 

linux下常用流量监控软件的使用说明 

2.3.7 菜单Configure

对 iptraf 进行配置,所有的修改都将保存在文件:/var/local/iptraf/iptraf.cfg 中。具体配置选项如下:

— Reverse DNS Lookups IP地址反查 DNS名,默认是关闭的

— TCP/UDP Service Names 使用服务器代替端口号,如用www 代替80,默认关闭

— Force promiscuous 混杂模式,此时网卡将接受所有到达的数据,不管是不是发给自己的。

— Color 终端显示彩色,用telnet ,ssh连接除外,也就是用不支持颜色的终端连接肯定还是没有颜色。

— Logging 同时产生日志文件,在/var/log/iptraf 目录下

— Activity mod 可以选择统计单位是kbit/sec 还是 kbyte/sec

— Source MAC addrs in traffic monitor 显示数据包的源MAC地址

linux下常用流量监控软件的使用说明 

至此,安装和使用方法完毕!!!

3 iftop

3.1 iftop简介

iftop是用来监控网卡的实时流量(可以指定网段),反向解析ip,显示端口信息,是类似于top的实时流量监控工具。

3.2 iftop安装

Linux系统中没有存在iftop相应的rpm包,所以要使用源码包编译安装

3.2.1 下载iftop

下载地址:http://www.ex-parrot.com/pdw/iftop/download/

使用wget下载 http://www.ex-parrot.com/pdw/iftop/download/iftop-0.17.tar.gz

3.2.2 开始安装

#cd /usr/local/src/

#wget http://www.ex-parrot.com/pwd/iftop/download/iftop-0.17.tar.gz

#tar zxvf iftop-o.17.tar.gz

#cd iftop-0.17

#./configure && make && make install

3.3 iftop界面相关说明

界面上面显示的类似刻度尺的刻度范围,为显示图形的长条做标尺用的。

中间<= =>这两个左右箭头,表示的是流量的方向。

TX:发送流量;

RX:接收流量;

TOTAL:总流量;

Cumm:运行iftop到目前时间的总流量;

Peak:流量峰值;

Rates:分别表示过去2s 10s 40s的平均流量

linux下常用流量监控软件的使用说明 

3.4 iftop的常用参数

-i:设定监测的网卡;

-B:以bytes为单位显示流量(默认是bits);

-n:使host信息默认直接都显示IP

-N:使端口信息默认直接都显示端口号;

-F:显示特定网段的进出流量,如:iftop -F 10.10.1.0/24

-p:显示本地主机信息和本机以外的ip信息;

-b:默认显示流量图形条;

-f:过滤计算包时使用此参数;

-P:默认显示host信息及端口信息;

-m:设置界面最上边的刻度最大值;如:iftop -m 100M

-c:指定具体的设定条件;

3.5 iftop使用

进入iftop界面后的一些操作命令快捷键(区分大小写)

h切换是否显示帮助信息;

n键切换显示本机的ip或主机名;

s键切换是否显示host信息;

d键是否显示远端目标主机的host信息;

t键显示格式为2/1/只显示发送流量/只显示接收流量;

N键显示端口号和端口服务名称;

S键切换是否显示本机的端口信息;

D键是否显示远端目标主机的端口信息;

p键是否显示端口信息;

P暂停或继续;

T是否显示每个连接的总流量;

按小l开屏幕过滤功能,输入要过滤的字符;

按大L显示画面上的刻度,刻度不同,流量图形条也会随之变化;

jk向上向下滚动屏幕;

按数字1.23,根据右侧显示的三列流量数据排序;

q退出监控;

3.5.1 iftop监控图形实例

iftop -i eth0

linux下常用流量监控软件的使用说明 

iftop -Bbytes为单位显示流量(默认是bits

linux下常用流量监控软件的使用说明 

至此,iftop网络监控软件安装使用完毕!!!!

4 ifstat

4.1 ifstat简介

Linux/Unix监控系统网卡的实时流量,iftop是个不错的选择。她可以详细到来源和目标及端口,iftop相比ifstat信息更加的丰富,但是如果只监控网卡的流量ifstat当然是最佳选择 。

Ifstat主要报告接口状态,是一个网络流量监测程序。能够查看网卡的流出和流入的字节。

简单的说:ifstat就像iostat/vmstat描述其他的系统状况一样,是一个统计网络接口活动状态的工具。

4.2 ifstat安装

ifstat工具系统中并不默认安装,需要自己下载源码包,重新编译安装

4.2.1 下载地址

http://gael.roualland.free.fr/ifstat/ (官网)

4.2.2 开始安装

#cd /usr/local/src/

wget http://gael.roualland.free.fr/ifstat/ifstat-1.1.tar.gz

#tar zxvf ifstat-1.1.tar.gz

#cd ifstat-1.1

#./configure && make && make install

4.3 ifstat参数介绍(ifstat --help

-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参数运行ifstat时最顶部会出现网络接口的名称,当一屏显示不下时,会再一次出现接 口的名称,提示 我们显示的流量信息具体是哪个网络接口的。加上-n参数把周期性的显示接口名称关闭,只显示一次)

-t :在每一行的开头加一个时间 戳(能告诉我们具体的时间)

-T :报告所有监测接口的全部带宽(最后一列有个total,显示所有的接口的in流量和所有接口的out流量,简单的把所有接口的in流量相加,out 流量相加)

-w :用指定的列宽,而不是为了适应接口名称的长度而去自动放大列宽

-W :如果内容比终端窗口的宽度还要宽就自动换行

-S :在同一行保持状态更新(不滚动不换行)注:如果不喜欢屏幕滚动则此项非常方便,与bmon的显示方式类似

-b :用kbits/s显示带宽而不是kbytes/s(bitbyte有何区别应该都知道吧)

-q :安静模式,警告信息不出现

-v :显示版本信息

-d: 指定一个驱动来收集状态信息

4.4 ifstat运行

只运行ifstatifstat -i eth0结果一样

linux下常用流量监控软件的使用说明 

4.4.1 监测图片实例

Ifstat -l.    监测环路网络接口(lo)。缺省情况下,ifstat监测活动的所有非环路网络接口。经使用发现,加上-l参数能监测所有的网络接口的信息, 而不是只监测 lo的接口信息,也就是说,加上-l参数比不加-l参数会多一个lo接口的状态信息。

linux下常用流量监控软件的使用说明 

至此,ifstat安装使用完毕!!!!

5 Nload

5.1 nload简介

nload是个很好用的一个工具,功能也很强,主要是用来即时监看网路状态和各ip所使用的频宽。只是相对单一,只能查看总的流量,不能像iptraf那样,可针对IP,协议等不过nload可以实时地监控网卡的流量,Incoming,Outgoing两部分,也就是流入与流出的流量。上半部分是:Incoming也就是进入网卡的流量,下半部分是:Outgoing,也就是从这块网卡出去的流量,每部分都有当前流量(Curr),平均流量(Avg),最小流量(Min),最大流量(Max),总和流量(Ttl)这几个部分组成。

5.2 Nload安装

linux系统环境下没有自带的rpm包,必须要进行源码包编译安装

5.2.1 下载

Nload的官网下载地址:http://www.roland-riegel.de/nload/

5.2.2 开始安装

#cd /usr/local/src/

#wget http://www.roland-riegel.de/nload/nload-0.7.02.tar.gz

#tar zxvf nload-0.7.02.tar.gz

#cd nload-0.7.02

#./configure && make && make install

5.3 查看nload参数帮助命令

Nload --help

-a:这个好像是全部数据的刷新时间周期,单位是秒,默认是300.-i:进入网卡的流量图的显示比例最大值设置,默认10240 kBit/s.-m:不显示流量图,只显示统计数据。

-o:出去网卡的流量图的显示比例最大值设置,默认10240 kBit/s

-t:显示数据的刷新时间间隔,单位是毫秒,默认500

-u:设置右边CurrAvgMinMax的数据单位,默认是自动变的.注意大小写单位不同-U:设置右边Ttl的数据单位,默认是自动变的.注意大小写单位不同(与-u相同)!Devices:自定义监控的网卡,默认是全部监控的,使用左右键切换。

5.4 nload使用

运行nload

linux下常用流量监控软件的使用说明 

如果只监控eth0:命令如下:

# nload eth0使用 nload eth0 ,可以查看第一网卡的流量情况,显示的是实时的流量图

linux下常用流量监控软件的使用说明 

 # nload -m 可以同时查看多个网卡的流量情况。

linux下常用流量监控软件的使用说明 

至此,安装使用完毕!!!!

6 命令

6.1 watch命令

#watch more /proc/net/dev

linux下常用流量监控软件的使用说明 

watch -n 1 "/sbin/ifconfig eth0 | grep bytes"查看网络流量动态变化,其中数字1是指每一秒监测一次

动态信息;

linux下常用流量监控软件的使用说明 

#watch ifconfig

RX,TX数据是在不断更新变化的

linux下常用流量监控软件的使用说明 

6.2 sar命令

Sar这款性能监视工具,几乎可以输出linux可以完成的所有数据,命令在sysstat rpm中提供,它可以显示CPU,运行队列,磁盘I/O,内存,分页,网络等性能数据,sar最重要的功能是创建数据文件。

常用参数有:

-u:输出显示cpu信息;

-d:输出显示磁盘I/O信息;

-n:使用不同的开关,共有四个:DEV,EDEV,SOCK,FULL.DEV显示网络接口信息;EDEV显示关于网络错误的统计数据;SOCK显示套接字信息;FULL显示以上三个开关的所有信息。如:sar -n DEV

Sar功能非常强大,这里不做过多介绍。

6.3 netstat命令

6.3.1 参数介绍

-a-all:所有连接的socket

-n:直接使用ip地址,不通过域名服务器;

-t:显示tcp传输协议的连接状态;

-u:显示udp传输协议的连接状态;

-l-listening:显示监听中的服务器的socket

-p:显示程序识别码或程序名称;

-e:显示关于以太网的信息;

-r:显示关于路由表的信息;

6.3.2 常用命令参数搭配

netstat  -ano查看端口运行的服务以及这个端口对外连接情况;

linux下常用流量监控软件的使用说明 

如:查看指定端口的网络连接数,netstat -atln | grep <port> - c

netstat -aut 列出所有tcpudp端口

linux下常用流量监控软件的使用说明 

netstat -antulp命令可以查看正在连接的网络信息

linux下常用流量监控软件的使用说明 

上面最重要的其实是-l参数,因为它列出处于listen状态的port

netstat -a | more列出所有端口

 

linux下常用流量监控软件的使用说明 

netstat -r显示核心路由信息

linux下常用流量监控软件的使用说明 

netstat筛选实例

范例1:先把tcp的状态列表取出来,然后使用uniq -c 统计,之后再进行排序

netstat -nat | awk '{print $6}'

netstat -nat | awk '{print $6}' | sort | uniq -c

netstat -nat | awk '{print $6}' | sort | uniq -c | sort -rn

linux下常用流量监控软件的使用说明 

范例2:列出每个连线ip的连接数量

命令如下:netstat -ant | grep "ESTABLISHED" | cut -b 49-75 | cut -d ':' -f1 | sort | uniq -c | sort -n -r --key=1,7 | head -10

linux下常用流量监控软件的使用说明 

分隔符之间的所有命令都可以单独执行,下面一一分析

1netstat -ant 显示所有已建立连接的tcp信息

linux下常用流量监控软件的使用说明 

2netstat -nta | fgrep "ESTABLISHED"在上条命令的基础上筛选ESTABLISHED信息;

linux下常用流量监控软件的使用说明 

3netstat -nta | fgrep "ESTABLISHED" | cut -b 49-75 | cut -d ':' -f1在前条命令的执行结果上cut筛选出49-75之间的信息,然后取出以“:”为分割符的第一列,(因为第二条命令筛选的信息中:之前的第一列信息为空,所以这里不显示任何信息)

linux下常用流量监控软件的使用说明 

4)netstat -nta | fgrep "ESTABLISHED" | cut -b 49-75 | cut -d ':' -f1 | sort | uniq -c | sort -n -r --key=1,7此条命令中多了sortuniq命令,其中sort参数设置的目的多用于排序,如命令中参数-n是按算术值对数字字段进行排序,-r是颠倒指定排序的顺序,--key指定关键字排序;然后uniq命令参数设置的目的多用于检查文本文件中重复出现的行或列,显示唯一的行,对于那些重复出现的行仅显示一次。,c显示重复出现的次数,较常用的还有-u,只显示一次的行或列。Sortuniq命令参数选项有很多,如果想加深了解的话可查看--help信息。

linux下常用流量监控软件的使用说明 

 

6.4 tcpdump抓包

Tcpdump不仅可以分析数据包的流向,连数据包的内容也可以进行监听,如果使用明文传输数据的话,很可能被别人监听走重要信息。注意:tcpdump必须使用root的身份执行。

-A:数据包的内容以ASCII显示,通常用来抓取WWW的网页数据包数据;

-e:使用数据链路层(OSI第二层)MAC数据包数据来显示;

-nn:直接以ipport number显示,而非主机名与服务名称;

-q:列出简短的数据包信息;

-X:可以列出十六进制以及ASCII的数据包内容,对于监听数据包内容很有用的。

-i:后面接要监听的网络接口,如eth0lo ppp0等的界面;

-w:后面接文件名,表示将监听所得的数据包数据存储下来;

-r:从后面接的文件将数据包数据读出来。这个文件是已经存在的文件,是由前面-w参数生成的。

-c:监听的数据包数量,如果不设置这个参数,tcpdump会持续不断的监听下去;

范例1:以IP port number 获取eth0这个网卡上的数据包,持续3s,监听数据包数量为6

linux下常用流量监控软件的使用说明 

范例2:在范例1的基础上,只取出port22的连接数据包,我们可以这样做:

linux下常用流量监控软件的使用说明 

范例3:下面我们使用tcpdump监听来自eth0网卡,并且通信协议为port22,目标数据包来源为10.15.62.138的数据包数据

linux下常用流量监控软件的使用说明 

6.5 日志分析

tail -n 10 /var/log/messages 日志分析

linux下常用流量监控软件的使用说明