Linux流量监控iftop查看异常流量

为什么要监控Linux流量?iftop能解决什么问题

当服务器带宽突然跑满、网站变慢时,你第一反应可能是“谁在偷跑流量”。
Linux自带的top只能看CPU和内存,而iftop(Interface Top)专门监控网络接口的实时流量,能清晰显示每个连接的IP地址、端口、发送和接收速率。
它不像nload那样只显示总量,也不像tcpdump那么复杂——它直接告诉你“哪个IP正在吃带宽”,非常适合快速定位异常流量。

适用场景包括:

  • 服务器带宽被占满,需要找出是哪个外部IP在狂发包。
  • 内部某台机器(或某个进程)向远程地址发送大量数据。
  • 怀疑服务器被植入后门或挖矿程序,通过异常流量特征来判断。

安装iftop:一行命令搞定

不同Linux发行版安装命令略有差异,但都很简单:

Debian/Ubuntu(包括宝塔环境常见系统):

sudo apt update && sudo apt install iftop -y

CentOS/RHEL 7/8

sudo yum install epel-release -y
sudo yum install iftop -y

CentOS/RHEL 9 / Rocky / Alma

sudo dnf install epel-release -y
sudo dnf install iftop -y

安装后直接输入iftop即可启动,如果提示“Permission denied”请加sudo
注意:iftop需要root权限才能监听所有网卡流量,所以生产环境务必用sudo运行

使用iftop查看实时流量:界面一秒看懂

执行sudo iftop后,你会看到一个全屏界面,分为三部分:

  • 顶部:当前总带宽统计(累计发送/接收总量、峰值速率)。
  • 中间列表:每个连接的源IP、目标IP、发送速率、接收速率和总流量。默认按流量降序排列,最上面的就是“流量大户”。
  • 底部:显示快捷键和统计摘要,如TX(发送)、RX(接收)、TOTAL

常用操作快捷键(按对应字母):

  • n:切换IP地址显示为域名或纯IP(建议保持纯IP,避免DNS查询拖慢界面)。
  • s:显示源端口。
  • d:显示目标端口。
  • t:切换连接显示顺序(按发送、接收或总计)。
  • p:暂停/继续刷新。
  • q:退出。

刚启动时可能刷得很快,你可以按p暂停画面,然后仔细查看哪些IP占用了大量流量。
如果某个陌生IP每秒发送几十MB,那基本就是异常流量了。

定位异常流量:三步排查法

拿到iftop显示的IP列表后,按以下步骤缩小问题范围:

  1. 检查目标端口:按d显示目标端口,如果端口是22(SSH)或80/443(Web),且连接次数不多,可能是正常业务。如果端口是444431337或随机高端口,要高度警惕。
  2. 反向解析IP(用另一个窗口执行):nslookup 192.168.1.100whois 8.8.8.8,看是否来自已知恶意网段(如挖矿矿池地址、境外可疑IP)。
  3. 关联进程:iftop只看网络层,不直接显示进程名。要找出具体进程,可以用 lsof -i :端口号netstat -tunap | grep IP。例如:
sudo lsof -i :52364   # 假设异常端口是52364

如果出来的进程是crondhttpd之外的生僻名字,大概率有问题。
建议立即kill进程并隔离该IP。

典型异常流量特征

  • 持续向同一IP发送大量数据(可能是数据外泄)。
  • 接收大量来自陌生IP的响应包(可能是DDoS攻击回源)。
  • 带宽长时间打满,但系统负载正常(可能是被利用做代理服务)。

避坑指南与验证结果

常见坑点

  • 没开HTTP:iftop默认监听第一个活动的网卡(通常是eth0或ens33)。如果服务器有多个网卡(如内网+外网),需要手动指定:sudo iftop -i eth1
  • 界面卡死:某些系统下iftop可能因DNS反查卡死,启动时加上-n参数禁用DNS解析:sudo iftop -n
  • 只看流量看不了IP:确认防火墙(iptables/nftables)没有拦截流量统计。iftop基于libpcap,与防火墙无关,但若网卡处于混杂模式被阻止,可能看不到所有流量。可以用tcpdump -i eth0测试一下能否抓包。

验证结果

  • 修复异常后,重新运行sudo iftop -n,观察带宽是否降至正常水平(比如从100Mbps降到1Mbps以下)。
  • 同时用nloadvnstat交叉验证:nload eth0看总流量曲线是否平稳。
  • 如果你是通过iptables临时封禁了某个IP,可以用iptables -L -n -v查看该IP的包计数是否继续增长;若增长说明封禁失效或有其他出口。

最后提醒:生产环境慎用iftop长时间运行,它本身会消耗少量CPU。
通常只在你排查问题时临时开启几分钟即可。
如果服务器带宽持续异常,建议结合Zabbix、Prometheus等长期监控工具。
掌握iftop之后,再遇到服务器流量异常,你就能像老手一样从容定位了。

分享到:
上一篇
WordPress广告位管理配置教程:从安装到生效全步骤
下一篇
Linux进程守护supervisor配置
1
系统公告

高考专属福利来袭|凭准考证免费领香港 CN2 云服务器

值高考落幕之际,泽御云开启考生专属回馈 + 产品限时特惠双重活动,助力学子暑期学习建站 高考 考生专属福利 全体应届高考生,凭高考准考证即可免费申领【香港 CN2 轻量云服务器,4 核 4G AMD 处理器】,免费使用周期 30 天,可用于搭建个人站点、编程实操、技术实训,祝各位考生金榜题名,前程似锦! 泽御云资质齐全合规自营机房,线路覆盖香港 CN2、国内 BGP、内蒙电信、美国精品线路,售后全天候技术支持。 官方网站:www.zeyuyun.com,活动限时有效,优惠逾期不再保留。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意