〇. 前言

文本教程面向建站新手,因此会跳过一些对新手来说难以理解的信息,也会不厌其烦的讲解一些重要内容。如果你认为本文过于笼统,说明本文不适合你.

本文默认你已经完成了 Cloudflare 的接入部分。如果你连接入 Cloudflare 都不会,本文对你来说没有意义,请退出.

一。接入了 Cloudflare, 我的网站就不怕 CC/DDoS 了吗?

先说结论: 并不是 , Cloudflare 的五秒盾 (交互式质询 / JS 质询) 是可以被绕过的.
通常情况下,Cloudflare 会给通过质询的浏览器下发一个名为 cf_clearance 的 cookie, 同子网 (/24) UA 下的请求可以携带这个 cookie 直接在有效期内跳过质询。意味着攻击者可以在第一次请求时使用真实浏览器进行过盾,之后则直接进行自动化请求.

同理,还有更多方法绕过 Cloudflare 的五秒盾。这里不再赘述.

二。自助的付费计划对我来说有用吗?

付费计划会提供更好的 TTFB, 以及更多的功能。以及 Cloudflare 托管的 WAF 规则。可根据自身网站的体量做取舍.

注:如果你只是单纯想优化用户到边缘的连接速度,你其实并不需要购买付费计划。有关这部分内容,请参考 [菜鸟教程] 零基础 Cloudflare 优选教程 - 开发调优 - LINUX DO.

三。基础的 WAF 规则配置.

从这里开始就是正式的配置教程了.

转到 Cloudflare 域面板中的 安全性 / 安全规则 下,本章节的操作会在这里进行.

1. 为已知机器人跳过之后的 WAF 规则

创建自定义规则,

找到 已知自动程序,配置为是 (开)


当然,你也可以手动选择允许的机器人类别。你可以在 此处 看到所有经过 Cloudflare 验证的机器人和其类别.

往下滑,选择操作为跳过,注意放置位置一定要放到第一个

完成后点击保存.

2. 为你的 API 创建跳过规则

如果你的网站没有需要外部服务器 / 用户调用的 API, 可以跳过此步骤.

新建一个自定义规则,请根据你的 API 路径,方法 自行修改示例规则中的内容


此段规则的表达式为

(http.host eq "api.sin.fan" and 
http.request.uri wildcard r"/api/pub/v1/users/*" and
http.request.method eq "POST")

如果要创建更多的路径,在该小节规则后接一个 OR 重复即可.

往下滑,选择操作为跳过,位置应该放在上一个已验证机器人跳过规则后.


请注意,这些 API 通常会被自动程序调用,因此还需要跳过 自动程序攻击模式.

3. 质询可疑的请求

这部分推荐还是自己写,这里给出几个建议.

A. 从 radar 获得 ASN Bot 流量占比,并对高流量占比的 ASN 进行质询


比如上面这些 ASN. 在之后我会单独提供一个现成的高 Bot 流量占比的 ASN 列表.

B. 质询使用旧版本 HTTP 的请求

此规则在我站点上的通过率仅为 0.07%
[菜鸟教程] 零基础 Cloudflare 配置教程6

[菜鸟教程] 零基础 Cloudflare 配置教程6

表达式为

(http.request.version in {"HTTP/1.0" "HTTP/1.1" "HTTP/1.2"})

X. 可选:质询所有第一次访问网站的请求

如果网站正在被攻击,可以使用此规则进行质询。此规则与 I'm under attack 模式的最大区别就是不会对 API 流量进行质询。因为 API 请求已经被之前的规则标记为跳过了.

表达式为

(http.request.uri wildcard r"/*")

4. 限速策略

创建一个限速策略规则,表达式为

(not cf.bot_management.verified_bot)

向下滑动,找到 当速率超过… 部分,
你需要根据你的网站自行调整设置。可以根据以下步骤进行配置:

  1. 进入你的网站,按下 F12
  2. 转到网络选项卡
  3. 勾选关闭缓存检查框,按下 F5 刷新网页
  4. 待页面加载完成后,查看下方的数据

[菜鸟教程] 零基础 Cloudflare 配置教程7

[菜鸟教程] 零基础 Cloudflare 配置教程7

我的网站一次访问需要 37 次请求,我假设我的用户会在 10 秒 内强制刷新 5 次 (ctrl+F5), 然后关闭缓存访问 5 个新页面,那么 10 秒 内的请求是 370 次。那么你应该在 请求 部分填写 370.

向下滑动,如果你是 Free 计划,你的操作只能选择 阻止 10 秒.
选择完成后点击保存.

四。托管规则调整.

转到 安全性 / 安全规则,选择 DDoS 保护 选项卡。创建替代
[菜鸟教程] 零基础 Cloudflare 配置教程10

[菜鸟教程] 零基础 Cloudflare 配置教程10

规则集操作修改为阻止

点击浏览规则,搜索 imp, 将操作全部改为阻止.

搜索 likely, 将仅有的一条规则改为阻止.

五。安全设置调整.

转到 安全性 / 设置,本章节接下来的操作会在此页面完成.
向下滑动,

找到 质询通过期 设置,默认为 30 分钟。你可以根据需求调整为更短或更长的时间。本文之前提到过,攻击者可以通过合法的 cf_clearance cookie 跳过质询,因此不推荐将该时间设置的特别长,通常情况下默认的 30 分钟已经足够了。如果你需要一定的安全性,可以修改为 15 分钟.

继续向下,你会找到 自动程序攻击模式 / 超级自动程序攻击模式.
Free 中,此设置默认为关。可以开启.
付费计划中,调整为如下设置

提一嘴:此检查聊胜于无。只能拦截一部分唐逼脚本小子的 CC. 甚至经过我的测试,一部分提供免费 CC 服务中基础的 HTTP SPAM 中部分请求 (≈30%) 都能得到较高的 bot score.

Free 中 自动程序攻击模式 的纯摆设,没啥作用.

付费计划中,Cloudflare 会根据 TLS 指纹,ja4/ja3, IP 在 Cloudflare 数据库中的纯净度计算出一个 bot score. 通常情况下,已知的自动化请求会得 1 分,也就是 绝对自动化流量 , 但是目前的绝大部分爬虫都能自定义 TLS 指纹,UA, 以及有不是那么脏的 IP 代理池。甚至 itdog 的部分节点进行 HTTP 测速都能得到较高的分数 (>1 分).
在 Pro 中允许对 =1分 的请求进行质询或阻止,Business 中允许对 2-29分 的请求进行阻止或质询.

六。速度优化

转到 速度 / 设置
点击启用所有可用设置。然后转到 内容优化 选项卡.

向下滑动,可以考虑是否开启 Cloudflare Fonts 优化。如同 Cloudflare 的介绍,这会内联并缓存 Google Fonts.

向下滑动,可以考虑是否开启 Rocket Loader 优化。此选项会异步执行你的 JS 脚本,从而加快页面渲染的速度。对 WP 站有奇效。但是此设置也有可能导致部分依靠 JS 脚本的功能损坏。你可以根据 Cloudflare 的文档 忽略单个脚本.

七。缓存优化

1. 配置

转到 缓存 / 配置

向下滑动,找到 浏览器缓存 TTL 选项,此设置影响一个文件在浏览器中的缓存时长。通常可以修改为更长的时间,例如 14 天 甚至更长.

向下滑动,找到 Crawler Hints 选项,设置为开.

2. 缓存规则

转到 缓存 / Cache Rules

新建规则,选择 缓存默认文件扩展名 模板,这些都是默认的静态文件,通常可以设置更高的边缘缓存 TTL 和 浏览器缓存 TTL.
设置完成后,点击保存.

默认情况下,cloudflare 不会缓存没有后缀名的文件 / HTML 文件,因此通常情况下,你不需要单独为 API 路径设置一个绕过规则.

3. Tiered Cache

转到 缓存 / Tiered Cache

设置为开.

八。规则修改

转到 规则 / 设置
修改设置如下

九. SSL 设置.

转到 SSL/TLS/ 概述

通常情况下,推荐设置为完全,你需要在源服务器上配置一个 SSL 证书 (推荐使用 Cloudflare 的自签名源服务器 SSL 证书).
为了安全,你还需要关闭服务器的 80 端口并限制 443 端口只能被 Cloudflare 的 IP 访问.
通常推荐在服务商防火墙进行设置,如果你的服务商没有提供防火墙,则直接使用服务器防火墙即可,以下是 ufw 命令示例.

sudo ufw allow from 173.245.48.0/20 to any port 443
sudo ufw allow from 103.21.244.0/22 to any port 443
sudo ufw allow from 103.22.200.0/22 to any port 443
sudo ufw allow from 103.31.4.0/22 to any port 443
sudo ufw allow from 141.101.64.0/18 to any port 443
sudo ufw allow from 108.162.192.0/18 to any port 443
sudo ufw allow from 190.93.240.0/20 to any port 443
sudo ufw allow from 188.114.96.0/20 to any port 443
sudo ufw allow from 197.234.240.0/22 to any port 443
sudo ufw allow from 198.41.128.0/17 to any port 443
sudo ufw allow from 162.158.0.0/15 to any port 443
sudo ufw allow from 104.16.0.0/13 to any port 443
sudo ufw allow from 104.24.0.0/14 to any port 443
sudo ufw allow from 172.64.0.0/13 to any port 443
sudo ufw allow from 131.0.72.0/22 to any port 443 
sudo ufw allow from 2400:cb00::/32 to any port 443
sudo ufw allow from 2606:4700::/32 to any port 443
sudo ufw allow from 2803:f800::/32 to any port 443
sudo ufw allow from 2405:b500::/32 to any port 443
sudo ufw allow from 2405:8100::/32 to any port 443
sudo ufw allow from 2a06:98c0::/29 to any port 443
sudo ufw allow from 2c0f:f248::/32 to any port 443 

转到 SSL/TLS/ 边缘证书
向下滑动,开启 始终使用 HTTPS 选项。修改 最低 TLS 版本 为 TLS 1.2.

至此,本文教程就告一段落了。你已经完成了 Cloudflare 的基础设置.


📌 转载信息
原作者:
MIYUSAMA
转载时间:
2026/1/3 12:00:42