开启 Discuz 防 CC 策略后正常用户无法访问,通常是因为防护阈值过低或误封了正常 IP,需立即调宽访问频率限制并将搜索引擎爬虫加入白名单。
先说结论:这是典型的防护策略误伤,需优先放宽 Discuz 内置阈值并配置爬虫白名单,若使用高防服务需调整 CC 防护规则。
- 先判断:确认是 Discuz 内置拦截还是服务器/高防层拦截。
- 优先做:调大访问次数限制,添加主流搜索引擎 IP 段至白名单。
- 再验证:使用不同网络环境访问,检查服务器错误日志。
快速处理思路
若无法进入后台,直接修改服务器配置文件。
1. 修改 Discuz 配置:编辑 config/config_global.php,将 $_config['security']['attackevasive'] 值改小或暂时设为 0。
2. 调整 Nginx 限流:若配置了 limit_req_zone,将速率从例如 10r/s 临时调高。
3. 检查高防日志:若接入高防服务,查看拦截日志,将误封 IP 解封。
为什么会这样
防 CC 策略本质是通过限制单位时间内的请求频率来阻断攻击,过于严格的规则会将正常用户的快速操作识别为攻击。
CC 攻击模拟大量合法请求耗尽资源,防御机制通常基于 IP 频率或 Cookie 验证。当设置如“60 秒内访问超过 400 次即封锁”时,正常用户打开多标签或刷新页面可能触发阈值。此外,搜索引擎爬虫抓取频率较高,若未加入白名单,会被视为恶意流量拦截,导致网站无法被收录且爬虫 IP 被禁。
分步处理
第一步:调整 Discuz 内置防护等级
登录服务器,找到 config/config_global.php 文件。查找 $_config['security']['attackevasive'] 参数。该参数支持组合值:1(Cookie 刷新限制)、2(限制代理请求)、4(二次请求)、8(回答问题)。若设置为 1|2|4|8 强度过高,建议先改为 1|4 或暂时设为 0 测试访问。
第二步:配置爬虫白名单
进入 Discuz 管理中心 → 全局 → 安全设置 → CC 防护设置。在「白名单 IP」中添加主流爬虫 IP 段,例如百度爬虫 123.125.*.*、220.181.*.* 等。支持通配符,确保搜索引擎不受限。
第三步:优化服务器层限流
若使用 Nginx,检查 nginx.conf 中的 limit_req_zone 配置。对于日活较小的论坛,可设置访问次数为 60 秒内 300-400 次,封锁时间 180-300 秒。避免设置过严导致正常用户被返回 429 状态码。
第四步:检查高防服务策略
若接入第三方高防,登录高防控制台查看 CC 防护日志。若发现正常用户 IP 被误封,调整防护策略为“精确到用户 UA 字段”或调低敏感度,避免单纯基于端口请求频率封禁。
怎么验证是否生效
1. 多环境测试:使用手机 4G/5G 网络和不同 WiFi 访问网站,确认页面加载正常。
2. 检查日志:查看 Web 服务器错误日志(如 Nginx error.log),确认不再频繁出现 403 或 429 状态码。
3. 爬虫测试:使用搜索引擎抓取测试工具或等待蜘蛛抓取,确认不再被拦截。
常见坑
1. 误封搜索引擎:未配置白名单导致网站收录下降,SEO 受损。
2. 静态资源受限:将 CSS/JS 等静态文件纳入 CC 防护,导致页面样式加载失败。
3. 阈值过低:小型论坛套用大型站点配置,导致正常用户刷新即被封禁。
常见问题
如何确认是 Discuz 拦截还是服务器拦截?
查看 HTTP 状态码,Discuz 内置防护通常跳转验证页,服务器层拦截常返回 403 或 429 状态码。
白名单 IP 段在哪里获取?
可搜索“百度爬虫 IP 段”、“必应爬虫 IP 段”等官方文档,或在 Discuz 后台使用通配符添加常见段。
高防服务误封怎么解决?
联系高防服务商调整 CC 策略,或切换至基于 UA 和行为特征的防护模式,减少单纯频率限制。
参考来源
- DiscuzCC 攻击如何防御?攻击频率怎么限制?
- Discuz CC 防护规则_discuz 防止 cc 攻击-CSDN 博客
- CC 攻击接入高防误封正常访客,访问不了怎么解决
- 预防 discuz 网站的 cc 攻击
- 网站被 CC 攻击导致正常用户无法访问要怎么处理?