外贸站宝塔面板服务器带宽跑满异常流量溯源
外贸站一旦出现服务器带宽跑满,页面加载缓慢甚至无法访问,很多人的第一反应是升级带宽。
但实际案例中,绝大部分异常流量来自某个恶意IP、CC攻击或者频繁爬虫。
盲目升级只会增加成本,正确做法是先溯源再处理。
本文面向零基础用户,一步步教你用宝塔面板自带工具和几条Linux命令找出流量祸首。
前置准备
- 能通过SSH登录服务器的工具(如Windows的Putty、Mac的终端)
- 宝塔面板登录账号,确保可以看到“监控”和“安全”菜单
- 服务器是CentOS或Ubuntu系统(命令通用)
第一步:在宝塔面板查看实时流量分布
登录宝塔后台,点击左侧 监控 → 实时流量,这里能看到当前服务器的出入带宽数值。
如果带宽持续接近峰值,说明确有异常。
接着查看 网络 → 带宽使用排行,可以按进程或IP排序。
常见异常进程如不明Python脚本、大量MySQL连接等。
记住占用最高的进程PID或IP地址,为后续排查提供线索。
第二步:用iftop定位实时连接IP
iftop是一款专门监控网络实时流量的命令行工具,安装和用法都很简单。
安装iftop(如果未安装)
# CentOS/RHEL
sudo yum install iftop -y
# Ubuntu/Debian
sudo apt update && sudo apt install iftop -y
查看实时流量
sudo iftop -i eth0
(如果网卡不是eth0,用 ip a 查看实际网卡名,替换即可)
运行后界面会显示每个连接的来源IP、目的IP、发送和接收速率。
按 n 切换为纯IP显示,按 t 切换为连接总量。
观察哪个IP的流量持续异常高(比如远高于其他连接),记录下来。
按 q 退出。
第三步:用netstat统计异常IP并封禁
iftop只能看实时,结合netstat能查看当前所有TCP连接的统计情况。
统计连接数最多的IP
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n | tail -20
这个命令会列出连接数最多的前20个IP。
如果某个IP连接数上百甚至上千,很可能是恶意扫描或CC攻击。
临时封禁IP(宝塔防火墙)
推荐在 宝塔面板 → 安全 → 防火墙 中添加规则,来源IP填目标IP,端口留空或填80/443,协议选TCP,动作“拒绝”。
如果不想进面板,也可以用命令行:
# 封禁IP(以123.123.123.123为例)
iptables -A INPUT -s 123.123.123.123 -j DROP
重启后仍需持久化规则,建议在宝塔面板操作更省心。
避坑说明:不要误封正常爬虫
外贸站通常依赖Google、Bing等搜索引擎流量。
封禁前建议先查IP归属和反向DNS:
nslookup 对方IP
如果是googlebot.com或search.msn.com等知名爬虫域名,则不应封禁,可以考虑在robots.txt或通过宝塔防火墙限速。
另外,封禁后要及时观察带宽是否回落,如果没有变化,说明流量来源不只一个,需要继续排查其他进程或配置。
效果验证
- 回到宝塔面板 监控 → 实时流量,观察带宽使用是否有明显下降。
- 用
iftop -i eth0再次确认异常IP是否已断开。 - 访问外贸站前端,体验页面加载速度是否恢复。
高频问题解答
Q:iftop安装失败怎么办?
检查是否已启用EPEL源(CentOS)或更新过包索引(Ubuntu)。也可以改用 nethogs:
sudo yum install nethogs -y # CentOS
sudo apt install nethogs -y # Ubuntu
然后运行 sudo nethogs eth0 按进程查看流量。
Q:封禁后带宽还是很高?
可能同时存在多个攻击IP,重复第二步和第三步,直到所有异常IP被清理。如果数量太多,建议开启宝塔面板的“CC防御”或联系服务器厂商开启流量清洗服务。
Q:怎么确认是CC攻击而不是正常访问?
查看网站日志(宝塔面板→网站→日志),如果某个IP频繁访问同一个页面或提交请求,间隔极短,基本可判定为攻击。
如果你正在处理外贸站宝塔面板服务器带宽跑满的问题,建议先按本文步骤完整执行,再根据环境做微调;
遇到异常时优先回看避坑和高频问题部分,避免误操作影响正常业务。