Linux网络流量监控——iftop

451 阅读2分钟

iftop 是 Linux 系统一个免费的网卡实时流量监控工具,类似于 top 命令。iftop 可以监控指定网卡的实时流量、端口连接信息、反向解析 IP 等,还可以精确显示本机网络流量及网络内各主机和本机相互通信的流量集合,非常适合于监控代理服务器或路由器的网络流量。

安装

# CentOS
$ sudo yum install iftop

# Ubuntu
$ sudo apt install iftop

常用参数

-i 指定需要检测的网卡, 如果有多个网络接口,则需要注意网络接口的选择,如:# iftop -i eth1
-B 将输出以 byte 为单位显示网卡流量,默认是 bit
-n 将输出的主机信息都通过 IP 显示,不进行 DNS 解析 
-N 只显示连接端口号,不显示端口对应的服务名称
-F 显示特定网段的网卡进出流量  如: iftop -F 192.168.85.0/24
-h 帮助,显示参数信息
-p 以混杂模式运行 iftop,此时 iftop 可以用作网络嗅探器
-P 显示主机以及端口信息
-m 设置输出界面中最上面的流量刻度最大值,流量刻度分 5 个大段显示  如:# iftop -m 100M
-f 使用筛选码选择数据包来计数  如 iftop -f filter code
-b 不显示流量图形条
-c 指定可选的配置文件,如:iftop  -c config file
-t 使用不带 ncurses 的文本界面,
    以下两个是只和 -t 一起用的:
    -s num num 秒后打印一次文本输出然后退出,-t -s 60 组合使用,表示取 60 秒网络流量输出到终端
    -L num 打印的行数
-f 参数支持 tcpdump 的语法,可以使用各种过滤条件。

显示界面说明

=> / <= 流量方向
TX 发送流量
RX 接收流量
TOTAL 总流量
cumm 运行iftop到目前时间的总流量
peak流量峰值
rates 过去2s 10s 40s 的平均流量

交互操作说明

P        通过此键可切换暂停/继续显示
h        通过此键可在交互参数界面/状态输出界面之间来回切换
b        通过此键可切换是否显示平均流量图形条
B        通过此键可切换显示2秒、10秒、40秒内的平均流量
T        通过此键可切换是否显示每个连接的总流量
j/k      按j键或k键可以向上或向下滚动屏幕显示当前的连接信息
l        通过此键可打开iftop输出过滤功能,比如输入要显示的IP,按回车后,屏幕就只显示与这个IP相关的流量信息
L        通过此键可切换显示流量刻度范围,刻度不同,流量图形条会跟着变化
q        通过此键可退出iftop流量监控界面
n        通过此键可使iftop输出结果以IP或主机名的方式显示
s        通过此键可切换是否显示源主机信息
d        通过此键可切换是否显示远端目标主机信息
t        通过此键可切换iftop显示格式,连续按此键可依次显示:以两行显示发送接收流量、以一行显示发送接收流量、只显示发送流量/接收流量
N        通过此键可切换显示端口号/端口号对应服务名称
S        通过此键可切换是否显示本地源主机的端口信息
D        通过此键可切换是否显示远端目标主机的端口信息
p        通过此键可切换是否显示端口信息
1/2/3    根据最近 2 秒、10 秒、40 秒的平均网络流量排序
<        通过此键可根据左边的本地主机名或IP地址进行排序
>        通过此键可根据远端目标主机的主机名或IP地址进行排序
o        通过此键可切换是否固定显示当前的连接

常用示例

  1. 显示网卡 eth0 的信息
iftop -i eth0 -n
  1. 显示端口号(添加 -P 参数,进入界面可通过 p 参数关闭)
iftop -i eth0 -n -P
  1. 查找使用最多流量的ip和端口
iftop -i eth0 -nNB -m 10M