当前位置:首页>Linux>iftop: Linux网络监控的"瑞士军刀",运维必学!

iftop: Linux网络监控的"瑞士军刀",运维必学!

  • 2026-09-10 18:16:13
iftop: Linux网络监控的"瑞士军刀",运维必学!

iftop是什么?

iftop是一个实时监控服务器流量情况的工具

安装iftop

  1. 1. 软件源安装
    CentOS/RHEL
yum install iftop -y
# 或
dnf install iftop -y

Ubuntu/Debian

apt-get install iftop -y
  1. 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. 1. 通过顶部刻度条判断整体带宽是否饱和;
  2. 2. 通过中部连接列表的速率列(尤其是 2秒速率)找到瞬时高流量连接;
  3. 3. 通过底部统计区的peak和Rates判断长期流量趋势;
  4. 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/主机名)

最新文章

随机文章