推荐词
不一定,看运气,大概率可以更快
原文
本文由 简悦 SimpRead 转码, 原文地址 blog.tangwudi.com
Contents1 前言 2 基本面 2.1 连通性 2.1.1 域名解析 Anycast IP 的变化 2.1.2 连接速率对比 2.1.2.1 选择使用 Free 账号的对比对象 2.1.2.2 国内访问测速 (TTFB…
我大约是去年年初的时候知道的 Cloudflare,距今已经差不多一年了,这一年中我使用 Free 账户白嫖了 Cloudflare 的众多功能 (CDN 缓存加速、WAF、DDoS 攻击防护、Tunnel、worker、R2 等等),说实话,我心情一直很复杂:一方面白嫖得很爽,一方面又觉得白嫖得很惭愧 (当年因为一直使用盗版感觉亏欠了微软,我可是自费购买 surface pro 4 来还债的~)。同时,我对 pro 订阅用户多出的功能也很好奇,毕竟 pro 用户年付费的话,20 美金 / 月也不算贵,每个月少吃一顿大餐就省出来了,关键在于,相对于普通 Free 用户来说,pro 订阅用户多出的功能到底值不值 20 美金 (我相信绝大部分使用 Cloudflare Free 账户的站长都有这个疑惑)?
带着疑惑,在网上搜了半天,我发现几乎没有详细验证这个问题的文章,一般也是一些论坛里有人提出问题,然后有人简单的回答几句,并且主观性也很强:
其实就连 Cloudflare 自己的官方网站也写得很简洁:
那么,到底 pro 用户的实际体验如何呢?订阅了 pro 用户就能成仙吗,还是说其实是拿了钱打水漂,就像前面说的,就是送个付费图标?
我可不是人云亦云的人,毕竟毛泽东同志讲过:实践才能出真知。于是我带着这些困惑,花了 25 美金的巨款订阅了 Pro 用户,开始了这一个月的 pro 用户尝鲜之旅。
注:我会从基本面、性能优化、安全性、运维可见性这 4 个角度来总结。
之前使用 Free 账户的时候,我的博客域名”blog.tangwudi.com” 的解析地址是”104.21.x.1″:
结果,升级到 pro 之后解析 IP 发生了变化:
之所以关注这个问题,是因为之前看到有人问到这个问题:
不过,即便我自己升级到 Pro 用户之后解析 IP 发生了变化,但我仍旧无法确定其他人升级到 Pro 后解析 IP 的变化情况,所以无法下结论,只能说升级到 Pro 用户的确” 有不小的可能” 会改变解析 IP,希望更多订阅 Pro 用户的朋友可以留言说下你们的情况。
注 1:去年 12 月左右,我的博客存在部分国内宽带用户访问异常的问题,而 PT 玩家们也应该记得去年 12 月的时候,不少套 Cloudflare(Free 账户)PT 站点的 web 网页或者 tracker 服务器访问异常?其实就是因为”104.21.x.1″这段 IP 在国内被三大运营商封杀,电信和联通是区域性的访问困难,而移动最为夸张,基本上全国都无法访问,这种情况 1 月后才开始慢慢恢复。
注 2:按照目前的情况来看,获得 3 个 IP 的大概率是 Pro 用户,而获得 7 个 IP(104.21.*.1
) 和两个 IP(104.* 和 172.*) 的大概率是 Free 用户。
那么,升级到 Pro 之后的实际连接速度有没有差异呢?我使用 ITDOG 的网站测速来将我和两个使用 Cloudflare Free 账号的网站 (著名 PT 站点” 某众”和”某天”)进行对比,因为它们的解析 IP 地址和我之前 Free 账号时候是一样的(其实解析 IP 一样未必就是 Free 账号,盲猜应该是~)。
某众:
某天:
某众:
某天:
结论:国内访问 Pro 账号对应域名的 TTFB 时间相比访问 Free 账号对应域名的 TTFB 时间来说,至少要少一半。
注:TTFB 时间和最终用户访问网站体验的” 快慢” 感觉不能一概而论,不过对于相同的网站来说,TTFB 时间越短访问体验肯定越好。
某众:
某天:
结论:国外访问 Pro 账号对应域名的 TTFB 时间相比访问 Free 账号对应域名的 TTFB 时间来说,完全不是一个量级 (0.0x 秒对 0.x 秒甚至 x 秒),没有什么比较的意义了。不过,Free 账号的零点几秒对人的感觉上来说,也已经不算慢了,所以对一般使用 Free 账号的个人站点而言其实影响也并没有那么大,关键还是在于缓存规则配置是否合理以及网站自身的优化情况。
从前面 “国内” 和” 国外” 发起访问的 TTFB 测试结果来看,Cloudflare Pro 账户 与 Free 账户 之间确实存在显著的访问速度差异,然而,Cloudflare 官方却从未明确宣称 Pro 账户在访问速度或线路上优于 Free 账户,那么,Pro 账户的加速效果到底来自哪里?
其实,Cloudflare 的付费计划带来的加速效果,并非是简单的通过更换 IP 地址或提供特殊线路来实现,而是更依赖 底层网络优化、流量调度优先级提升以及更高级的缓存策略,这些优化主要体现在:
1. 访客流量的 PoP(边缘数据中心) 分配
Cloudflare 在全球拥有超过 300 个 PoP(边缘数据中心),但 不同等级的账户在流量调度上的优先级不同:
Free 账户:低优先级,可能绕远
• Free 账户的流量 在高负载时容易被调度到更远的 PoP,从而增加访问延迟。
• 部分高性能 PoP 可能不会向 Free 账户开放,而是优先提供给付费账户。
• 国内用户访问 Free 账户站点时,可能会出现绕行的情况,导致 TTFB 增加。
Pro 账户:更优先接入高性能 PoP,减少绕远
• Pro 账户的流量在 负载均衡时优先进入最近的 PoP,减少因绕远导致的延迟。
• 尽管 Pro 账户仍不能像 Enterprise 账户那样指定 PoP,但更有可能进入 Cloudflare 的优质节点,减少访问抖动。
• 对于国外用户,Pro 账户的 PoP 选择优化更明显,能够显著降低 TTFB。
现实影响
• 国内访问:Pro 和 Free 账户差异不大,因为 Cloudflare 在国内没有 PoP,流量都需要绕行境外。
• 国外访问:Pro 账户通常会被分配到更近的 PoP,因此 TTFB 相比 Free 账户更低,体验更好。
2. 回源 (Origin Requests) 优化
访客的请求进入 Cloudflare 后,如果缓存未命中,Cloudflare 仍需回源请求数据,不同账户的回源策略也有所不同:
Free 账户:回源路径可能较远
• Free 账户的 缓存层级较低,命中率不如 Pro 账户,导致更多请求需要回源。
• 回源路径可能绕远,因为 Free 账户的回源请求不一定会选择最优路径。
• 这导致 Free 账户的动态内容加载(如 API 请求、数据库查询)可能比 Pro 账户更慢。
Pro 账户:优化回源路径,减少源站压力
• 更好的缓存管理策略,减少不必要的回源,提高站点性能。
• 回源路径通常更优化,虽然不如 Enterprise 账户可以使用 Argo Smart Routing,但比 Free 账户更优。
• 可选 Argo Smart Routing 进一步提升回源速度,减少网络抖动。
现实影响
• 如果站点主要依赖静态内容(如博客、图片站),Pro 账户的缓存效率更高,减少回源,提高访问速度。
• 如果站点以动态内容为主(如 API、数据库查询),Pro 账户的回源优化可能会提升稳定性,但不会减少回源频率。
尽管 Pro 账户在 PoP 选择和回源优化上带来了实际的速度提升,但 Cloudflare 始终强调 Pro 账户的 “功能性提升”,而非单纯的加速效果。那为什么 Cloudflare 官方不直接宣传 “Pro 账户访问速度更快”,而是始终强调功能性的区别?我觉得可能是基于以下三个原因:
1. 受限于网络环境,不同用户的体验不同:
• Cloudflare 的加速效果取决于 用户的地理位置、ISP 运营商、站点内容类型等多个因素。
• 对于国外用户,Pro 账户的 PoP 优化确实能带来更快的访问速度。
• 对于国内用户,由于 Cloudflare 没有中国 PoP,Pro 账户的速度提升并不明显,官方不希望引起误导。
2. PoP 分配是动态调度,无法保证 100% 一致:
• Cloudflare 会根据实时负载情况动态调整 PoP 分配,即使是 Pro 账户,也不能 100% 确保始终走最近的 PoP。
• 这种动态调度方式意味着 Cloudflare 无法给出固定的加速承诺,只能从功能层面来区分 Pro 和 Free 账户。
3. Cloudflare 更倾向于强调安全和优化功能:
• Cloudflare 的核心业务不仅仅是 CDN 加速,而是 一个综合的网络安全和优化平台。
• Pro 账户的真正价值在于 更强的 WAF 规则、更好的 DDoS 保护、更灵活的缓存策略,而 Cloudflare 也更倾向于强调这些功能。
这部分是 Free 账号就提供的功能,只不过支持的数量较少,升级到 Pro 之后,相应的配置数量也有较大的提升,这里简单列举几个常用的:
1、页面规则数量
-
Free 账号 3 条:
-
Pro 账号 20 条:
2、WAF 自定义规则数量
-
Free 账号 5 条:
-
Pro 账号 20 条:
3、速率限制规则数量
-
Free 账号 1 条:
且超过速率限制时只能阻止 10 秒钟:
-
Pro 账号 2 条:
且超过速率限制后可以阻止最长 1 小时以及自定义响应类型:
4、缓存规则数量
-
Free 账号 10 条:
-
Pro 账号 25 条:
以上就列举了我常用的,其他不常用的一些我就不一一列举了,按照官方说法,Pro 计划比 Free 计划一共多了 155-65=90 条规则:
注:速率限制规则多了一条算是帮了我大忙了,可以用于对 WordPress 敏感路径的防护,比如对”/wp-admin/admin-ajax.php” 设置单独的速率限制,之前我还只能把这部分流量单独拆分开后发给内网的长亭 WAF 来做速率限制 (参见文章:家庭数据中心系列 破解 WordPress AJAX 的防护难题:利用 Cloudflare Tunnel 实现网站正常访问与攻击流量的” 分流” 防护),现在终于能放在云端处理掉了,而其他几个规则的数量其实多点少点对我没太大影响:同一个规则中多用”or” 就行~。
图片优化是网站优化的一个非常重要的组成部分,在 Free 账号中这部分功能是没法用的:
注:图像转换需要配合 Cloudflare Image(付费) 来使用,并且还需要修改图片的链接 (指定宽度和高度),不适合我这种懒人,所以本文中就不涉及了。
而开通 Pro 之后,Polish 和 Mirage 都可以使用了:
Cloudflare 的图片优化功能 Polish 可以自动压缩和优化网站上的图片,以提升页面加载速度和减少带宽消耗:它通过无损压缩和有损压缩两种方式优化图片,同时支持 WebP 格式的转换,从而提供更高效的图片呈现。Polish 还会根据访问者的设备和网络条件,智能地选择最合适的图片格式和质量,进一步改善用户的浏览体验,启用 Polish 后,图片加载速度将显著加快,特别是在移动设备上,提升网站的整体性能和响应速度。
和图像转换功能比起来,Polish 最大的优势是不用折腾:图片不需要存放在 Cloudflare Image 上,可以直接存放在您自己的服务器或其他支持的云存储 (如 Cloudflare R2) 上。Polish 会在图片传输过程中自动优化并压缩图像,而无需您手动调整源文件。需要注意的是,Polish 优化功能仅适用于通过 Cloudflare 代理的域名,因此需要确保存放图片的图床的域名是通过 Cloudflare 代理的。
Polish 的优化效率有多高呢?以我一张 R2 上存放的图片为例,原始大小 234kB:
经过 Polish 优化之后,转换成了 webp 格式,大小也只有 130kB,少了 104kB:
图片直接转变成了 webp 格式并且容量少了将近 45%,这个优化是相当的给力啊,关键我什么都没做,只是打开了一个开关而已~~,所以这是非常适合懒人的一个优化功能。
注 1:Polish 功能生效的前提是该图片已经被 CDN 缓存,未被缓存的图片 Polish 功能不生效。
注 2:另一个有意义的参数是 Cf-Bgj,imgq:100 表示图像质量未降低,因为我 Polish 选择的是” 无损” 模式。
Cloudflare 的 Mirage 功能是一个针对移动设备和低带宽网络优化的图片加速工具,它通过智能地调整图片的加载方式和质量,帮助减少页面加载时间,特别是在慢速网络环境下。Mirage 会根据用户设备的屏幕大小、分辨率和网络条件,动态地提供适配的图片尺寸和质量,从而有效降低带宽消耗并提升用户体验。它还能延迟加载图像(按需加载),确保只在用户需要时才加载图片,进一步优化网站性能。总的来说,Mirage 使得移动设备上的网页加载更快,提升了网站的整体访问速度和流畅度。
不过,Mirage 的效果不如 Polish 那样好观察 (需要低速网络,chrome 开发者工具的设备和网络模拟未必好使),且没有明显的标识,我就不为了张截图去折腾了。
注:其实,Polish 对移动端设备也是有作用的,Polish 的图像优化功能不仅会压缩和优化图片,还会根据访问者的设备和网络条件,智能地选择合适的图片格式和质量。例如,Polish 可以将图片转换为更轻量的 WebP 格式,这对于移动设备上的加载速度特别有利,因为 WebP 文件通常比传统的 JPEG 或 PNG 文件小,且保持较好的图像质量。不过,Polish 更侧重于优化图片的大小和格式,而不像 Mirage 那样专门为移动设备进行额外的智能处理(如动态调整图片尺寸和按需加载)。因此,Polish 仍然能提高移动端的图片加载速度,但如果需要更深入的移动端优化(如延迟加载和设备适配),Mirage 或其他技术可能更为合适。
内容优化中除了 APO 之外,其他的功能都是 Free 版中就有了,所以我主要介绍 APO,不过,也可以顺带提一嘴 Rocket Loader,因为这个功能也蛮重要:
Cloudflare 的 Rocket Loader 是一项通过延迟加载网页上非关键的 JavaScript 脚本来实现缩短页面加载时间的功能,它将非关键脚本的加载推迟,优先加载对页面渲染至关重要的资源,从而减少页面的阻塞时间。通过这种延迟加载方式,Rocket Loader 能确保页面内容更快呈现给用户,提升整体加载速度和用户体验。
WordPress 本地的一些插件其实也有实现类似的功能,比如 WP Rocket,可以延迟非关键 JS 文件的执行,还可以优化合并 JS 脚本 (对 CSS 也可以优化合并)。
我之前还专门做了对比,结果发现使用 WP Rocket 和 Rocket Loader 的效果相差不大,那我自然愿意少装一个插件,改为通过 Cloudflare 云端来实现了,结合 Zaraz 的第三方脚本云加载和管理,可以给 Wordpress 大量” 减负”。当然,WP Rocket 还有其他很实用的功能,这个就和下一节介绍的 APO 功能有关了。
我之前写的 Cloudflare 系列教程第七部 (参见:家庭数据中心系列 cloudflare 教程 (七) CF worker 功能介绍及基于 worker 实现” 乞丐版 APO for WordPress”功能加速网站访问的实操、验证及相关技术原理研究) 关于使用 Worker 来加速网站访问的文章中,其实就已经介绍过 APO 功能:
简单来讲就是,只需要两步操作
1、在 Cloudflare 仪表盘中启用 APO 功能的开关:
2、在 Wordpress 中安装一个 Cloudflare 插件并启用 (需要进行很简单的初始化设置):
完成这两步后,你就能享受 Cloudflare 提供的基于 Worker 实现的全球 CDN 优化,自动涵盖 WordPress 中的 HTML、JavaScript、CSS 和图片资源,且支持无限流量。最重要的是,启用 APO 后,网站性能的提升不仅限于缓存和优化,还带来了其他显著的好处:
首先,APO 自动为你的 WordPress 网站启用了智能缓存,无需手动配置复杂的页面规则或缓存策略。传统的优化方式通常需要使用如 WP Fastest Cache 或 WP Rocket 等插件来处理本地缓存、JS 和 CSS 优化,并且还要在 Cloudflare 仪表盘中手动设置缓存规则,甚至还可能需要配置 Worker 和 KV 来实现优化。相比之下,APO 通过 Cloudflare 的自动化机制,自动完成这些优化工作,不仅省去了繁琐的配置,还减少了人为错误的可能性,极大简化了优化流程。
其次,APO 还避免了传统优化中经常需要调整的复杂缓存逻辑。以往,针对 WordPress 的缓存策略常常不够精细,需要针对不同的资源手动设置缓存规则,或者通过 Worker 和 KV 来实现更精细的控制。而启用 APO 后,Cloudflare 会自动处理所有缓存和优化,无论是图片、HTML 还是 JavaScript,都能够自动实现智能缓存和优化,不再需要手动干预。
最重要的是,APO 通过 Cloudflare 的全球 CDN 网络,确保无论用户身处何地,都能快速加载网站资源,显著提高了页面的响应速度和用户体验。尤其对于全球范围内的访问者,APO 的优化效果尤为突出,能够有效减少地域性延迟,提升访问速度。
总体来说,启用 APO 后,你的 WordPress 网站不仅能享受更高效的缓存策略和优化,避免了手动配置的麻烦,还能自动获得 Cloudflare 强大的全球网络支持和无限流量能力 (之前使用基于 Worker 的优化方式时最担心的就是遇到 DDoS 攻击,因为 100000 请求 / 天的免费额度真的不抗揍~),大大简化了性能优化的工作,让网站运行更加流畅和高效。
注 1:在 Free 账号中也可以单独订阅 APO 功能 (5 美金 1 个月),所以如果之前在 Free 账号中本来就已经订阅了 APO 的朋友,订阅 Pro 年费会员的话就相当于每月只需要多付 15 美金,这么一想是不是瞬间感觉占了大便宜?
注 2:APO 是专为 WordPress 网站设计的功能,Cloudflare 主要通过与 WordPress 的深度集成来提供这项服务 (谁叫 Wordpress 在全球占比大呢,群众基础太好了),所以对于其他不使用 Wordpress 建站的订阅 Pro 的朋友来说,这项功能就白给了,好浪费。
注 3:APO 和 上节内容提到的 Rocket Loader 可以同时生效,并且能够互补提升网站性能。APO 通过 Cloudflare 的全球 CDN 网络优化和缓存 WordPress 网站的静态资源(HTML、CSS、JavaScript 和图片),加速页面加载并减少源服务器负担;而 Rocket Loader 主要优化 JavaScript 的加载顺序,通过延迟非关键脚本的加载,确保页面内容优先呈现,减少渲染阻塞。两者结合使用时,APO 提供全站的缓存和资源优化,而 Rocket Loader 专注于优化脚本加载,能显著提升网站加载速度和用户体验。不过,WordPress 本地一般也有的相关优化选项,比如我使用的 Argon 主题中本来就有图片 Lazyload 的功能:
建议本地的优化选项可以关闭掉,全部让 Cloudflare 负责,以防相互干扰。
这部分内容我就不多说了,Pro 专用的只有” 增强的 HTTP/2 优先化” 这个选项,其他的 Free 计划中都可以使用,大家自己看注释即可,基本全部打开就行。不过,在意国内用户访问的站长对”HTTP/3″选项的开启要慎重,毕竟 QUIC UDP 端口 443 的流量太显眼了 (关键这部分流量要穿越某 wall),太容易被针对了。
这部分内容 Pro 专用的就是 自动签名交换 (SXG) 功能:
启用 自动签名交换 (SXG) 功能后,Google 不再仅充当传统的搜索引擎角色,把访问请求转发到网站,同时还作为缓存服务器直接用缓存的内容来响应用户请求。这意味着,Google 可以通过与访问者进行安全的签名交换,确保缓存内容的完整性和有效性,同时显著加速页面加载速度,这样不仅减少了页面加载时的延迟,还能有效改进 Core Web Vitals 中的 最大内容绘制 (LCP) 指标,从而提升用户体验,并间接提高 SEO 排名。
启用后的具体效果,就是来源域名多了一个”blog-tangwudi-com.webpkgcache.com”:
相应的,来自”google.com” 的请求数量会下降。
对于 Pro 用户而言,除了 WAF 自定义规则支持的数量增加外,最关键的改变就是托管规则。
Cloudflare WAF 对 Free 用户 提供的所谓 “免费托管规则”,官方说法是” 能提供一些基本的 WAF 保护功能,主要针对常见的攻击类型,如 SQL 注入、跨站脚本(XSS)等进行默认防护”。但实际上,这些防护效果相对有限,甚至可以说基本相当于没有。之前,我主要依赖 长亭雷池社区版(现在已经改名为个人版)在内网中拦截大部分攻击,然后通过 Wordfence 插件 在 WordPress 中进行第二层过滤,确保安全。通常,只有在长亭雷池 WAF 拦截到多次重复的攻击行为后,我才会在 Cloudflare WAF 中手动添加自定义规则进行封锁。
从这个角度来看,Free 用户 的 WAF 功能实际上可以视为一个几乎透明的组件,默认情况下并不会提供太多保护,真正发挥作用的全靠用户后续的手动干预和规则添加。
但是,升级到 Pro 用户以后就不同了:
对于 Pro 用户,Cloudflare WAF 提供了两个重要的托管规则集:Cloudflare 托管规则集 和 Cloudflare OWASP 核心规则集,这两个规则集在保护网站免受各种网络攻击方面发挥了重要作用:
1. Cloudflare 托管规则集(Cloudflare Managed Ruleset)
概述:Cloudflare 提供的 托管规则集 是一系列预配置的规则,用于防范常见的 web 攻击,如 SQL 注入、跨站脚本(XSS)等。通过这些规则集,Cloudflare 会自动更新和优化防护策略,无需用户手动配置。
特点:
• 自动更新:规则会随时更新,以应对新的安全威胁。
• 高效防护:覆盖常见的攻击手段,如跨站请求伪造(CSRF)、文件上传漏洞等。
• 无需手动干预:Cloudflare 托管规则集不需要用户额外配置,系统会自动启用。
• 定期优化:根据全球网络流量和安全趋势,Cloudflare 会不断优化这些规则,以提高检测精度和减少误报。
适用场景:对于没有太多时间或资源来管理 WAF 设置的用户,托管规则集提供了一个非常方便且有效的防护解决方案。
目前,托管规则集中有 34 个 Wordpress 相关的规则,对于 Wordpress 使用者的我来说,感觉瞬间安全了很多:
2. Cloudflare OWASP 核心规则集(OWASP Core Ruleset, CRS)
概述:OWASP 核心规则集 是基于 OWASP (Open Web Application Security Project) 的推荐和最佳实践开发的一组规则。它涵盖了 OWASP 最常见的 Web 安全风险,并通过这些规则保护网站免受如 SQL 注入、XSS、命令注入等攻击。
特点:
• 完备的攻击防护:CRS 旨在防护 OWASP Top 10 列出的最常见和最危险的 Web 安全漏洞。
• 深度防护:相比 Cloudflare 托管规则集,CRS 规则集的防护范围更广,涵盖了更复杂的攻击类型,如 XML 外部实体注入(XXE)和远程文件包含(RFI)等。
• 灵活性:OWASP CRS 提供了灵活的配置选项,允许用户根据需求启用或禁用特定规则,甚至可以自定义规则以适应特定的网站应用场景。
• 开源支持:CRS 是开源的,意味着可以根据实际需求修改和扩展规则。
适用场景:如果需要更深入的 Web 应用安全防护,或者网站应用涉及敏感数据,CRS 是一个理想的选择,特别适合需要符合某些安全合规要求(如 PCI-DSS)的用户。
通过这两个规则集,Cloudflare Pro 用户能够获得更强大且灵活的安全防护,有效减少潜在的网络攻击风险。以我自己为例,目前已经启用了 2 个托管规则集一段时间了,我内网长亭 WAF 上拦截的包比之前大大降低了 (社区版不能选择时间段,只能看今日拦截~):
就算有拦截包,也基本是因为频率限制:
而 WordPress 上的 wordfence 插件,实时流量基本也只剩登录事件了,再观察 2 天后,也可以卸载掉了 (WordPress 轻量化工程又前进了一大步~)。
注:对于熟悉 WAF 规则的朋友,可以根据自己的实际需求对托管规则集里的规则进行修改,而对于不熟悉的朋友而言,一般保持默认配置即可,这个默认配置也算是 Cloudflare 推荐的、适合绝大多数用户的最佳实践了。
顺便提一句,之前我被人做了个繁体中文的镜像站点:
简单研究了一下,发现就是使用反向代理来实现的,在 UserAgent 里把自己伪造成了谷歌蜘蛛后,就堂而皇之的通过了 Free 账号免费托管的 WAF 规则。在没有升级到 Pro 之前,我是通过在 WAF 自定义规则里手动添加规则:” 把所有 UserAgent 里包含了 Googlebot 字样,却不属于谷歌 ASN 的请求都阻止” 来应对的。
而现在升级到 Pro 后,啥规则都不需要添加,直接被托管规则拦截了:
对于 Cloudflare Free 用户,启用 “自动程序攻击模式” 后,Cloudflare 会进行基本的自动化流量识别和拦截,例如,Cloudflare 能识别一些常见的自动化攻击行为,如恶意爬虫、暴力破解等,并且会通过 CAPTCHA 或 JavaScript 挑战 来验证流量是否为恶意自动化请求。这种情况下,自动化流量会被视为恶意流量,并通过挑战或拦截来保护网站。
然而,Cloudflare 默认会放行另一类流量,即 “绝对自动” 流量,这种流量没有明显的恶意行为,但仍然是由自动化程序发起的。例如:
• 网络爬虫:它们不一定执行恶意操作,但频繁访问网站以收集数据。
• 自动化脚本:用于大规模请求数据,但不包含暴力破解或其他攻击性行为。
“绝对自动” 流量 是完全由脚本或工具自动生成的流量,通常没有用户的参与或交互。这类流量的识别相对复杂,Cloudflare Free 账户只能通过较为宽松的规则对这些流量进行基本筛查,而没有办法对其进行精细的控制。
简而言之,启用 “自动程序攻击模式” 后,Cloudflare 会拦截那些明显恶意的自动化流量(例如通过暴力破解尝试登录、爬取敏感数据等),并通过挑战机制确认请求的合法性。然而,对于 “绝对自动” 流量,这类流量因为缺乏恶意特征、并且没有高频或恶意请求行为,Free 用户没有权限自定义对这种 “绝对自动” 流量 的处理方式,所以这些流量默认是允许通过的,不会触发拦截或验证。
升级到了 Pro 用户之后,自动程序这里的功能就多了起来:
自动程序保护的详细配置界面中,终于有了对” 绝对自动” 流量处理方式的选项了:
相对于 Free 用户,Pro 用户可以对” 绝对自动” 流量的处理行为进行设置,如果怕误伤,可以设置为” 托管质询”。
尽管 Pro 用户 在 “绝对自动” 流量 的识别能力上相较于 Free 用户 有了显著提升,但是仍然会面临一些难点:“绝对自动” 流量的特点,是这些流量通常没有明显的恶意行为或攻击特征,因此 精确识别依然存在一定的困难,尤其是一些频率较低、行为与正常用户较为相似的自动化流量,可能会被误判为正常请求,导致无法做到百分之百的准确识别。在这种情况下,单纯依赖自动识别功能并不足以完全防止所有恶意自动流量 (简单来说,绝对自动 规则主要针对的是那些 比较简单、行为模式明显的自动程序,通常是 低端的爬虫脚本 或 基本的自动化工具,这些通常不具备复杂的反侦测能力,容易被 Cloudflare 的标准规则检测到)。
然而,结合 Pro 用户 的 WAF 托管规则集,尤其是针对常见攻击模式(如 SQL 注入、跨站脚本攻击等)的防护规则,可以大大提高对 “绝对自动” 流量 的防护效果,增强识别准确性并减少误判风险 (前面对镜像站点恶意反向代理流量的拦截就是例子)。因此,通过灵活配置 WAF 规则和启用 自动程序保护,Pro 用户 可以更有效地应对这些难以辨别的自动化流量,提高整体的安全防护能力。
顺带一提,Cloudflare Business 及以上用户,就有了更高级的”Bot Management“,可以基于机器学习、行为分析、指纹识别等技术来分析和识别流量,能够更精确地辨别出自动化程序 (如爬虫、恶意反向代理等),并采取相应的行动 (如挑战、拦截等),可惜,至少 200 美金一个月的价格,我割肉都用不起~。
同时,Wordpress 用户又有便宜可占了,打开” 针对 Wordpress 优化” 开关后,Cloudflare 会针对 WordPress 常见的攻击和恶意自动化流量做一些特定优化,包括但不限于以下方面:
- 防止暴力破解登录:WordPress 登录页面 /wp-login.php 和管理后台 /wp-admin/ 常常成为攻击目标,尤其是通过暴力破解方式尝试获取管理员密码。启用此选项后,Cloudflare 会更加积极地检测这类针对登录页面的自动化流量,并使用 CAPTCHA 或 JavaScript 挑战 来拦截这类恶意请求。
- 限制对常见入口点的访问:WordPress 网站中一些常见的暴露接口(如 /wp-login.php、/wp-admin/、/xmlrpc.php 等)经常受到恶意爬虫和自动化脚本的攻击。这个选项帮助 Cloudflare 优化对这些接口的防护,减少被恶意自动化流量攻击的风险。
- WordPress 特有的恶意流量识别:针对 WordPress 的一些独特行为,启用该选项后,Cloudflare 会使用专门为 WordPress 优化的规则和算法,以提高识别效率,避免误拦截正常流量。
- 自动处理 WordPress 特有攻击模式:WordPress 经常成为 自动化脚本 和 爬虫 的目标,这些流量可能不仅仅是恶意的,还可能是大规模的数据抓取。启用此选项后,Cloudflare 会特别关注这类流量的模式,并进行针对性的优化。
总之,Wordpress 用户又赢麻了。
从 Free 用户几乎相当于没有的 WAF 托管规则和简陋的自动程序攻击识别,到 Pro 用户 WAF 的两大托管规则集和能干实事的” 绝对自动” 流量的识别和统一处理,带来的是我对全站安全策略的重新梳理。
之前我比较纠结的一件事,是如果家庭数据中心整个 down 掉之后 (停电、断网),虽然腾讯云轻量服务器上定期运行的探测脚本发现之后,会自动启用家庭数据中心 Cloudflare Tunnel 的备用 connector,从而将腾讯云服务器上博客的容灾站点变为主站点来恢复服务 (参见文章:家庭数据中心系列 活用 cloudflare tunnel 实现 wordpress 主站点故障时灾备站点自动接管),但是,安全性方面却会大打折扣,因为家庭数据中心内部是有内网 WAF 做二次过滤的。
而现在,由于 Pro 用户在安全性方面的巨大提升 (其实也就是有 Free 用户作为绿叶来衬托~),即便腾讯云上的容灾站点变为主站点,安全性问题短期内也不用考虑了。
同时,原本非常复杂的 WAF 自定义规则(曾经是我网站安全的主要防线),我也进行了彻底的整理和优化:清理掉了大量已经过时或不再需要的规则,将安全重心从依赖这些繁琐的自定义规则转移到更加高效、自动化的防护方案上。如今,原本承担主力防护职责的自定义规则,已经变成了负责筛查漏网之鱼的 “协警”,而真正的安全防线则交给了 “绝对自动” 流量的托管质询 和 WAF 的 2 大托管规则集。这种转变使得我可以通过 Cloudflare 更加智能、精准地应对各种自动化流量攻击,同时减少了过多的人工干预和规则维护,进一步提升了安全性和管理效率。
注:就算是 Pro 用户启用了 WAF 的两大托管规则集以及” 绝对自动” 流量的识别,也不能就认为高枕无忧了,毕竟只是 20 美金提供的众多服务之一,翻不了天也成不了仙,只能说比 Free 用户好多了而已,所以我内网的 WAF 依旧还在 (安全设备的异构还是有意义的)。而对于使用 WordPress 的朋友而言,wordfence 插件建议还是尽量装上比较好 (虽然可能会增加几十毫秒的”Total Blocking Time”)。
这部分内容可能很多人未必会在意,因为我相信大部分人都不会经常访问 Cloudflare 的 Web 仪表盘。但是,对于从事运维行业,或者经常需要排查故障的售后工程师来说,一个能提供详尽 监控、统计、日志查询、分析 等功能的后台系统至关重要:
1、当网站遇到 攻击 时,能够快速响应,明确攻击来源、类型、影响范围,并制定相应的防御措施
2、当网站出现 访问异常 时,可以第一时间检查 流量状况、缓存命中率、错误日志,从而快速定位问题
3、需要优化性能 时,能通过详细的流量数据分析网站的瓶颈,调整缓存策略、WAF 规则,或者优化内容分发
相比 Free 版,Pro 用户在运维可见性上获得了显著的增强,可以总结为如下 3 个方面:
1. 更详细的分析数据
Pro 用户可以在 HTTP 流量 和 Security Analytics 中获取比 Free 版更详尽的统计信息,包括:
• 更丰富的指标(如请求量、数据传输量、页面浏览量等)
• 高级过滤器(按国家 / 地区、IP、数据中心、边缘状态代码等维度筛选数据)
这些数据对于分析访问模式、优化缓存、调整安全策略都有很大帮助,从以下 Pro 和 Free 用户” 分析和日志” 部分的”HTTP 流量” 和”Web Analytics” 内容的对比就可以看出。
HTTP 流量:
Free 版:
Pro 版:
Web Analytics:
Free 版:
Pro 版:
可以看到 Pro 版在”HTTP 流量” 和”Web Analytics” 部分提供的信息都丰富了很多。
2. WAF 事件日志 & 规则匹配详情
Free 版的 WAF 只能显示拦截请求的总量,无法查看具体的拦截详情,而 Pro 版的 WAF 事件日志 提供了完整的 攻击记录,包括:
• 触发的 具体规则(如 OWASP 规则、托管规则、IP 限制等)
• 攻击来源的 IP、国家 / 地区、User-Agent
• 详细的 HTTP 请求信息(例如请求 URL、参数、请求体等)
这对于分析攻击模式、调整防御策略非常重要,特别是 误拦截排查 时,能够精准判断哪些流量应该被放行或调整规则,从以下 Pro 和 Free 用户在” 安全性”-“事件” 界面内容的对比就可以看出:
Free 版:
Pro 版:
同样的,可以看到 Pro 版在” 安全性”-“事件” 部分提供的信息也丰富了很多。
3. DDoS 详细攻击报告
Free 版仅能提供基础的 DDoS 防护,而 Pro 版的 DDoS 监控报告 可以查看:
• 具体的攻击模式(如 SYN Flood、UDP Flood、HTTP Flood)
• 攻击的 峰值 QPS、被拦截的请求数
• 被攻击的 目标 URL 或端口
在遭受 DDoS 攻击时,这些数据可以帮助站长更清晰地了解攻击规模,并调整 Cloudflare 规则进行优化防御,这部分功能也是依托于” 安全性 - 事件”,我就不重复截图了。不过呢,最后还是那句话,这部分内容因人而异,并不是每个人都会感兴趣。
注:Pro 用户在运维上还有一个好处,相对于 Free 用户只能在社区论坛发帖求助,Pro 用户可以直接提交工单来开 case:
不过目前还没体验过,找机会来试试~。
在前面的文章中,我详细介绍了 Cloudflare Pro 版相较于 Free 版的多项提升。但需要再次强调,Pro 版并非适用于所有站点,主要优势体现在需要频繁回源的动态站点,尤其是 WordPress 用户。为了更直观地说明 Pro 版的价值,下面从静态站点和动态站点两个角度进行总结:
静态站点:Free 版已足够
对于完全静态的网站,如 Hugo、Hexo、Jekyll 生成的博客,或者纯 HTML/JS/CSS 的文档站、企业官网,Cloudflare Free 版已经能提供充足的保护和优化。静态站点不涉及数据库和后台 API,安全风险较低,而 Free 版默认的 DDoS 保护已足够应对常见攻击。此外,这类站点通常能实现全站缓存,访问速度本身就很快,Pro 版的动态优化功能意义不大。如果站点的图片已经手动优化成 WebP 或使用 TinyPNG 压缩,Pro 版的 Polish、Mirage 额外提升也较为有限。因此,静态站点用户大多无需升级 Pro 版。
动态站点(特别是 WordPress):Pro 版提升明显
对于 WordPress 博客、电商、论坛等动态站点,Cloudflare Pro 版的价值就十分明显。APO(Automatic Platform Optimization)能减少动态页面的回源请求,显著降低 TTFB(首字节时间),提升加载速度。同时,Pro 版提供更强的 WAF 规则,能有效防御 SQL 注入、暴力破解等针对 WordPress 的常见攻击。自动程序防护(Bot Management)还能减少垃圾评论和恶意爬虫,进一步优化站点运行。此外,Pro 版提供更详细的日志和安全分析,帮助站长更好地监控流量和优化性能。因此,对于长期运营的动态站点,Pro 版是值得投资的选择。
基于前面的分析,整理了以下的表格,供考虑订阅 Pro 用户的朋友参考:
站点类型 | Free 版 Cloudflare | Pro 版 Cloudflare | 是否值得升级? |
---|---|---|---|
纯静态站点(全站缓存) | 基础防护 + 高缓存命中率 | 提升有限(除非依赖 Polish、Mirage) | 不推荐 |
轻量级动态站点(小型博客) | 可能受限于缓存、WAF 规则 | 提供 WAF 托管规则,减少垃圾流量 | 可选 |
WordPress 站点(含动态交互) | 易受攻击,TTFB 可能较高 | APO + WAF 保护 + Bot 防护,性能和安全双提升 | 推荐 |
电商 / 论坛 / API 站点 | 高并发下性能欠佳,安全风险高 | 更强的缓存策略 + 防护规则 | 强烈推荐 |
经常遭遇 DDoS 或恶意流量 | 仅基础 DDoS 保护 | WAF 托管规则 + 详细攻击分析 | 推荐 |
其实,我有种上了贼船的感觉:本来只是想订阅一个月的 Cloudflare Pro,体验一下 Pro 版的各种提升,写篇总结就此作罢,没想到这一番折腾下来,竟然觉得 Pro 版完全就是为我量身定制的,甚至已经开始认真考虑订阅年费版了。尽管要节衣缩食,但能大幅减少博客日常运维的时间和精力,这笔投资还是挺值的。
不过,我还是想再强调一下:Pro 版并不会直接提升国内用户的访问速度。之所以再强调,是因为我看到各种论坛里不少人都有这个误解,以为升级到 Pro 版后,国内访问速度就能显著提升,然后升级后发现其实没啥差别,就又说 Pro 没用,要记得一个无法改变的事实:Cloudflare 在国内并没有自己的节点,所以 Pro 版带来的直接速度优化只能体现在海外用户的访问上。
对于国内站点,真正要提升访问速度,仍然要依赖 Cloudflare APO、页面优化、缓存策略等手段,甚至可能需要借助国内的 CDN。如果你愿意备案并且特别看重国内访问速度,那或许直接使用国内 CDN 会是更优解,毕竟,即便是 Cloudflare 的 Enterprise 版,想要使用国内的京东云节点依然需要走备案流程,而如果都愿意备案了,那又何必绕这么大一圈折腾 Cloudflare 呢?
最终,Cloudflare Pro 适不适合你,取决于你的需求:如果你的站点受众以海外用户为主,或者是动态站点 (尤其是 WordPress),Pro 版的各种优化绝对值得入手;但如果你的网站访客主要来自国内,而且已经通过其他手段优化了访问速度,那 Free 版也许已经足够了。