iftop实时网络流量监控

一、iftop 有什么作用

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

二、安装 iftop

①、编译安装

安装所需要依赖包

[root@docker ~]# yum install -y gcc flex byacc libpcap ncurses ncurses-devel libpcap-devel tcpdump

下载工具包:

[root@localhost data]# wget http://www.ex-parrot.com/pdw/iftop/download/iftop-1.0pre4.tar.gz

解压:

[root@localhost data]# tar -zxvf iftop-1.0pre4.tar.gz

安装

[root@docker iftop-1.0pre4]# ./configure --prefix=/usr/local/iftop

[root@docker iftop-1.0pre4]# make && make install

②、或者直接 yum 命令安装:

[root@localhost ~]# yum install iftop -y

三、运行 iftop 命令

[root@localhost data]# iftop

从输出的界面中,主要分为是三大部分:

第一部分:输出最上面的一行,显示网卡带宽流量

第二部分:分为左中右三列,左列和中列记录了哪些 IP 或主机正在连接本机的网络

中列的 => 代表发送数据

<= 代表接收数据

通过这些指示箭头可以很清晰的知道两个 IP 之间的通信情况

最右列的三个小列:

分别表示外部 IP 连接到本机 2s,10s 和 40s 的平均流量

还有一个流量图形条,可以很快的看出那个 IP 的流量最大

第三部分:iftop 输出的最下面,分为三行

TX:发送的数据

RX:接收的数据

TOTAL:发送和接收的全部数据

对应的三列:

cum:从运行 iftop 到目前的发送,接收和总数据流量

peak:发送,接收以及总的流量峰值

rates:过去 2s,10s,40s 的平均流量值

四、iftop 相关参数

[root@localhost ~]# iftop -h

参数 含义

-i 指定需要检测的网卡

[root@localhost ~]# iftop -i ens33

-n 将输出的主机信息都通过 IP 显示,不进行 DNS 解析

-B 将输出以 byte 为单位显示网卡流量,默认是 bit

-p 以混杂模式运行 iftop,此时 iftop 可以用作网络嗅探器

-N 只显示连接端口号,不显示端口对应的服务名称

-P 显示主机以及端口信息

-F 显示特定网段的网卡进出流量 如 iftop -F 192.168.85.0/24

-m 设置输出界面中最上面的流量刻度最大值,流量刻度分 5 个大段显示 如 iftop -m limit

-f 使用筛选码选择数据包来计数 如 iftop -f filter code

-b 不显示流量图形条

-c 指定可选的配置文件 如 iftop -c config file

-t 使用不带 ncurses 的文本界面,

如下两个是只和-t 一起用的:

-s num num 秒后打印一次文本输出然后退出

-L num 打印的行数

五、进入 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 退出监控。

六、使用案例

  1. 使用 iftop 工具查出来是哪些 IP 地址在

  2. 请求主机的带宽资源

可以看到 148 到 147 的流量,以及返回的流量都不是很大,都只有 6 兆,7 兆左右,流量占用整个带宽都很小