iftop是专为排查突发网络流量问题设计的实时监控工具,通过抓包直接定位高流量IP,需指定正确网卡、禁用DNS解析、显示端口,并支持交互式过滤与多时间窗口排序。

当服务器带宽突然打满、SSH响应迟缓、网页加载卡顿,却查不到CPU或内存异常时,必须立刻确认是不是某个IP正在疯狂收发数据——iftop就是专为这种紧急场景设计的实时流量显微镜,它不依赖进程名,直接抓包分析,3秒内就能揪出流量源头。
确认网卡并启动基础监控
先用 ip -br a 查出真实对外网卡名(常见为 eth0、ens33 或 ens192),别误用 lo(本地环回);【若用错网卡,iftop将完全看不到外网流量】。
执行:sudo iftop -n -i eth0 -P。
-n 禁用DNS解析,避免因域名查询卡住界面;-P 强制显示端口号,方便后续判断服务类型;默认按10秒平均流量降序排列,流量最大的连接永远顶在第一行。
过滤并锁定高流量IP
进入iftop界面后,按下 l 键(小写L),输入疑似IP段,比如 185.143.,回车——画面立即只保留该段所有连接,其他干扰项全部消失。
方法一:用快捷键排序
按 1 切换到按2秒流量排序,能快速捕获突发型攻击(如UDP洪水);按 2 回到10秒排序(默认),适合稳态压测类流量;按 3 切40秒排序,可识别长期慢速渗漏行为。
方法二:用命令行预过滤
直接运行:sudo iftop -n -i eth0 -f "src host 203.0.113.45",只监控来自该IP的所有流量;若想看它连了哪些目标,把 src 换成 dst 即可。
【-f 过滤语法不支持域名或正则,只能写纯IP或端口,写错会导致无任何输出】
交叉验证流量方向与真实性
第一步:看箭头方向
某行显示 192.168.1.100 => 203.0.113.45,说明本机正向该IP发送数据(TX);下方紧邻的 行,则是对方返回的数据(RX)。若只有 <code>=> 没有 ,大概率是单向发包(如日志上报、恶意扫描)。
第二步:用tcpdump抓包确认
新开终端,执行:sudo tcpdump -i eth0 -c 3 src host 203.0.113.45 -nn。如果能看到3个真实数据包,证明iftop没误报;如果tcpdump无输出,说明该IP只是短暂连接或已被防火墙拦截,iftop显示的是历史残留缓存。
第三步:检查单位陷阱
右上角若显示 KB,代表千字节/秒;若显示 Kb(小写b),则是千比特/秒——后者数值是前者的8倍。误读单位会导致误判流量规模。


















