宝塔免费版防火墙仅支持基于IP和60秒窗口的粗粒度CC防御,无法区分路径、Cookie或支持burst缓冲,易误封正常用户;配置时应按站点类型设阈值(API建议30起),禁用不生效的专业版功能,并在紧急时用iptables直封攻击IP。

宝塔免费版防火墙能做基础CC防御,但无法精准限流API接口——它只按IP+时间窗口计数,不区分路径、不看Cookie、也不支持burst缓冲,盲目启用容易把正常用户干掉。
免费版CC防御的触发逻辑和真实效果
免费版的「CC防御」本质是统计单个IP在60秒内发起的请求数,超阈值就返回503并自动拉黑该IP。但它不解析请求内容,所有HTTP请求(包括静态资源、轮播图、前端轮询)都算在内。
- 触发周期固定为60秒,不可调;
- 阈值只能填整数,比如15次/60秒,意味着平均4秒一次就可能被封;
- 封禁后IP直接进插件【黑名单】页签,但不会显示是哪条规则触发的;
- 如果网站有“加载更多”按钮或首页自动刷新,普通用户点5次就可能被误杀。
怎么配置才不容易误伤又有点用
关键不是压低阈值,而是选对站点、设对周期、盯住日志。博客类可设10–12,但API类站点建议从30起步,否则登录接口一并发就全挂。
- 进【软件商店】确认Nginx防火墙(免费版)已安装并「启动」;
- 进【网站】→ 找到你的API站点 → 【配置】→ 【CC防御】页签;
- 勾选【开启CC防御】,触发周期保持60秒,频率先填30;
- 保存后立刻切到【黑名单】页签,观察是否有大量搜索引擎IP(如
googlebot)涌入;如果有,说明阈值太低,得调高; - 别开「POST请求防护」或「Cookie会话级限流」——这些功能仅专业版支持,免费版点了也没反应。
为什么你加了IP进黑名单却还在刷
免费版防火墙的黑名单只封IP,但规则写在Nginx的http块里,优先级虽高,却存在几个硬伤:
- 它不拦截WebSocket连接,攻击者换
wss://路径就能绕过; - 若你站点启用了反向代理(比如套了Cloudflare),真实IP会被替换成
104.28.x.x这类中转IP,封错对象; - 规则生效依赖Nginx重载,但面板有时只写配置不重载,得手动点【重载配置】或执行
nginx -s reload; - 更隐蔽的问题:如果你同时开了宝塔「网站 → 安全 → IP黑名单」,那两条规则互相不感知,可能冲突或覆盖。
真正管用的应急补救方式
当发现某个IP正在猛刷/api/login,而免费版CC还没来得及拉黑时,必须跳过面板,直击系统层:
- 用
iptables立即封:执行iptables -I INPUT -s 203.0.113.45 -j DROP; - 验证是否生效:
iptables -L INPUT -n | grep 203.0.113.45; - 保存规则(CentOS 7):
service iptables save; - 注意:必须同时封80和443端口,否则HTTPS请求照常进来;
- 别忘了检查
/www/wwwlogs/yoursite.log里该IP最近1分钟是否真有超150次请求——避免凭感觉封错人。
免费版防火墙的黑名单是“事后补救”,不是“实时拦截”。它靠日志回溯触发,中间有延迟;而真实攻击往往在10秒内完成爆破。所以最危险的从来不是阈值设多高,而是你盯着面板等它自动拉黑时,接口已经崩了三次。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











