【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。
目录
- 【网络】每天掌握一个Linux命令 - iftop
- 工具概述
- 安装方式
- 核心功能
- 基础用法
- 进阶操作
- 实战案例
- 面试题场景
- 生产场景
- 注意事项
【网络】每天掌握一个Linux命令 - iftop
工具概述
iftop是一款基于ncurses库开发的Linux实时网络流量监控工具,以直观的界面动态展示网络连接、带宽使用情况。它可快速定位占用带宽的进程或IP,适用于排查网络拥塞、监控服务器流量、分析网络访问模式等场景,是网络运维和性能优化的必备利器。
安装方式
- Debian/Ubuntu系统:使用包管理器直接安装,命令为
sudo apt-get install iftop
。 - Red Hat/CentOS系统:先安装EPEL源,再执行
sudo yum install iftop
命令进行安装。 - 源码安装:从官网下载iftop源码包,解压后依次执行
./configure
、make
、sudo make install
命令完成安装。
核心功能
功能描述 | 具体作用 |
---|---|
实时流量监控 | 动态显示网卡实时进出流量,直观呈现带宽使用情况 |
连接信息展示 | 列出当前所有网络连接,包含源IP、目标IP、端口号等信息 |
流量排序 | 支持按流量大小对连接进行排序,快速定位占用带宽的源头 |
黑白名单设置 | 通过设置黑白名单,过滤指定IP的流量显示 |
历史流量统计 | 提供短时间内的流量统计信息,辅助分析流量变化趋势 |
基础用法
参数 | 说明 |
---|---|
-i | 指定要监控的网卡,如 -i eth0 表示监控eth0网卡 |
-n | 不进行DNS反向解析,加快显示速度 |
-N | 不显示端口服务名称,直接显示端口号 |
-P | 显示端口信息,默认只显示IP |
-s | 设置屏幕刷新时间间隔,单位为秒,如 -s 5 表示每5秒刷新一次 |
-f | 基于pcap过滤规则,筛选特定流量显示 |
-B | 以字节为单位显示流量 |
-h | 显示帮助信息 |
进阶操作
- 指定网卡并按流量排序:使用命令
iftop -i ens33 -n -P
,该命令指定监控ens33
网卡,不进行DNS解析,同时显示端口信息。结果列表中,=>
代表发送流量,<=
代表接收流量,Peak
列显示流量峰值,Rate
列展示当前平均流量速率,方便快速定位高流量连接。 - 设置刷新时间并以字节显示:执行
iftop -i eth0 -s 3 -B
,每3秒刷新一次监控数据,流量单位切换为字节,适合需要频繁查看最新流量且对单位有明确要求的场景。 - 使用过滤规则:
iftop -i wlan0 -f "port 80"
只显示通过80端口的网络流量,通过pcap过滤语法可精准筛选特定协议、IP或端口的流量。
实战案例
面试题场景
面试官提问:“服务器网络带宽突然跑满,如何快速定位问题?”
可回答:使用 iftop -n -P
命令,不解析域名并显示端口,快速找到占用大量带宽的IP和进程。若发现某IP流量异常高,可进一步结合 netstat
或 lsof
命令确定具体程序,从而解决问题。
生产场景
在电商大促期间,服务器出现网络延迟高的情况。运维人员使用 iftop -i eth0 -s 2
实时监控网卡流量,发现某个IP地址持续向服务器发起大量请求,占用了大量带宽。通过将该IP添加到iftop的黑名单(使用交互命令 b
添加),限制其流量,缓解了服务器网络压力,保障了服务正常运行。
注意事项
- iftop需要root权限运行,否则无法获取完整的网络信息。
- 对于复杂网络环境,pcap过滤规则的编写需谨慎,避免过滤掉关键流量。
- iftop本身会占用一定的系统资源,在资源紧张的服务器上长时间运行时需注意资源消耗情况。
- 不同版本的iftop在功能和参数上可能存在细微差异,使用时可通过
-h
参数查看帮助文档。