很多朋友把自己的网站、API、图床部署到 Cloudflare Workers 或 Pages 上,之后却发现一个尴尬的事实:服务在国外秒开,国内打开却要转好几秒的圈,甚至直接超时。
这不是你代码写得有问题,也不是 Cloudflare 服务不稳定,而是你的访问路径出了问题。本文把「优选域名 / 优选 IP 加速」这件事从底层原理讲到完整实操,覆盖 Workers 和 Pages 两种项目、共三种方案,最后附上验收方法和故障排查手册。
适用读者:已经(或打算)在 Cloudflare 上部署 Workers / Pages 项目,希望国内访问速度有明显改善的个人开发者与站长。
一、你的服务为什么慢
1.1、Cloudflare 的网络结构
Cloudflare 在全球数百个城市部署了边缘节点,采用 Anycast(任播)技术:全世界成千上万台服务器共用同一个 IP 地址,你连接这个 IP 时,网络会自动把你路由到「运营商认为最近」的那个节点。
理论上这很优雅,但问题出在「运营商认为」这四个字上——路由决策权在你的运营商手里,不在 Cloudflare 手里。
1.2、默认分配的 IP,为什么在国内表现差
- 路由路径不可控:部分线路会被引导绕行日本、美国等地的节点,延迟从几十毫秒暴涨到 200~400ms;
- 高峰期丢包严重:热门线路晚高峰拥堵,表现为网页加载卡在半路、API 请求频繁超时;
- 运气成分大:不同地区、不同运营商(电信 / 联通 / 移动)分到的线路质量差异很大。
1.3、优选解决什么问题
既然所有边缘节点都能服务你的域名,那么接入点选得好不好,直接决定了访问体验。「优选」就是绕过运营商的默认路由决策,主动把用户引向一批实测速度快、丢包少、路由直连的 Cloudflare 边缘 IP 上。同一套代码,优选前后延迟从 300ms+ 降到 100~200ms 是普遍可以达到的效果。
二、优选的底层逻辑
2.1、边缘节点是「无差别」的
Cloudflare 的每个边缘节点上都运行着完整的边缘服务栈。当你发起 HTTPS 请求时,节点靠请求中的 SNI(Server Name Indication,TLS 握手时明文携带的访问域名)来判断这个请求该由谁处理:SNI 指向你账户里绑定了 Worker 的域名 → 交给这个 Worker;指向某个站点 → 按规则回源或返回缓存。
换句话说,Cloudflare 认域名不认路。你从哪个边缘 IP 进门不重要,进门时报的 SNI 才重要。这就为优选打开了大门。

2.2、优选的两载体:优选 IP 与优选域名
| 优选 IP | 优选域名 | |
|---|---|---|
| 形式 | 一个具体 IP(A 记录) | 一个域名(CNAME 记录) |
| 来源 | 用测速工具从 CF 官方 IP 段实测选出 | 由自己或第三方维护,背后也是一批优选 IP |
| 优点 | 精准、速度最优 | 后端 IP 失效时维护方可自动更换,省心 |
| 缺点 | IP 会老化失效,需定期重测 | 依赖维护方,公益服务无 SLA |
本文以优选域名为主线(更适合大多数人),自建优选 IP 的方法在第三章一并介绍。
2.3、前提不能开代理
优选的本质是:让用户的设备自己去解析出那个「优选 IP」。这要求 DNS 记录必须是「仅 DNS」状态(灰云)。一旦开启 Cloudflare 代理(橙云,社区俗称「小黄云」),解析权就交回给了 Cloudflare 官方 DNS,返回的是官方默认分配的 IP——又回到了第一章的问题。
铁律:凡是用于优选的 CNAME 记录,一律灰云(仅 DNS)。
2.4、三种方案全景图
| 方案 | 适用场景 | 难度 | 域名是否必须托管在 CF |
|---|---|---|---|
| 方案一:灰云 CNAME + Workers 路由 | 绝大多数 Workers 项目 | ⭐ | 是 |
| 方案二:分线路 DNS + NS 委派 | Pages 项目、需要国内外分流 | ⭐⭐ | 是(需委派子域名) |
| 方案三:Cloudflare for SaaS | 域名想留在其他 DNS、多域名共用 | ⭐⭐⭐ | 否 |
三、动手前的准备
3.1、域名要求
- 你需要一个自己的域名,用于优选的子域名要能自由添加 CNAME 记录,且可以关闭代理;
- 部分免费域名(尤其是一些二级域名分发服务)不开放完整的 DNS 控制权,或者强制开启代理,这类域名无法完成方案一和方案二;
- 方案一、二要求域名(至少主域名)托管在 Cloudflare;方案三不要求。
3.2、获取优选资源
路线 A:现成的公益优选域名(推荐新手)——目前社区维护较活跃的几个(均在 Cloudflare 网络上):
| 域名 | 说明 |
|---|---|
| cf.090227.xyz | 老牌公益优选域名,支持 IPv4 / IPv6 |
| cf.0sm.com | 公益维护,更新较勤 |
| cf.zhetengsha.eu.org | 社区维护 |
⚠️ 公益服务没有可用性承诺,可能随时失效或变慢。建议同时记录 2~3 个备选,失效时改一条 CNAME 即可恢复。
路线 B:自动更新项目(推荐省心党)——DustinWin/BestCF 项目每 12 小时从多个数据源自动构建优选域名和 IP,直接取最新结果使用。
路线 C:完全自建(推荐追求极致的人)——用开源工具 CloudflareSpeedTest 对 Cloudflare 官方 IP 段做全量测速:
# 1. 到 GitHub Releases 下载对应系统的压缩包并解压
# 2. 运行(Windows 示例):
cfst.exe -tl 150 -dn 10
# -tl 150 只保留平均延迟低于 150ms 的 IP
# -dn 10 对延迟最低的前 10 个 IP 追加下载速度测试
# 3. 结果输出到 result.csv,按「下载速度」排序取第一名测出的 IP 可以直接做 A 记录(优选 IP),也可以套一层自己的域名维护(形成私有优选域名)。IP 质量会随时间变化,建议至少每月复查一次。
3.3、开始前自检
- 确定优选域名(或 IP),并已 ping 验证可用;
- 域名的 DNS 控制权确认(能否加 CNAME、能否关代理);
- Worker 或 Pages 项目已部署完成,用默认分配的
*.workers.dev/*.pages.dev域名访问正常。
四、方案一:灰云 CNAME + Workers 路由(最常用)
这是绝大多数 Workers 项目的标准方案,全程只涉及 Cloudflare 一个控制台,两步完成。场景设定:你有一个 Worker 项目 my-app,想通过自定义域名 cdn.example.com 访问它,主域名 example.com 已托管在 Cloudflare。
第 1 步:添加灰云 CNAME 记录
进入 Cloudflare 控制台 → 选择域名 example.com → 左侧 DNS → 添加记录:
| 字段 | 填写 |
|---|---|
| 类型 | CNAME |
| 名称 | cdn |
| 目标 | cf.090227.xyz(你的优选域名) |
| 代理状态 | 仅 DNS(灰云,务必确认) |
保存后记录列表里这条记录应显示灰色云朵图标。如果是橙色,点一下切换成灰色,否则优选无效。
第 2 步:添加 Workers 路由
仍然在 example.com 这个域名下,左侧找到 Workers 路由(Workers Routes) → 添加路由:
- 路由:
cdn.example.com/* - Worker:下拉选择
my-app,保存。
❗ 路由末尾的
/*绝对不能省。路由是按模式匹配的:cdn.example.com只匹配「根路径」这一个请求,而cdn.example.com/*才能匹配该域名下的所有路径。漏写星号的典型症状是:首页能打开,任何子页面、静态资源、API 路径全部 404。这是本方案出错率最高的一步,没有之一。
第 3 步:验证
# 1. 检查解析结果:应返回优选域名的 IP(Cloudflare 边缘 IP)
nslookup cdn.example.com
# 2. 检查服务响应:应返回你 Worker 的内容,HTTP 状态正常
curl -I https://cdn.example.com浏览器访问 https://cdn.example.com,能看到 Worker 正常返回、证书无告警,即成功。
深入:为什么不直接用 Workers「自定义域」?
Cloudflare 现在提供「自定义域(Custom Domains)」功能:在 Worker 的设置里直接绑定域名,不用写路由,平时确实更方便。但自定义域模式下,Cloudflare 会自动创建一条被代理(橙云)的 DNS 记录,并且不允许改为仅 DNS——解析权重新回到官方 DNS 手里,优选彻底失效。
这不是配置技巧问题,而是机制上的互斥:优选要求「用户自己解析到优选 IP」,自定义域要求「CF 接管解析」。所以走优选路线时,「灰云 CNAME + 路由」是唯一正确姿势。
五、方案二:分线路解析 + NS 委派(Pages 项目 / 国内外分流)
5.1、这个方案解决什么问题
方案一里有个隐含前提:这个子域名的所有用户都走优选。但很多场景需要分流:海外用户走默认线路就好,没必要绕道优选域名;Pages 项目的自定义域在 Cloudflare 体系内也无法直接做「大陆 / 海外」分线路解析。
解决办法是把这个子域名的解析权从 Cloudflare 委派(Delegate)出去,交给一家支持「地域分线路」的 DNS 服务商来解析:

为什么选华为云国际版:其免费公网解析支持按「中国大陆」地域分线路,且国际版注册无需实名。你也可以换成其他支持地域线路解析的 DNS 服务商(如 DNSPod 国际版等),原理完全相同。
5.2、操作步骤
第 1 步:给项目绑定自定义域。Pages 项目 → 自定义域 → 添加 cdn.example.com,记下你的 xxx.pages.dev 地址。此时验证状态可能一直「待验证」,不用管——下一步完成后自然生效。
第 2 步:注册华为云国际版。打开 华为云国际版 DNS 控制台 注册账号:国际版注册无需实名;注册时如果页面频繁跳转国内版,挂全局代理再注册;非必填项(如安全手机)直接跳过,进入「完善信息」页面即注册完成。
第 3 步:创建公网域名并添加两条分线路记录。DNS 控制台 → 公网域名 → 创建公网域名,填入 cdn.example.com → 管理解析 → 添加两条 CNAME 记录集:
| # | 类型 | 线路类型 | 记录值 |
|---|---|---|---|
| 1 | CNAME | 全网默认 | my-site.pages.dev(项目官方地址) |
| 2 | CNAME | 地域解析 → 中国大陆 | cf.090227.xyz(优选域名) |
第 4 步:回到 Cloudflare 添加 NS 委派记录。华为云创建公网域名时会分配 4 台 DNS 服务器(在域名详情页查看)。回到 Cloudflare → example.com → DNS → 添加 4 条 NS 记录:主机记录填 cdn,记录值形如:
ns1.huaweicloud-dns.com.
ns1.huaweicloud-dns.cn.
ns1.huaweicloud-dns.net.
ns1.huaweicloud-dns.org.(以你控制台里实际分配到的 4 条为准,不要照抄。)保存后,cdn.example.com 的解析权即交给华为云,DNS 委派生效需要时间(TTL 缓存,通常几分钟到几小时)。
5.3、验证与组合
- 在大陆网络环境下
nslookup cdn.example.com:应返回优选域名的解析结果; - 在海外网络(或境外拨测节点)查询:应返回
xxx.pages.dev的解析结果; - 该方法同样适用于 Workers:委派完成后,Cloudflare 侧照常为该域名配置 Workers 路由(即方案一的第 2 步),两个方案可以自由组合。
六、方案三:Cloudflare for SaaS 自定义主机名
前两个方案都要求主域名托管在 Cloudflare。如果你想把对外域名留在其他 DNS 服务商,方案三可以做到——Cloudflare 官方的 Cloudflare for SaaS 能力,免费套餐每个域名自带 100 个自定义主机名额度,个人使用绰绰有余。
原理一句话:你在 CF 的域名充当「服务端」,通过 SaaS 自定义主机名功能「接纳」一个不属于你 CF 账户的域名。请求到达边缘时按 SNI 匹配到这个自定义主机名,再落到回退源(Fallback Origin)背后的 Worker 上。对外域名的解析权完全留在你自己的 DNS 手里,CNAME 到优选域名、优选 IP、分线路都随意。
- 确定回退源:在 CF 账户里选一个已托管、已正常工作的域名——实践中通常直接用方案一配好的 Worker 自定义域;
- 开启 SaaS:该域名 → SSL/TLS → 自定义主机名 → 设置回退源地址;
- 添加自定义主机名:填你对外的域名(它可以不在 CF),按提示完成证书验证(TXT 或 HTTP 方式);
- 回到你的外部 DNS:给对外域名添加 CNAME → 优选域名(或优选 IP),完成。
SaaS 方案的细节坑位较多(证书验证方式、回源路径等),动手前建议先读一遍社区里的详细实践教程
七、Pages 项目专题:现状与两条路
2025 年起,Cloudflare 官方明确 Pages 进入维护模式:不再添加新功能,新项目推荐使用 Workers + 静态资源(Static Assets)。存量 Pages 项目目前完全正常运行,官方暂无停服时间表。对你的优选策略而言:
- 存量 Pages 项目:直接用方案二(分线路 + NS 委派)即可,无需迁移;
- 新项目:直接创建 Workers 项目(静态站点一样能托管),然后用方案一或方案二,配置路径更短;
- 迁移本身不急:本文所有方法对迁移前后都通用。
八、上线后怎么验收
配置完成不等于优化到位,用数据说话。
nslookup cdn.example.com # 解析结果是否指向了优选链路
ping cdn.example.com # 延迟与丢包率
curl -o NUL -w "%{time_total}" https://cdn.example.com # 总耗时(Windows)全国范围拨测(推荐,能看到各省份 / 运营商的表现):ITDOG、Boce.com、17CE。

| 指标 | 优选前(典型) | 优选后(典型) |
|---|---|---|
| 首字节延迟 | 250~400ms,部分地区 500ms+ | 100~200ms |
| 丢包率 | 高峰期明显 | 基本无丢包 |
| 页面完整加载 | 频繁卡顿 / 重试 | 流畅 |
注:具体数值因地区、运营商、时段而异,重点看优选前后的对比。
九、故障排查手册
| 症状 | 最可能的原因 | 解决办法 |
|---|---|---|
| 解析结果没变化,还是默认 IP | CNAME 忘了切灰云 | 检查记录的代理状态,改回「仅 DNS」 |
| 解析对了,但子页面 404 | 路由末尾漏了 /* | 路由改成 cdn.example.com/* |
| 整个域名 404 / 无响应 | 路由没保存、Worker 没选中 | 进 Workers 路由页核对 |
| 证书报错(不安全 / 525 / 526) | Universal SSL 尚未签发完成 | 等待(最长 24 小时);确认 SSL/TLS 模式为「完全」 |
| 大陆快、海外反而慢或异常 | 「全网默认」线路记录缺失或错误 | 核对两条记录集的线路与值 |
| 用了一段时间又变慢了 | 优选资源老化失效 | 更换 CNAME 目标为新的优选域名 / IP |
| 公益优选域名解析失败 | 维护方停服 | 换用备选资源或自建(见第三章) |
| 华为云侧始终不生效 | NS 委派记录没加 / 加错 | 回 CF 核对 4 条 NS 记录,主机记录是 cdn |
通用排障思路:先看解析(nslookup),再看路由(Workers Routes),最后看证书。90% 的问题出在前两步。
十、常见问题
Q1:优选域名和优选 IP,到底选哪个?
个人项目、图床、博客这类图省心的场景:选优选域名(公益资源或 BestCF),失效了换一条 CNAME 就行。追求极致性能、且愿意每月维护一次:自建优选 IP。两者也可以混用——主线路用 IP,备用线路挂域名。
Q2:会影响 SEO 吗?
不会。优选改变的是「用户从哪个边缘 IP 接入」,域名、内容、证书、状态码全部不变,搜索引擎无感知。
Q3:优选后 HTTPS 证书还正常吗?
正常。证书由 Cloudflare 边缘按 SNI 下发,和你从哪个 IP 接入无关。前提是域名托管在 CF(或 SaaS 场景下完成了主机名验证),Universal SSL 会自动覆盖 example.com 和 *.example.com。
Q4:免费额度够用吗?
Workers 免费版每天 10 万次请求;SaaS 方案每个域名 100 个自定义主机名。个人项目通常绰绰有余。
Q5:可以给别人的网站套优选加速吗?
不可以。优选只应用于你自己部署、有权管理的服务。给未授权的第三方站点做优选 / 反代,既违反 Cloudflare 服务条款,也侵犯站主权益,账号可能被封。
Q6:所有记录都要灰云吗?
只有「用于优选的这条记录」必须灰云。你主站其他记录该开代理照常开,互不影响。
十一、写在最后
回顾全文的三条主线:
- 原理:Cloudflare 边缘认 SNI 不认 IP,所有边缘节点都能服务你的域名——所以接入点可以随便挑,挑快的就行;
- 铁律:优选记录必须灰云(仅 DNS),代理(橙云)与优选互斥;路由末尾必须带
/*; - 选型:Workers 走「灰云 CNAME + 路由」;要国内外分流或用 Pages,走「分线路 DNS + NS 委派」;域名想留在别家 DNS,走「Cloudflare for SaaS」。
最后提醒两点:公益优选资源没有稳定性承诺,重要服务建议自建优选并定期复测;优选仅用于加速自己有权管理的服务,遵守 Cloudflare 服务条款与所在地区法规。祝你的服务在国内也能秒开。
文章评论