iftop什么是Linux系统下实时监控服务器网络带宽使用情况,工具有很多,比如iptraf、nethogs等,但是推荐使用小而强大的iftop工具。iftop是一款免费的Linux系统网卡实时流量监控工具,类似于top命令。iftop可以监控指定网卡的实时流量、端口连接信息、反向IP分析等,还可以准确显示本机的网络流量以及网络中主机与本机之间的流量采集机器。它非常适合监控代理服务器或路由器网络流量。同时iftop对于检测流量异常的主机非常有效。iftop的输出可以快速定位异常主机流量的来源,对于网络排查和网络安全检测非常有用。缺点是没有报告功能,必须以root身份运行。安装1.通过软件管理工具安装#CentOS$sudoyuminstallliftop#Ubuntu$sudoaptinstallliftop2.通过源码编译安装#安装比较软件包$sudouminstalllibpcaplibpcap-develncursesncurses-develflexbyacc#下载软件包$wget"http://www.ex-parrot.com/~pdw/iftop/download/iftop-0.17.tar.gz"$tarzxvfiftop-0.17.tar.gz$cdiftop-0.17$./configure$make&&makeinstall3.常用参数-i指定网卡到被检测到,如果有多个网络接口,则需要注意网络接口的选择。例如:#iftop-ieth1-B将以字节为单位输出网卡流量。默认为bit-n,输出的主机信息将通过IP显示,无需DNS解析。-N只显示连接端口号,不显示端口对应的服务名-F显示特定网段网卡的出入流量如:iftop-F192.168.85.0/24-hhelp,显示参数信息-p以混杂模式运行iftop,此时iftop可以作为网络嗅探器-P显示主机和端口信息-m设置输出界面topflowscale的最大值,流量比例分成5大段显示如:#iftop-m100M-f使用filter代码选择数据包统计,如iftop-ffiltercode-b不显示流量图bar-c指定一个可选配置文件,如:iftop-cconfigfile-t使用文本界面,不带ncurses,下面两个只与-t一起使用:-snumnum秒打印一个文本输出然后退出,-t-s60结合使用,表示取60输出到终端的网络流量秒数-Lnum打印行数ed-f参数支持tcpdump的语法,可以使用各种过滤条件。界面操作1.界面信息安装好iftop工具后,直接输入iftop命令即可显示网卡的实时流量信息。默认情况下,iftop显示系统中第一块网卡的流量信息。如果要显示指定网卡的信息,可以使用“-i”参数来实现。执行“iftop-P-ieth0”命令得到一个典型的iftop输出界面如下图所示。iftop输出的第一部分最上面一行,这行信息是trafficscale,用来显示网卡的带宽流量。第二部分这部分是分界线的中间部分,分别分为左、中、右三栏。左侧和中间的列记录了哪些IP或主机连接到本地网络。其中,中间一栏的“=>”代表发送数据,“<=”代表接收数据。通过这个指示箭头,可以清楚的知道两个IP之间的通信情况。最右边的列分为三个子列。这些实时参数分别代表外网IP连上机器后2秒、10秒、40秒内的平均流量值。另外,这部分还有一个流量图条,是在第一部分的流量规模的基础上,动态显示流量大小。通过这个流量图条,可以很方便的看到哪个IP的流量最大,进而快速定位到网络中可能出现的流量问题。第三部分位于iftop输出的底部,可以分为三行,其中“TX”表示发送数据,“RX”表示接收数据,“TOTAL”表示发送和接收所有流量。这三行对应的是三列,其中“cum”列代表从运行iftop到现在的发送、接收和总数据流量。“峰值”列表示发送、接收和总流量峰值。“rates”栏代表过去2s、10s、40s的平均流量值。2、交互操作在iftop的实时监控界面,还可以对输出结果进行交互操作,对输出信息进行整理和过滤。在上图所示界面中,按“h”进入交互选项界面,如下图。iftop的交互功能与Linux下的top命令非常相似。交互参数主要分为4个部分,分别是通用参数、主机显示参数、端口显示参数和输出排序参数。相关参数含义如下表所示。参数含义P按此键切换暂停/继续显示h按此键在交互参数界面/状态输出界面来回切换b按此键切换是否显示平均流量图条B按此键显示切换显示2秒,10秒内平均流量,40秒T可切换是否显示各连接总流量j/k按j键或k键可上下翻屏显示当前连接l通过该键可以开启iftop输出过滤功能,比如输入要显示的IP,回车,屏幕只会显示与该IP相关的流量信息。L用此键切换显示流量刻度范围。比例不同,流量图条会相应变化q按此键退出iftop流量监控界面n按此键以IP或主机名形式显示iftop输出结果s按此键切换是否显示源主机信息d按此键切换是否显示远程目标主机信息t按此键切换iftop显示格式。连续按此键顺序显示:两行显示发送和接收流量,一行显示发送和接收流量,只显示发送和接收流量。端口号对应服务名S可以通过该按钮切换是否显示本地源主机的端口信息D可以通过该按钮切换是否显示远程目标主机的端口信息p可以切换是否显示端口通过该按钮获取信息1/2/3根据最近2秒、10秒、40秒的平均网络流量排序<通过该键可以根据左侧的本地主机名或IP地址排序>通过该键,可以根据远程目标主机的主机名或IP地址进行排序oPass该键可以切换是否显示当前连接。例子1.显示网卡eth0的信息,主机通过ip显示$iftop-ieth0-n2.显示端口号(加-P参数,进入界面,通过p参数关闭)$iftop-ieth0-n-P3.显示会以字节为单位输出网卡流量,默认为bit$iftop-ieth0-n-B4.显示流量进度条##进入界面后按L$iftop-ieth0-n5.显示每个连接的总流量##进入界面后按T$iftop-ieth0-n6.显示指定ip172.17.1.158的流量进入界面后按l,然后输入172.17.1.158按输入)$iftop-ieth0-n实战下面我们通过找出最耗流量的IP和端口号来演示iftop的强大功能。1、进入界面$iftop-ieth0-nNB-m10M-i指定网卡,-n表示主机通过ip显示不带DNS-N只会显示连接端口号,不会显示服务名对应端口(不加会显示如ssh服务名,不易排错)-B指定显示单位为Kb,默认为bit,太小了!-m设置输出界面顶部的流量刻度最大值。流量刻度分为5大段,进入后界面如下:2、按L显示流量刻度。L参数直接显示进度条,方便人类阅读。3.按T显示总数。有总统计,方便看!4.按3,根据最近40s的统计,用平均值统计最权威的点数。5.按t,发送和接收合二为一。图中的172.17.1.158是我们查到的流量使用最多的IP。7.过滤指定IP172.17.1.158,按l,输入172.17.1.158,回车后如下图,只会看到这个IP的流量监控8.查看这个是哪个端口流量IP使用最多按p,这里显示的是端口号,我们已经学会了如何找出流量使用最多的IP和端口号。
