手把手教你宝塔面板防CC攻击设置,拒绝恶意流量
前置准备
在开始宝塔面板防CC攻击设置之前,你需要确保以下条件已满足:
- 服务器已安装最新版本的宝塔面板(免费版即可)
- 你的网站已经正常部署并绑定域名,且能正常访问
- 登录宝塔后台,确认网站运行环境为 Nginx(推荐)或 Apache
- CC攻击 指的是攻击者通过大量合法请求耗尽服务器资源,导致正常用户无法访问。我们需要通过频率限制来识别并拦截这些请求。
分步操作
第一步:安装 Nginx 防火墙(免费版)
- 进入宝塔面板左侧菜单,点击 软件商店。
- 在右上角搜索框输入
nginx 防火墙,找到 Nginx防火墙(免费版),点击 安装。 - 安装完成后,回到 网站 页面,点击你要保护的目标站点右侧的 设置。
第二步:开启 CC 防御规则
- 在网站设置窗口中,选择 防火墙 标签页。
- 找到 CC攻击防护 模块,将右侧开关 打开。
- 配置基础参数(建议按以下推荐值设置):
- 单IP请求频率:
30次/60秒(如果担心误伤,可以调高到40次/60秒) - 封锁时间:
600秒(10分钟,可自行调整) - 触发频率后动作:建议先选择 验证码,观察几天没问题后再改为 封禁IP
- 点击下方的 保存 按钮,规则立即生效。
如果某个正常访客被误封,你可以随时在 防火墙 → 全球IP封禁 列表中手动解除封锁。
第三步:添加 IP 白名单(避免误伤管理员)
在防火墙页面找到 IP白名单 输入框,添加你自己的公网 IP 地址(多个 IP 用换行或逗号分隔),点击 保存。
这样你的操作不会受到频率限制影响。
第四步:可选增强策略
- 限制请求方法:在防火墙高级设置中,只允许
GET和POST,阻止HEAD、PUT等不必要的请求方法。 - User-Agent 过滤:添加常见恶意 UA 黑名单,如
Python-urllib、curl、Scrapy等。 - URL 访问频率限制:对敏感路径(如
/wp-login.php、/admin)单独设置更严格的频率限制。
避坑指南
- 误封正常访客:阈值设得过低(例如 10次/60秒)会导致普通用户快速刷新页面就被封。建议初期先用 验证码 模式,观察 24 小时再决定是否改为 封禁IP。
- 防火墙不生效:如果你的网站使用了 CDN(Cloudflare 等),宝塔面板无法获取真实访客 IP。必须开启 CDN模式,并正确填写 CDN 回源 IP 列表。配置路径:防火墙 → 全局设置 → CDN模式。
- 性能影响:Nginx 防火墙会消耗少量 CPU,但通常可以忽略。如果服务器流量极大(百万级 PV),建议配合系统级 iptables 规则或升级专业版防火墙。
效果验证
- 简单测试:打开浏览器,快速刷新某个页面 30 次以上(约 1 分钟内)。如果页面出现 “您的请求被拦截” 或 “频繁访问” 的提示,说明 CC 防护生效。
- 查看攻击记录:在宝塔面板 → 网站 → 防火墙 → 攻击记录 中,可以看到所有被拦截的 IP 和请求详情。
- 压力测试(谨慎):使用
ab或wrk工具模拟大量请求(建议在非生产环境),观察 IP 是否被自动封禁。
高频问题解答
Q1:宝塔面板免费版能防住 CC 攻击吗?
免费版的 Nginx 防火墙可以防御中小型 CC 攻击(几十到上百 QPS)。如果遭遇大流量 DDoS 攻击,建议升级专业版或搭配高防服务。
Q2:开启 CC 防护后网站变慢怎么办?
可能原因是频率限制太严格,误伤了正常爬虫(如百度蜘蛛)。请调高频率阈值(如 50次/60秒),同时将搜索引擎 IP 段加入白名单。若仍慢,检查防火墙日志看是否有大量拦截记录。
Q3:如何查看被拦截的 IP 列表?
进入网站设置的防火墙 → 攻击记录,按时间筛选即可查看。你也可以在 全球IP封禁 中手动管理封禁列表。
Q4:Nginx 防火墙和 Apache 防火墙选哪个?
如果你的网站使用 Nginx,优先选择 Nginx 防火墙(性能更好)。如果是 Apache 环境,可以安装 Apache 防火墙,配置步骤类似。
如果你正在处理宝塔面板防CC攻击设置,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。