上一篇 下一篇 分享链接 返回 返回顶部

香港服务器被 CC 刷爆怎么办?单 IP 访问频次限制这样设置更稳

发布人:Minchunlin 发布时间:2026-06-06 09:57 阅读量:335

CC 攻击并不一定是“超大流量攻击”,很多时候它更像是大量客户端不断刷新网页、请求接口、访问登录页,让服务器 CPU、数据库、PHP-FPM、后端接口被拖慢。对于香港服务器来说,线路延迟低、访问速度快,但如果没有对单 IP 访问频次做限制,遇到恶意刷接口、刷动态页面、刷登录页时,网站依然可能出现 502、504、数据库占满、页面打开慢等问题。

因此,防 CC 的核心不是简单“封 IP”,而是要按业务类型设置合理的访问频次、连接数、缓存策略和日志识别规则。

一、为什么要限制单 IP 访问频次?

正常用户访问网站,一般是打开首页、浏览几个页面、提交一次表单,访问频率相对稳定。CC 攻击则不同,它常见表现有:

攻击表现 对服务器的影响
单 IP 高频刷新页面 消耗 Nginx、PHP、数据库资源
多 IP 同时刷动态接口 后端 API 响应变慢
集中访问登录页、搜索页 CPU 和数据库查询压力上升
模拟正常浏览器请求 普通防火墙不一定能识别
刷 WordPress、ZBlog、Discuz 动态页面 容易导致 PHP-FPM 进程满载

所以,限制单 IP 访问频次,本质上是给网站入口加一道“节流阀”:正常用户可以访问,异常高频请求被延迟、拒绝或拉黑。

二、适合做单 IP 限频的香港服务器配置建议

不同业务对防 CC 的要求不同,服务器配置也不能一刀切。以 A5IDC 香港服务器常见业务场景为例:

业务场景 推荐配置 适合防护方式
企业官网、博客、小型 API E3-1245V3 / 16GB 内存 / 240G SSD / 30M CN2/CMIN2/CU / 1 IP Nginx 限频 + 静态缓存
企业官网、小型后台、轻量接口 E5-2620V2 ×2 / 32GB 内存 / 480G SSD / 30M CN2/CMIN2/CU / 3 IP Nginx 限频 + 登录页重点防护
数据库较多、访问量较高站点 E-2334 / 32GB 内存 / 960G NVMe SSD / BGP 或 CN2 优化线路 限频 + 缓存 + 数据库优化
多站点、站群、接口业务 Gold 6138 / 128GB 内存 / 2×960G U.2 SSD / CN2+BGP 线路 分站点限频 + WAF + 日志联动封禁
高并发业务、API 网关、下载分发 AMD EPYC 系列 / 64GB 以上内存 / NVMe SSD / 大带宽 前端网关限速 + 后端分层

如果只是普通企业站,E3 或 E5 配置已经可以通过合理限频挡住很多低强度 CC。
如果是动态接口、会员系统、搜索频繁的网站,建议使用 NVMe SSD 和更高主频 CPU,避免数据库查询成为瓶颈。

三、第一层:用 Nginx 限制单 IP 请求频率

Nginx 的 limit_req 是防 CC 最常用的基础方案,可以按照客户端 IP 限制每秒请求次数。

1. 全站基础限频示例

http {
limit_req_zone $binary_remote_addr zone=perip:20m rate=10r/s;
limit_conn_zone $binary_remote_addr zone=addr:20m;

server {
listen 80;
server_name example.com;

limit_req_status 429;

location / {
limit_req zone=perip burst=20 nodelay;
limit_conn addr 30;

proxy_pass http://backend;
}
}
}

这段配置的含义是:

参数 说明
rate=10r/s 单个 IP 平均每秒最多 10 次请求
burst=20 允许短时间突发 20 个请求
limit_conn addr 30 单个 IP 同时连接数最多 30 个
429 超过限制返回 Too Many Requests

对于普通企业官网,5r/s - 10r/s 通常比较合适。
对于 API 接口,可以根据业务提高或降低,比如登录接口应更严格,图片资源可以更宽松。

四、第二层:对重点路径单独限频

CC 攻击往往不会平均打全站,而是集中打消耗资源的页面,比如:

  • /wp-login.php
  • /admin
  • /api/login
  • /search
  • /cart
  • /user/login
  • /index.php

这类路径应该单独设置更严格的规则。

登录页限频示例

limit_req_zone $binary_remote_addr zone=login:10m rate=1r/s;

server {
location = /wp-login.php {
limit_req zone=login burst=3 nodelay;
include fastcgi_params;
fastcgi_pass unix:/run/php/php-fpm.sock;
}
}

这样可以避免攻击者不断刷登录页、后台入口或验证码接口。

如果是 Laravel、ThinkPHP、WordPress、ZBlog 等动态程序,建议重点限制:

类型 建议策略
登录页 1 秒 1 次,突发 3 次
搜索页 2-3 秒 1 次
注册页 增加验证码 + 限频
API 接口 按接口类型设置不同频率
后台入口 限 IP 或加 Basic Auth

五、第三层:静态资源不要误伤,动态页面重点保护

很多站点配置限频时容易犯一个错误:把图片、CSS、JS 也纳入严格限频。这样正常用户打开页面时,浏览器会同时加载几十个资源,容易被误判。

建议静态资源单独放宽:

location ~* \.(jpg|jpeg|png|gif|webp|css|js|ico|svg)$ {
expires 7d;
access_log off;
}

真正需要重点保护的是动态请求,例如:

location ~ \.php$ {
limit_req zone=perip burst=10 nodelay;
include fastcgi_params;
fastcgi_pass unix:/run/php/php-fpm.sock;
}

这样既能保证用户正常加载图片和样式,又能控制 PHP、数据库、接口的压力。

六、第四层:结合 Fail2Ban 自动封禁异常 IP

Nginx 限频适合“即时限制”,但如果某个 IP 长时间持续攻击,就需要自动封禁。

可以通过 Fail2Ban 读取 Nginx 日志,把频繁触发 429、403 的 IP 加入防火墙。

思路如下:

  1. Nginx 对超频请求返回 429;
  2. 日志中记录异常 IP;
  3. Fail2Ban 检测短时间大量 429;
  4. 自动封禁该 IP 10 分钟、1 小时或更久。

适合规则:

触发条件 处理方式
1 分钟内触发 429 超过 30 次 封禁 10 分钟
5 分钟内访问登录页超过 50 次 封禁 1 小时
持续访问不存在路径 封禁 30 分钟
大量 POST 请求 加入观察名单

这种方式适合香港物理服务器,因为它可以直接在服务器本机完成,不依赖第三方平台,响应速度快,成本低。

七、第五层:iptables / nftables 控制连接数

如果攻击已经打到 TCP 连接层,可以在系统防火墙层限制单 IP 连接数。

示例:

iptables -I INPUT -p tcp --dport 80 -m connlimit --connlimit-above 80 --connlimit-mask 32 -j REJECT
iptables -I INPUT -p tcp --dport 443 -m connlimit --connlimit-above 80 --connlimit-mask 32 -j REJECT

这表示单个 IP 同时连接 80 或 443 端口超过 80 个时直接拒绝。

不过这里要注意:
如果用户集中来自公司办公网、校园网、代理出口或运营商 NAT,多个真实用户可能共用一个公网 IP,限制太低容易误伤。所以连接数限制建议作为辅助策略,不建议设置得过于激进。

八、如果用了 CDN,必须正确获取真实 IP

很多香港服务器会搭配 CDN 使用,但如果 Nginx 没有正确配置真实 IP,那么服务器看到的可能全部是 CDN 节点 IP。此时你限制的不是攻击者,而是 CDN。

正确思路是:

set_real_ip_from CDN节点IP段;
real_ip_header X-Forwarded-For;
real_ip_recursive on;

注意:
只能信任真实 CDN 的 IP 段,不能随便信任所有 X-Forwarded-For,否则攻击者可以伪造 IP 绕过限频。

九、A5IDC 推荐的香港服务器防 CC 组合方案

方案一:轻量企业站 / 博客站

适合业务:

  • 企业官网
  • WordPress 博客
  • ZBlog 网站
  • 小型展示站
  • 轻量 API

推荐配置:

  • CPU:E3-1245V3,4 核 8 线程
  • 内存:16GB
  • 硬盘:240G SSD
  • 带宽:30M CN2/CMIN2/CU
  • IP:1 个
  • 防护:基础防护

防护建议:

  • 首页、栏目页开启缓存;
  • PHP 动态请求限频;
  • 登录页单独限速;
  • 静态资源放宽限制;
  • 配合 Fail2Ban 自动封禁异常 IP。

方案二:企业后台 / 会员系统 / 小型接口

适合业务:

  • 企业管理系统
  • 小型 SaaS 后台
  • 会员登录系统
  • 订单查询系统
  • 接口型网站

推荐配置:

  • CPU:E5-2620V2 ×2,12 核 24 线程
  • 内存:32GB
  • 硬盘:480G SSD
  • 带宽:30M CN2/CMIN2/CU
  • IP:3 个
  • 防护:基础防护

防护建议:

  • 登录接口限制为 1r/s;
  • 搜索接口单独限频;
  • 后台入口限制访问 IP;
  • 数据库增加慢查询分析;
  • 业务接口按用户 ID、Token、IP 多维度限速。

方案三:高访问站点 / 多站点 / 动态业务

适合业务:

  • 多站点托管
  • 外贸官网集群
  • 站群业务
  • 高频 API
  • 数据库查询较多的网站

推荐配置:

  • CPU:Gold 6138 或 AMD EPYC 系列
  • 内存:64GB - 128GB
  • 硬盘:NVMe SSD 或 U.2 SSD
  • 带宽:CN2/BGP 优化线路
  • IP:按业务数量配置

防护建议:

  • Nginx 分站点限频;
  • Redis 缓存热点数据;
  • 数据库读写优化;
  • WAF 规则识别异常 User-Agent;
  • 重要接口加入验证码、人机验证或签名校验;
  • 日志系统按 IP、URL、状态码统计异常访问。

十、限制单 IP 频次时,阈值应该怎么定?

不要一开始就设置得太严格。建议先观察日志,再逐步收紧。

网站类型 推荐初始限频
企业展示站 5-10r/s
WordPress / ZBlog 3-8r/s
登录接口 1r/s
搜索接口 1-3r/s
API 接口 5-20r/s,按业务调整
静态资源 不建议严格限频

判断是否设置合理,可以观察:

  • 正常用户是否出现 429;
  • 搜索引擎抓取是否受影响;
  • 后台登录是否被误拦;
  • CPU 和 PHP-FPM 是否明显下降;
  • 数据库慢查询是否减少;
  • 攻击 IP 是否集中在某些路径。

十一、只限制 IP 够不够?

不够。

单 IP 限频只能解决一部分 CC。现在很多 CC 会使用代理池、肉鸡 IP、模拟浏览器、分布式请求。如果攻击 IP 数量很多,单 IP 限频只能降低单个 IP 压力,不能完全解决所有问题。

更完整的方案应该是:

访问入口限频

重点接口加严

静态资源缓存

动态页面缓存

Fail2Ban 自动封禁

WAF 规则识别

必要时接入高防或清洗

对于普通网站,Nginx 限频 + 缓存 + Fail2Ban 已经能挡住很多低中强度 CC。
对于持续性、大规模、分布式 CC,则建议结合高防 IP、CDN/WAF 或高防服务器方案。

香港服务器防 CC,不是简单把某个 IP 拉黑,也不是只靠更高配置硬扛。真正有效的做法,是根据业务访问特征,限制单 IP 请求频次、控制连接数、保护登录和接口、优化缓存,并通过日志持续调整规则。

对于 A5IDC 香港服务器用户来说,如果是企业官网、博客、小型后台,选择 30M CN2/CMIN2/CU 线路的香港服务器,再配合 Nginx 限频和 Fail2Ban,就能建立一套轻量但实用的基础防 CC 体系。
如果业务涉及会员系统、API 接口、多站点或高并发访问,则建议选择更高 CPU、更大内存、NVMe SSD 的香港服务器,并将防护策略从“单点限频”升级为“入口限速 + 应用缓存 + 日志封禁 + WAF 联动”的完整方案。

目录结构
全文