iftop 简介
在类 Unix 系统中,我们可以使用 top 命令查看系统资源、进程和内存占用等信息。查看网络状态则可以使用 netstat、nmap 等工具。如果需要监控实时的网络流量、查看 TCP/IP 连接等,iftop 是一个功能强大且直观的选择。
iftop 是什么?
iftop 是一款类似于 top 的实时网络流量监控工具。它能够以动态、可视化的方式展示指定网络接口的带宽使用情况。
iftop 的主要功能
iftop 可以用来:
- 监控指定网卡的实时流量(可精确到特定网段)。
- 显示通信的源 IP、目标 IP 及端口信息。
- 支持反向解析 IP 地址为主机名。
- 以图形条形式直观展示流量变化。
安装 iftop
iftop 可以通过系统包管理器或源码编译两种方式安装。
方法一:通过包管理器安装(推荐)
这是最简单快捷的方式。
- CentOS/RHEL/Fedora 系统:
yum install epel-release # 确保 EPEL 仓库已启用 yum install iftop - Debian/Ubuntu 系统:
apt-get update apt-get install iftop
方法二:源码编译安装
如果需要最新版本或特定定制,可以选择编译安装。首先确保系统已安装必要的编译工具和依赖库。
安装编译环境与依赖:
- CentOS/RHEL/Fedora:
yum install gcc make autoconf flex byacc libpcap libpcap-devel ncurses ncurses-devel - Debian/Ubuntu:
apt-get install build-essential autoconf flex byacc libpcap0.8-dev libncurses5-dev
下载并编译安装:
wget http://www.ex-parrot.com/~pdw/iftop/download/iftop-1.0pre4.tar.gz
tar zxvf iftop-1.0pre4.tar.gz
cd iftop-1.0pre4
./configure
make
make install # 通常需要 root 权限
请注意,官网地址和版本可能更新,请以官方网站(http://www.ex-parrot.com/~pdw/iftop/)为准。
运行 iftop
安装完成后,在终端直接输入命令即可运行:
iftop
默认会监控第一个非环回网络接口(如 eth0)。运行后,你将看到一个实时更新的流量监控界面。
界面与参数说明
iftop 界面概览
iftop 界面主要分为几个部分:
- 顶部刻度尺: 用于衡量下方流量图形条的比例。
- 流量方向箭头(<= =>): 指示流量的方向(发送与接收)。
- 中间列表: 显示当前活跃的网络连接,包含源/目标主机、端口及实时流量。
- 底部统计行:
- TX: 发送流量速率。
- RX: 接收流量速率。
- TOTAL: 总流量速率。
- Cumm: 自 iftop 启动以来的累计流量。
- peak: 流量峰值速率。
- rates: 分别显示过去 2秒、10秒、40秒 的平均流量速率。
常用启动参数
启动 iftop 时可以使用以下参数:
-i <interface>:指定要监控的网络接口,如iftop -i eth1。-B:以字节(Bytes)为单位显示流量,默认单位为比特(bits)。-n:禁用主机名解析,直接显示 IP 地址。-N:禁用端口服务名解析,直接显示端口号。-F <net/mask>:仅显示指定网段的流量,如iftop -F 192.168.1.0/24。-P:默认显示端口信息。-m <limit>:设置界面顶部刻度尺的最大值,如iftop -m 100M。
运行时交互命令
在 iftop 运行界面中,可以按下以下按键进行交互:
- h: 切换显示/隐藏帮助信息。
- n: 切换显示本机 IP 或主机名。
- s/d: 切换显示源(source)或目标(destination)主机信息。
- t: 循环切换流量显示模式(两行/一行/仅发送/仅接收)。
- N: 切换显示端口号或服务名称。
- p: 切换显示/隐藏端口信息。
- P: 暂停/继续刷新显示。
- b: 切换显示/隐藏平均流量图形条。
- 1/2/3: 根据右侧三列流量数据(2秒、10秒、40秒平均)进行排序。
- < 或 >: 根据左侧或右侧的 IP 地址进行排序。
- l: 启用屏幕过滤,输入 IP 或字符串后只显示相关连接。
- q: 退出 iftop。
常见问题与解决
- 错误:
make: yacc: Command not found解决: 安装
byacc包。# CentOS/RHEL yum install byacc # Debian/Ubuntu apt-get install byacc - 错误:
configure: error: Curses! Foiled again! (Can't find a curses library...)解决: 安装 ncurses 开发包。
# CentOS/RHEL yum install ncurses-devel # Debian/Ubuntu apt-get install libncurses5-dev