iftop是什么?
iftop是一个实时监控服务器流量情况的工具
安装iftop
- 1. 软件源安装
CentOS/RHEL
yum install iftop -y
# 或
dnf install iftop -y
Ubuntu/Debian
apt-get install iftop -y
- 2. 源码编译安装
wget https://pdw.ex-parrot.com/iftop/download/iftop-0.17.tar.gz
tar -xf iftop-0.17.tar.gz
cd iftop-0.17
./configure
make && make install
基础使用:
iftop -nNP

iftop界面解释
1. 界面整体结构
iftop的界面被横线分隔成了三部分,顶部用于显示实时带宽占用的比例尺子,
中部展示当前活跃的主机对实时流量,底部是全网卡的发送(TX)、接收(RX)流量以及
峰值信息。
2. 顶部区域
顶部区域是一行动态变化的数值标尺(如 0.0Kb → 12.5.0Kb → 25.0Kb),刻度条的最大值随当前流量自动调整(可通过 -m 参数手动设置,如 iftop -m 100M 表示刻度最大值为 100Mbps);
3.中部区域
中部是 iftop 的核心区域,以行为单位展示主机对之间的连接及其实时流量。每一行包含以下关键信息:
192.168.1.10:22 => 192.168.1.12:5134 10.0Kb 15Kb 8Kb
<= 2.5Kb 3.5Kb 5.8Kb
(1). 连接方向与主机信息
- • 方向符号:
=> 表示本地发送到目标主机的流量;
<= 表示目标主机发送到本地的流量。 - • 主机与端口:
格式为 IP:端口(如 192.168.1.10:ssh),其中:- •
IP:本地或远程主机的 IP 地址(若未加 -n 参数,会显示 DNS 解析后的主机名); - •
端口:若加 -P 参数,会显示端口号(如 ssh 对应 22 端口,1234 为随机端口);若未加 -P,则显示服务名称(如 ssh、http)。
(2) 流量速率列(最右侧三列)
每一行的最右侧有三列数值,分别对应不同时间窗口的平均流量速率,单位是比特/秒(bps)(若加 -B 参数,单位变为字节/秒(Bps)):
- • 第一列(2秒):瞬时流量(最近 2 秒的平均速率),反映突发流量(如大文件传输、攻击);
- • 第二列(10秒):短期趋势(最近 10 秒的平均速率),识别短暂高负载(如视频缓冲);
- • 第三列(40秒):长期趋势(最近 40 秒的平均速率),判断持续占用带宽的连接(如备份任务、流媒体)。
- • 排序规则:
默认按2秒速率降序排列(即流量大的连接排在前面);可按 1/2/3 键切换排序依据(如按 40 秒速率排序,查看长期高流量连接)。
(3) 流量图形条(每行左侧)
每行左侧有一个动态变化的图形条,其长度对应当前连接的流量占比(以顶部刻度条的最大值为基准),图形条越长表示流量越大
3. 底部区域
底部三行是全网卡的流量汇总,分为*发送(TX)、接收(RX)、总计(TOTAL)**三类,每类包含三列信息:
TX: cum: 216KB peak: 189Kb Rates: 3.30Kb 41.7Kb 13.5Kb
RX: 43.1KB 4.48Kb 1.97Kb 2.55Kb 2.28Kb
TOTAL: 259KB 191Kb 5.27Kb 44.2Kb 15.7Kb
(1). 字段解释
- • TX(发送):本地向外部发送的总流量;
- • RX(接收):本地从外部接收的总流量;
- • TOTAL(总计):TX + RX 的总流量;
- • cum(Cumulative):从启动 iftop 到当前的累计流量
- • peak(Peak rate):监控期间的峰值速率;
- • Rates(速率):与中部连接列表的速率列一致(2秒、10秒、40秒平均速率),反映当前全网的整体流量趋势。
(2). 关键判断技巧
- • 带宽瓶颈:若
peak 值接近物理带宽上限(如 100Mbps 带宽的 peak 达到 95Mbps),说明网络拥堵; - • TX/RX 比例:
- • TX 远大于 RX:可能是服务器响应请求(如 Web 服务器向客户端发送数据);
- • RX 远大于 TX:可能是客户端下载数据(如用户从服务器下载文件);
- • 异常流量:若
Rates 中的2秒速率突然飙升(如从 1Kb 涨到 100Mb),可能是DDoS 攻击或异常下载(需结合中部连接列表的陌生 IP/端口判断)。
界面解读
iftop 的界面设计围绕快速定位高流量连接展开:
- 1. 通过顶部刻度条判断整体带宽是否饱和;
- 2. 通过中部连接列表的速率列(尤其是 2秒速率)找到瞬时高流量连接;
- 3. 通过底部统计区的peak和Rates判断长期流量趋势;
- 4. 结合方向符号和主机端口,识别异常连接(如陌生 IP、非常用端口)。
iftop的参数解释
| 参数 | 说明 |
|---|
-h | 显示帮助信息 |
-n | 不进行 DNS 解析(直接显示 IP 地址,不转换为主机名) |
-N | 不将端口号转换为服务名称(直接显示端口数字,如 22 不显示为 ssh) |
-p | 以混杂模式运行(显示同一网段内其他主机之间的流量,需 root 权限) |
-b | 不显示流量图形条(仅显示文本数值,简化界面) |
-B | 以字节(Byte)为单位显示带宽(默认以比特(Bit)为单位) |
-a | 以数据包(Packet)为单位显示带宽(而非流量) |
-i interface | 指定监听的网络接口(如 -i eth0 监控 eth0 网卡) |
-f filter code | 使用过滤代码筛选数据包(支持 tcpdump 语法,如 -f "port 80" 过滤 80 端口流量) |
-F net/mask | 显示特定 IPv4 网段的进出流量(如 -F 192.168.1.0/24 监控该网段) |
-G net6/mask6 | 显示特定 IPv6 网段的进出流量(如 -G 2001:db8::/32) |
-l | 显示并统计链路本地 IPv6 流量(默认关闭,需配合 -i 使用) |
-P | 显示主机及端口信息(同时显示 IP/主机名与端口号,如 192.168.1.10:22) |
-m limit | 设置顶部流量刻度的最大值(如 -m 100M 表示刻度最大值为 100Mbps) |
-c config file | 指定替代配置文件(默认读取 /etc/iftop.conf) |
-t | 使用无 ncurses 的文本界面(输出至终端,适合日志记录) |
-o 2s | 按第一列排序(2 秒平均流量,即瞬时流量) |
-o 10s | 按第二列排序(10 秒平均流量,默认排序方式) |
-o 40s | 按第三列排序(40 秒平均流量,长期趋势) |
-o source | 按源地址排序(显示流量来源的 IP/主机名) |
-o destination | 按目标地址排序(显示流量去向的 IP/主机名) |