当网站遭受DDoS攻击时,Cloudflare的“Under Attack”模式是一项紧急防御设置,它通过向访客展示短暂的安全验证来过滤机器人流量。你只需在Cloudflare面板中选中站点,进入“安全”板块,启用“Under Attack”模式,便可在几分钟内减缓HTTP/HTTPS层面的海量请求冲击,确保真实用户能够正常访问,并大幅降低服务器负载。但请注意,该模式并非一劳永逸的解决方案;它必须结合正确的DNS代理设置、WAF规则、速率限制、缓存配置以及源站服务器安全策略协同使用。
在这篇指南中,我们将逐步拆解“Under Attack”模式如何开启、何时使用、需要搭配哪些辅助设置,以及攻击结束后如何安全地切回正常状态。本文旨在为你提供一份在紧急时刻可立即执行的检查清单,帮助你的网站在最短时间内恢复访问。
什么是Cloudflare的“Under Attack”模式?
Cloudflare的“Under Attack”模式是Cloudflare提供的一种应急安全级别。启用后,Cloudflare会对所有访问网站的访客进行短暂的浏览器验证。这个过程通常只持续几秒钟,却能有效阻挡自动化机器人、简单的HTTP洪水工具或恶意非浏览器客户端,防止它们直接对网站造成负载压力。
该模式的主要目的是缓解应用层(即第七层)的攻击。例如,如果有人对你的首页发起每秒数千次的GET请求、对WordPress登录页发起海量POST试探、对搜索页发起高消耗查询,或向购物车页面灌入伪造流量,“Under Attack”模式都能迅速响应,提供第一道防线。
这里有一个关键区别需要厘清:“Under Attack”模式过滤的是Web请求;但如果攻击者直接针对你服务器的IP地址、你未接入Cloudflare代理的服务暴露在外,或者攻击发生在第三/四层,那么就需要采取额外措施。因此,确保DNS记录在Cloudflare中处于“代理”状态、隐藏源站IP地址,并在主机端实施正确的安全策略,是至关重要的。关于如何选择安全的基础设施,你可以参考安全网络托管服务和SSL证书安装这两篇文章。
DDoS攻击的迹象:开启Under Attack模式前需要排查什么?
并非所有网站变慢都是DDoS攻击。有时候,一个有问题的插件、数据库死锁、高CPU占用的定时任务或错误的缓存设置也会导致类似症状。因此,在开启“Under Attack”模式前,快速做个诊断会很有帮助。当然,如果服务器已经难以响应,用户不断看到502、503、504错误,且日志中出现异常的请求暴增,那就不要再犹豫,应立即启用紧急模式。
典型的DDoS攻击指标
- 短时间内流量激增至正常水平的5倍、10倍甚至50倍。
- 单个页面或接口每秒收到数百个请求。
- 流量来自不同国家,但User-Agent值却极为相似。
- WordPress、WooCommerce、OpenCart或定制软件中的高消耗URL(如后台、登录、搜索、购物车)成为攻击目标。
- 服务器的CPU、内存、PHP-FPM工作进程或MySQL连接数被打满。
- Cloudflare分析面板中,4xx和5xx错误率突然飙升。
- 真实用户间歇性可以访问,但机器人流量却持续不断地发送请求。
举个例子,一个正常情况下每分钟接收2000次请求的电商网站,如果在10分钟内飙升至每分钟8万次请求,且其中70%都指向购物车或搜索页,这明显是第七层攻击的信号。在这种情况下,应在5分钟内开启“Under Attack”模式,随后立即为被攻击的URL添加专门的WAF和速率限制规则。
何时该使用Cloudflare的“Under Attack”模式?
Cloudflare的“Under Attack”模式并非一个需要一直开启的日常安全设置。因为它会向真实访客也展示一个短暂的等待验证页面。这会影响用户体验,尤其是在转化率高的页面、支付流程或依赖API的架构中。最正确的用法是,在攻击期间临时启用,一旦流量恢复正常,就将安全级别调回常规状态。
适用的场景
- 网站正遭受密集且异常的HTTP/HTTPS请求冲击时。
- 服务器资源被迅速耗尽,502/503错误频发时。
- Cloudflare的WAF尚未配置好自定义规则,急需一个快速护盾时。
- 机器人流量明显远超真实用户流量时。
- 攻击目标是网页、表单、登录界面或搜索接口时。
需要谨慎使用的场景
- 网站重度依赖移动应用、支付网关、Webhook或API流量时。
- 正值搜索引擎爬虫进行关键抓取的时期。
- 你的企业用户可能通过旧版浏览器或受限网络环境访问时。
- 你的网站存在未通过Cloudflare代理的子域名时。
对于有API流量的网站,如果对整个域名开启“Under Attack”模式,可能会导致部分集成服务失败。因此,如果条件允许,应为API子域名规划专门的WAF规则、允许列表或不同的安全级别。关于API安全的详细指南,可参考API安全与速率限制指南。
如何开启Cloudflare的“Under Attack”模式?分步实操指南
以下步骤是一份为紧急情况准备的实用检查清单,方便你在攻击发生时快速行动。Cloudflare的界面可能会随时间有细微调整,但核心逻辑不变:选择你的域名,提高安全级别,让所有入站流量都经过Cloudflare的验证。
1. 登录你的Cloudflare账户
首先,登录你的Cloudflare账户,并选择正在遭受攻击的域名。如果你管理着多个域名,请务必确认操作的是正确的区域。在错误的域名上开启“Under Attack”模式只会浪费时间,而真正的攻击仍在继续。
2. 检查DNS记录是否处于“代理”状态
“Under Attack”模式要生效,Web流量必须经过Cloudflare。在DNS设置中,确保A、AAAA和CNAME记录的云朵图标为橙色,即“已代理”状态。处于灰色云朵“仅DNS”状态的记录不会经过Cloudflare的安全层。尤其要检查www、根域名以及所有在用的子域名。
如果你的源站IP地址在公网上可见,攻击者就可以绕过Cloudflare直接攻击服务器。因此,一个强有力的补充措施是在服务器防火墙中,只允许来自Cloudflare IP段的HTTP/HTTPS流量。你可以就此向你的主机提供商寻求支持,或查阅如何设置Cloudflare DNS指南。
3. 在“安全”板块中启用“Under Attack”模式
在Cloudflare面板中打开对应域名后,在“安全”或“概览”页面找到“Under Attack”模式选项。启用后,Cloudflare便会开始向网站访客展示一个短暂的安全验证页面。在某些面板中,这个设置也可能在“安全级别”下显示为“我正遭受攻击”。
启用后,变更通常很快生效。在最初几分钟里,需要同时监控Cloudflare的分析数据、安全事件以及服务器资源消耗情况。如果CPU和连接数开始下降,说明模式生效了。但如果错误率依然居高不下,就需要编写额外的规则。
4. 测试真实用户的访问体验
开启模式后,从不同网络环境测试网站。使用移动网络、办公网络,并尽可能从不同地理位置访问首页、产品页、登录页和支付流程。如果用户在通过验证页面后能正常访问网站,这就是预期行为。如果用户陷入了无限验证循环,那就需要检查Cookie拦截设置、浏览器兼容性或Cloudflare安全规则冲突等问题。
5. 定位攻击针对的URL
“Under Attack”模式提供的是全面防护,但真正的效率提升来自针对性规则。通过Cloudflare安全事件、Web分析、主机访问日志和应用日志,找出接收请求最多的路径。例如,/wp-login.php、/xmlrpc.php、/search、/cart、/api/login或/checkout等URL可能就是被攻击的目标。
一旦确定了目标URL,就可以在WAF自定义规则中,根据国家、User-Agent、请求方法、URI路径或机器人评分等条件采取行动。例如,可以针对某个登录接口,对每分钟请求次数超过合理阈值的IP地址实施托管质询。对于WordPress网站,WordPress安全措施是一个很自然的内链机会。
“Under Attack”模式与其他Cloudflare安全选项的区别
Cloudflare的安全工具各司其职。“Under Attack”模式是一个快速、全面的应急过滤器;而WAF和速率限制则提供了更具针对性、可持续且用户体验更均衡的解决方案。
| 功能 | 作用 | 使用时机 | 对用户的影响 |
|---|---|---|---|
| Under Attack 模式 | 对所有访客进行安全验证,减少机器人流量。 | 遭受活跃DDoS或大规模HTTP洪水攻击时。 | 真实用户会看到一个短暂的等待页面。 |
| WAF 自定义规则 | 针对特定URL、国家、IP、请求方法或User-Agent编写规则。 | 已知攻击模式,需要精准拦截时。 | 规则编写正确,则影响很小。 |
| 速率限制 | 对在特定时间内发送过多请求的客户端采取措施。 | 在登录、搜索、API、购物车等高消耗接口上。 | 阈值设置不当,可能会影响真实用户。 |
| Bot Fight Mode | 帮助减少简单的机器人行为。 | 长期存在中低水平的机器人流量时。 | 通常影响很小。 |
| 缓存规则 | 从边缘节点提供静态或可缓存动态内容。 | 为了永久性降低服务器负载时。 | 配置正确则有积极影响。 |
在实践中,一个好的防御流程是这样的:首先用“Under Attack”模式缓解紧急压力,接着分析攻击模式,添加WAF和速率限制规则,最后通过缓存和源站防火墙设置来加固永久性架构。
攻击期间建议的附加Cloudflare设置
尽管“Under Attack”模式可以一键开启,但DDoS防御的成败取决于配套设置。以下建议是实战中最行之有效的做法。
利用WAF规则构建精准防护
Cloudflare的WAF允许你根据特定条件采取行动。例如,你可以仅对访问/wp-login.php页面且来自特定国家的POST请求发起质询。这样,就能在不拖慢整站速度的前提下,隔离攻击目标。
- 将后台和登录页面仅对特定国家或IP段开放。
- 禁用XML-RPC等不常用的接口。
- 对可疑的User-Agent值实施托管质询。
- 对在特定URI路径上请求过于频繁的客户端,通过速率限制进行约束。
正确设置缓存级别
在DDoS攻击期间,如果源站服务器需要响应每一个请求,资源会很快耗尽。静态文件、图片、CSS、JavaScript以及可缓存的页面,都应通过Cloudflare的边缘节点来提供。对于WordPress这类动态系统,可以结合使用页面缓存插件、Cloudflare缓存规则以及合适的Cache-Control头信息。
例如,一个以新闻或博客为主的网站,可以为匿名访客展示的页面设置5到30分钟的缓存。这个简单的设置,即使在非攻击时期,也能降低首字节时间,并释放主机资源。在性能方面,可以参考网站加速指南这篇文章。
设定切合实际的速率限制阈值
速率限制对高消耗接口尤其有效。但如果阈值设置得过于随意,可能会误伤真实用户。例如,在产品搜索页,一个正常用户每分钟可能搜索5-15次,而每分钟100次则是异常的。在登录页,5分钟内10次失败尝试,在多数场景下都是可疑的。
一个示例方案:对/wp-login.php,每分钟请求超过10次的IP实施托管质询,5分钟内超过50次的IP则临时封锁。对于API接口,则应根据用户会话、IP、令牌和请求方法,设置更精细的限制。
隐藏源站IP并用防火墙限制访问
使用Cloudflare时,最严重的错误之一就是暴露源站IP地址。旧的DNS记录、直接通过IP访问的子域名、与邮件服务混在一起的Web服务,或泄露的配置文件,都可能导致攻击者绕过Cloudflare直接攻击服务器。
在服务器端,将80和443端口仅对Cloudflare的IP段开放,是一项强有力的防护措施。此外,SSH、管理面板、数据库和其他管理端口不应暴露在公网上;应使用IP限制、强密码、双因素认证,并尽可能使用VPN。关于主机安全,可以链接至cPanel安全设置和VPS防火墙配置。
WordPress、WooCommerce及企业站的特别注意事项
每个网站的流量结构都不同。一个博客、一个WooCommerce商店和一个SaaS面板,对Cloudflare的“Under Attack”模式反应可能天差地别。因此,需要根据站点类型确定关键路径。
WordPress网站
WordPress最常被攻击的文件是/wp-login.php和/xmlrpc.php。如果你不使用XML-RPC,直接禁用它通常是安全的。可以对后台管理面板实施国家或IP限制。同时,注意不要让安全插件和Cloudflare规则发生冲突;同时使用过多质询机制可能会让用户陷入验证死循环。
WooCommerce商店
在WooCommerce中,购物车、结账和用户账户页面需要特别关注。这些页面是动态的,不应进行激进缓存。开启“Under Attack”模式时,务必确保支付网关的回调或Webhook URL能正常工作。必要时,应将支付网关的IP范围加入允许列表,或为相关接口编写专门的规则。
企业站和依赖API的网站
企业门户、CRM集成和移动应用API可能无法处理JavaScript质询页面。对于这类架构,与其对整个域名开启“Under Attack”模式,不如将API子域名分开管理。例如,对www.example.com开启“Under Attack”,而对api.example.com则采用基于令牌的安全验证、速率限制和允许列表。
开启“Under Attack”模式后需要监控的指标

要判断一项安全措施是否有效,数据监控必不可少。仅仅网站能打开是不够的,还需要综合评估错误率、服务器负载和真实用户行为。
- Cloudflare安全事件:显示哪些规则质询或拦截了多少请求。
- HTTP状态码:监控403、429、502、503和504错误的变化。
- 服务器CPU和内存使用率:开启后应预期看到下降。
- PHP-FPM和MySQL连接数:能反映应用层的缓解情况。
- 带宽和请求数量:对比总流量与被过滤的请求比例。
- 真实用户转化:测试表单提交、下单、登录和支付等环节。
例如,开启“Under Attack”模式后,即使总请求数不变,但到达源站的请求减少了60%,这说明Cloudflare层吸收了巨大的负载。如果即便如此,MySQL的CPU使用率依然很高,那攻击可能触发了某个特定的高消耗动态查询,这时就需要深入检查应用日志。
攻击结束后,如何关闭“Under Attack”模式?
当攻击流量恢复正常后,不建议长期开启“Under Attack”模式。因为对每位访客都进行额外验证,会影响转化率、搜索引擎抓取效率和用户满意度。关闭过程应和开启时一样,需要谨慎操作。
安全切回正常状态的步骤
- 至少观察30-60分钟,确保流量水平已恢复正常。
- 在Cloudflare安全事件面板中,确认质询和拦截的数量已经下降。
- 在关闭“Under Attack”模式前,确保针对性的WAF和速率限制规则已生效。
- 将安全级别调整至“高”或“中”等更均衡的级别。
- 用不同设备测试网站,并监控5xx错误率。
- 在接下来的24小时内持续监控日志,检查攻击是否卷土重来。
作为良好实践,建议在攻击结束后创建一份事件报告。报告中应记录攻击开始时间、目标URL、峰值请求数、采取的措施、生效的规则以及永久性改进方案。这份文档能极大缩短下一次事件的响应时间。
常见错误及避坑指南
DDoS攻击时需要快速决策,但错误的设置同样会误伤真实用户。以下错误在高度紧张的情况下尤为常见。
- 以为不开启DNS代理,“Under Attack”模式也能提供保护。
- 暴露源站IP,且未在防火墙上限制非Cloudflare IP的访问。
- 未经测试就对全站开启质询,导致API、Webhook和支付回调地址失效。
- 编写过于宽泛的WAF拦截规则,屏蔽了真实客户。
- 对购物车、结账或用户面板等不应缓存的页面进行激进缓存。
- 攻击结束后,模式还开了好几周。
- 只看Cloudflare面板,不深入分析服务器日志就做决策。
尤其是在电商网站中,屏蔽支付回调会造成严重的收入损失。因此,在编写安全规则时,更稳妥的做法是先采用“日志”或“托管质询”操作进行测试,而非直接“拦截”。在确认规则效果后,再升级为更严厉的措施。
如何在Hostragons基础设施上规划更坚韧的防御体系?
Cloudflare提供了强大的前端防护,但成功的DDoS防御绝不仅限于CDN层面。主机基础设施、软件优化、SSL配置、DNS管理和备份策略需要通盘考虑。对于托管在Hostragons上的网站,基本思路应该是:Cloudflare负责过滤流量,主机层只接收清洗后的干净流量,而应用层则需优化到不会产生不必要的数据库负载。
在新项目上线前,通过正确的DNS记录管理域名、无缝安装SSL证书,以及根据你的流量画像选择合适的Web服务器资源,都至关重要。在这方面,域名查询与域名注册、网络托管套餐、企业托管解决方案和免费SSL证书等链接可以为用户提供帮助。
对于高流量或高风险项目,可以考虑使用可控性更强的VPS或可管理服务器,而非标准的共享主机。这样,防火墙、Web服务器、PHP-FPM、Redis、对象缓存和数据库的设置都能更灵活地配置。但无论选择哪种基础设施,都应把Cloudflare的“Under Attack”模式仅定位为一个应急工具;而永久性的安全架构,则需要通过WAF、日志分析和定期更新来支撑。
快速检查清单:DDoS攻击发生后的黄金15分钟
攻击发生时,时间至关重要。以下清单总结了技术团队或网站站长在最初15分钟内可以采取的行动。
- 登录Cloudflare面板并选择正确的域名。
- 检查DNS记录确保云朵为橙色,即“已代理”状态。
- 启用“Under Attack”模式。
- 测试首页、登录、购物车、支付和API接口。
- 通过Cloudflare安全事件面板,定位被攻击的目标URL。
- 为遭受攻击最猛烈的路径添加专门的WAF或速率限制规则。
- 检查服务器CPU、内存、PHP-FPM和MySQL状态。
- 测试是否存在对源站IP的直接访问。
- 检查支付网关、Webhook和关键集成是否需要加入允许列表。
- 将所有操作连同时间点记录下来。
如果能定期演练这份清单,在真实攻击发生时,就能减少恐慌,提高响应质量。对于大型网站,建议将此流程文档化,形成正式的事件响应计划。
常见问题
Cloudflare的“Under Attack”模式能完全保护网站吗?
不能。Cloudflare的“Under Attack”模式在减少HTTP/HTTPS层面的机器人和洪水流量方面特别有效,但它无法单枪匹马提供全面保护。必须结合DNS代理、隐藏源站IP、WAF规则、速率限制、缓存和服务器防火墙设置一起使用。
“Under Attack”模式会影响SEO吗?
短期使用通常不会造成严重的SEO损害。但如果该模式长期开启,可能会影响搜索引擎爬虫的抓取效率和用户体验。因此,攻击结束后,更稳妥的做法是关闭该模式,转而依赖精准的安全规则。
Cloudflare的“Under Attack”模式应该开启多久?
可以一直开着,直到攻击强度减弱。实践中,建议在流量恢复正常后,再观察至少30-60分钟,然后逐步关闭。在关闭模式前,务必确保WAF和速率限制等永久性规则已经就位。
“Under Attack”模式会影响API或支付系统吗?
会,可能会。因为部分API客户端、Webhook服务和支付回调系统无法完成基于浏览器的安全验证。因此,必须测试关键接口,并在必要时定义允许列表或专门的Cloudflare规则。
用了Cloudflare,主机端还需要采取额外安全措施吗?
需要。Cloudflare在前端提供了强大的保护,但源站服务器的IP必须隐藏,防火墙应仅允许必要的流量,软件要保持最新,缓存配置要正确。一个安全的主机基础设施是整体DDoS防御能力的重要组成部分。
总结
Cloudflare的“Under Attack”模式,是网站在遭受DDoS攻击时,能让你快速获得喘息空间的强大应急工具。配合正确的DNS代理设置启用后,它能有效减少机器人流量,降低服务器负载,并提升真实用户成功访问网站的概率。为达到最佳效果,你需要用WAF规则、速率限制、缓存优化和源站防火墙安全策略来支撑这个模式。
如果你希望你的网站对攻击有更强的韧性,请定期审视你的基础设施、DNS管理和SSL配置。通过了解Hostragons的主机、域名和SSL解决方案,你可以为你的网站打造一个更安全、更可持续的基石。