零基础配置美国高防服务器抗CC:从SSH到防火墙步步可操作
前置准备
在开始配置美国高防服务器抗CC之前,你需要准备以下环境:
- 一台已经开通高防IP的美国服务器(例如AWS、RackNerd或硅云高防机型)。
- SSH客户端(Windows用Putty或Termius,Mac/Linux直接用终端)。
- 服务器操作系统:本文基于 CentOS 7/8(其他系统命令类似)。
- 已经安装Nginx(作为演示环境,其他Web服务同理)。
- root权限或拥有sudo权限的普通用户。
如果你是第一次接触服务器,建议先在非生产环境测试,熟悉流程后再上线。
分步操作
1. 登录服务器并更新系统
通过SSH登录后,先刷新软件源并安装常用工具:
ssh root@你的高防服务器IP
输入密码
yum update -y
yum install -y epel-release wget curl
2. 安装并配置fail2ban(核心抗CC工具)
fail2ban能监控日志,对短时间内发起大量请求的IP自动封禁。
yum install -y fail2ban firewalld
systemctl enable fail2ban
systemctl start firewalld创建自定义配置文件:
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
vim /etc/fail2ban/jail.local在 [DEFAULT] 段落下面找到以下参数并修改(如果没有则新增):
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 20*解释:10分钟内尝试超过20次连接的IP被封1小时。
*
然后添加一个针对Nginx的规则:
[nginx-cc]
enabled = true
port = http,https
filter = nginx-noscript
logpath = /var/log/nginx/access.log
maxretry = 50
findtime = 60
bantime = 3600*注意:上方的filter名称需要和/etc/fail2ban/filter.d/下的文件对应。
你可以直接使用现成的nginx-http-auth或者自己写一个。
这里为了简化,使用系统自带的nginx-http-auth过滤器(针对登录失败),但抗CC建议自己写过滤器,新手可以先使用下面的简化方法——直接利用ngx_http_limit_req_module。
*
更简单的替代方案:直接修改Nginx限制请求频率
编辑Nginx配置(一般位于/etc/nginx/nginx.conf或站点配置文件中),在http块加入:
limit_req_zone $binary_remote_addr zone=anti_cc:10m rate=5r/s;然后在需要保护的server或location块中加入:
limit_req zone=anti_cc burst=10 nodelay;*含义:每个IP每秒最多5次请求,超过后排队最多10个,然后直接拒绝。
*
重启Nginx:
systemctl restart nginx3. 开启高防IP自带CC防护(不同面板界面有差异)
登录你的服务器供应商控制台(如硅云、火山引擎等),找到高防IP管理 → CC防护策略。
一般选项包括:
- 开启CC防护(开启)
- 请求频率阈值:建议设为100次/分钟(可根据业务调整)。
- 封禁时间:30分钟。
保存后,系统会自动清洗异常流量,无需额外操作。
避坑指南
- 规则太严导致正常用户无法访问:
rate=5r/s对于图片站可能太低;可以先设为r/s测试,再逐步调低。 - 忘记放行自己的IP:如果你需要频繁调试,建议在
http块用geo模块添加白名单:
geo $limited {
default 1;
你的外网IP 0;
}
limit_req zone=anti_cc burst=10 nodelay;- fail2ban不生效:检查日志路径是否正确(
/var/log/nginx/access.log是否存在),以及firewalld是否允许fail2ban(systemctl status fail2ban查看)。 - 高防控制台显示攻击已被清洗,但源服务器依然高负载:检查是否有其他端口被攻击(如SSH、数据库),可设置源站IP白名单只允许高防IP回源。
高频问题解答
Q1:CC攻击和DDoS攻击有什么区别?
A:CC攻击属于应用层攻击,模拟正常请求占用服务器资源;DDoS是流量层攻击,用大流量堵塞带宽。美国高防服务器抗CC主要针对应用层限制请求频率。
Q2:仅靠高防IP自带的CC防护够用吗?
A:基本够用,但建议配合服务器端工具(如fail2ban、Nginx限流)做双重防御,尤其是针对慢速CC或高频GET请求。
Q3:如何确认自己是否正在被CC攻击?
A:用netstat -ant | grep :80 | wc -l查看80端口的连接数,如果短时间内从几百冲到数千,同时服务器负载飙升,基本可以判断。
Q4:配置后用户访问出现“Service Unavailable”怎么办?
A:这是限流生效的表现,可适当调高rate值或增大burst。
效果验证
完成配置后,你可以用压力测试工具模拟CC攻击,验证美国高防服务器抗CC是否生效:
# 安装ab(Apache Bench)
yum install -y httpd-tools
模拟50个并发,持续10秒攻击某个页面
ab -n 200 -c 50 http://你的服务器IP/
观察返回结果:
- 若出现 Non-2xx responses 且数量接近200,说明大部分请求被拒绝。
- 查看Nginx日志:
tail -f /var/log/nginx/access.log,会看到大量IP被限制(状态码503)。 - 高防控制台也会显示攻击流量被拦截的图表。
如果你使用的是fail2ban,还可以查看封禁记录:
fail2ban-client status nginx-cc看到列表中有IP被ban,说明规则生效。
---
最后提醒:如果你正在处理美国高防服务器抗CC,建议先按本文步骤完整执行,再根据自己的环境微调;
遇到异常时优先回看避坑和高频问题部分。
防御是动态过程,定期检查日志和调整阈值才能稳住服务器。