Linux 下监控网卡流量的软件 iftop<?xml:namespace prefix = o />

官网上说使用 iftop 需要 libpcap libcurses 这两个包。

用命令查找了一下

# rpm -qa | grep libpcap

libpcap-0.9.4-8.1

只找到了这个,缺少 libpcap-devel-0.9.4 就继续安装了。

出错了 :configure: error: can't find pcap.h You're not going to get very far without libpcap.

我用的是 Redhat EL5.3 系统 , 从安装盘里找了 libpcap rpm 包,安装后再编译,安装成功。

# rpm -ivh libpcap-devel-0.9.4-14.el5.i386.rpm

Libcurses 这个包没装过,因为安装时也没出错,所以暂时就没装!

安装 iftop

# tar zxvf iftop-0.17.tar.gz

# cd iftop-0.17

# ./configure --prefix=/usr/local/iftop && make && make install

# /usr/local/iftop/sbin/iftop       // 监测 eth0 网卡流量

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

中间的 <= => 这两个左右箭头,表示的是流量的方向, 2 行显示时,进和出的流量是分开计算的,一行显示时是加在一起计算的 ; 单独显示进或出时就是单独的进或出的流量。

右侧的三列数值

第一列是:在此次刷新之前 2s 10s 40s 的平均流量(按 B 设置秒数) ;

第二列是:在此次刷新之前 10 钟的总 流量的一半 ;

第三列是:在此次刷新之前 40 钟的总 流量的 1/5;

中间的列表 ,默认没有排序情况下,把 10 秒平均通信量大的排在前面。

界面最下面的三行 显示的分别是发送、接收、总计的流量,右侧值分别是总流量(过滤后的,没过滤就是全部的)、在此次刷新之前 40 秒内的峰值流量、最近 2 秒的平均传输速率、最近 10 秒的平均传输速率、最近 40 秒的平均传输速率。

常用的参数:

# /usr/local/iftop/sbin/iftop help // 查看帮助命令

-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 )没明白啥意思呢。。。 hehe

-p 使用这个参数后,中间的列表显示的本地主机信息,出现了本机以外的 IP 信息 ;

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

-f 这个暂时还不太会用,过滤计算包用的 ;

-P 使 host 信息及端口信息默认就都显示 ;

-m 设置界面最上边的刻度的最大值,刻度分五个大段显示,例: # iftop -m 100M

-c 指定具体的设定文件,暂时没用过 ;

iftop 画面 后的一些操作命令 ( 注意大小写 )

h 切换是否显示帮助 ;

n 换显 示本机的 IP 或主机名 ;

s 切换是否显示本机的 host 信息 ;

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

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

N 换显 端口号或端口服务名称 ;

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

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

p 是否 端口信息 ;

P 切换 / 继续 ;

b 是否 示平均流量图形条 ;

B 换计 2 秒或 10 秒或 40 秒内的平均流量 ;

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

l 打开屏幕过滤功能,输入要过滤的字符,比如 ip, 按回车后,屏幕就只显示这个 IP 相关的流量信息 ;

L 切换显示画面上边的刻度 ; 刻度不同,流量图形条会有变化 ;

j 或按 k 可以向上或向下滚动屏幕显示的连接记录 ;

1 2 3 可以根据右侧显示的三列流量数据进行排序 ;

< 根据左边的本机名或 IP 排序 ;

> 根据远端目标主机的主机名或 IP 排序 ;

o 切换是否固定只显示当前的连接 ;

f 可以编辑过滤代码,这是翻译过来的说法,我还没用过这个!

! 可以使用 shell 命令,这个没用过!没搞明白啥命令在这好用呢!

q 退出监控。

OK ,就写到这吧暂时 ~~~ 呵呵,写得不好,欢迎高手们一起研究一下哈 ~~~ 嘿嘿 ~~~