真神奇的一个小工具。

iftop简介

iftop是一个命令行系统监控工具用来显示网络连接。默认按照带宽使用排序连接,并且最大带宽消耗排最上方。iftop在命名的网络接口上监听网络流量并显示按照主机对显示当前流量带宽。

如果没有指定接口,iftop将监听在外部接口(使用libcaplibncurses)的第一个接口上。iftop必须使用超级管理员权限运行,因为需要监控所有网络流量。

默认iftop将解析地址对应的主机名并计算所有通过过滤器的IP地址。主机名查询会增加网络流量而显示在网络流量展示中。

iftop交互界面操作

T - 显示或隐藏累积网络数据量(cumulative),会在显示主机对的3列网络速率rate左边再增加一列显示累积数据量cum
S - 显示源端端口
D - 显示目的端端口
n - 显示主机IP地址而不是解析的主机名
1/2/3 - 按照指定列进行排序
< - 根据源名字排序
> - 根据目的名字排序
P - 暂停显示(否则就不断更新当前显示)
j/k - 滚动显示
? - 帮助

iftop启动参数解析

启动参数实际就是交互中的模式

Synopsis: iftop -h | [-npbBP] [-i interface] [-f filter code] [-N net/mask]

   -h                  显示帮助信息
   -n                  不执行主机名DNS解析(即直接显示IP地址而不是主机名)
   -N                  不执行端口转换成服务操作(直接显示端口数字)
   -p                  运行在混杂模式(此时会显示整个网段中其他主机`部分`流量)
   -b                  不显示流量的图形条
   -B                  采用字节(bytes)显示带宽
   -i interface        监听在指定网络接口
   -f filter code      使用过滤代码来选择计数的数据包(默认是none,但是只计算IP包)
   -F net/mask         显示网络的in/out数据流
   -P                  显示端口
   -m limit            设置带宽等级的上限
   -c config file      指定替代的配置文件

iftop可以接收一系列启动参数,大多数参数和交互界面的快捷键相关。

使用-f参数是一种过滤特性数据包的方法,可以组合网络,主机或端口。例如以下只显示在/dev/wlan0无线网卡接口的SSH数据包:

iftop -i wlan0 -f "dst port 22"

一些组合案例:

过滤器 描述
dst host 1.2.3.4 所有目标地址是1.2.3.4的数据包
src port 22 所有从端口22发出的数据包
dst portrange 22-23 端口范围是22到23范围的数据包
gateway 1.2.3.5 使用网关地址1.2.3.5的数据包

资源