外贸站宝塔面板网站服务器带宽跑满iftop流量分析
为什么外贸站带宽会突然跑满?
你的外贸站正在搞促销,突然客服反馈网站打不开,远程SSH连上去一查,网卡流量几近跑满(1000Mbps打满)。
这种情况通常不是正常业务流量,可能是\被恶意扫描、数据抓取、或者WordPress/第三方插件后台发送大量请求。
对新手来说,最直接的办法就是用\iftop这个轻量级命令行工具,实时看到是哪些IP在吃你的带宽,然后结合宝塔面板杀掉对应进程。
准备工作:在宝塔面板上安装iftop
Bash和SSH连接:你需要能通过SSH工具(如Xshell、Putty或宝塔自带的SSH终端)登录服务器。
安装iftop:CentOS系统执行:
yum install -y iftop
Ubuntu/Debian系统执行:
apt-get install -y iftop
安装完成后输入iftop --version确认版本信息,出现版本号即代表安装成功。
分步操作:用iftop抓出流量大户
1. 运行iftop并调整显示格式
直接在终端执行(默认监控第一块网卡eth0):
iftop -i eth0 -n -P
参数解释:
-i eth0指定监控的网卡(如果你的服务器网卡名是ens33,改为-i ens33)-n不进行DNS反向解析,加快显示速度-P显示端口号,方便判断是HTTP、HTTPS还是数据库端口
2. 看懂iftop界面
屏幕分为三块:
- 上半部:带宽流量实时柱状图
- 中间列表:每一行是一个连接,左边是源IP,右边是目标IP(箭头方向表示数据流方向),最后两列是过去2秒、10秒和40秒的平均速率
- 底部:汇总总计、发送/接收速率和峰值
重点看:如果某个IP的发送速率(TX)特别高,比如持续超过50Mbps,并且你不认识这个IP(比如来自海外非业务地区),大概率是异常流量。
3. 记录可疑IP和端口
按q退出,把可疑IP记下来。
然后利用宝塔面板的“进程管理”或“SSH终端”查询该IP对应的本地服务进程。
用ss命令找出本地监听端口对应的PID和程序名:
ss -tlnp | grep :80
(假设端口是80)输出里可以看到PID和程序名,比如“pid=12345,/usr/local/php/bin/php-cgi”。
4. 结合宝塔面板处理异常进程
登录宝塔面板 → 软件商店 → 系统工具 → 使用“进程管理器”直接搜索PID,或者用SSH执行:
kill -9 12345
注意:如果进程是正常PHP或Apache主进程,请不要随意杀死,而是先中止异常子进程。
更稳妥的办法是直接在宝塔面板“安全”里临时屏蔽来源IP。
避坑指南:新手最容易犯的3个错误
错误1:没有指定正确的网卡。
宝塔上云服务器的网卡默认可能是eth0(阿里云、腾讯云),也可能是ens5(AWS)。
先用ip addr或ifconfig确认网卡名,否则iftop报错“interface not found”。
错误2:忘了加-P端口显示。
不加端口你只能看到IP,看不出是443还是3306(MySQL),导致误判。
错误3:杀死系统关键进程。
如果发现占用流量的进程是nginx或php-fpm主进程,不要直接kill -9,正确做法是:在宝塔面板对应网站设置中临时“停止站点”,或者重启对应服务使异常子进程自动回收。
效果验证和持续监控
执行杀进程或封锁IP后,重新运行iftop -i eth0 -n -P观察流量曲线。
正常情况下,总流量会明显下降(比如从50Mbps降到5Mbps),并且可疑IP不再出现。
长期建议:外贸站建议开启宝塔面板的“防火墙”插件(如Nginx防火墙),设置CC防护规则,并限制单IP并发连接数。
如果带宽经常跑满,考虑升级CDN或增加云服务器带宽,但首先要排查是否有异常扫描。
如果你按本文步骤操作依然无法解决,请检查服务器有无被植入挖矿脚本(CPU也会飙高),或者联系主机商查看后台流量账单。