这篇记录一条已经实测跑通的加速路线:网站继续放在 Cloudflare Pages,父域 DNS 仍由 Cloudflare 管理,只把需要加速的子域名通过 NS 委派交给华为云 DNS,再让华为云 DNS 按线路返回不同的 CNAME。

重点不是“把 Cloudflare Pages 换掉”,而是把站点托管、父域管理、子域调度拆开。这样 Pages 自定义域名仍保持 active,大陆访问可以走优选 CNAME,其他地区还有默认线路兜底。

加速前后对比:

加速前的全国节点延迟地图

加速后的全国节点延迟地图

这张图是整篇的核心:Cloudflare 管父域和 Pages 归属,华为云 DNS 只管被委派的 speed.vg188.cyou

技术路线和原理

不要把 Cloudflare DNS 里的 Pages CNAME 直接替换成优选域名;更稳的是先绑定 Pages,再把子域解析委派出去。
本次测试用到的实际项目:

1
2
3
4
5
6
7
Cloudflare Pages 项目名: av7980
Pages 默认域名: av7980.pages.dev
Pages 默认访问: https://av7980.pages.dev
加速访问域名: speed.vg188.cyou
加速访问地址: https://speed.vg188.cyou
大陆优选 CNAME: youxuan.cf.090227.xyz
父域名: vg188.cyou

最终链路:

1
2
3
4
5
6
7
8
9
10
11
12
用户访问 speed.vg188.cyou
|
v
Cloudflare DNS 管理父域 vg188.cyou
|
| 通过 NS 记录把 speed.vg188.cyou 委派给华为云 DNS
v
华为云 DNS 管理 speed.vg188.cyou
|
+-- 全网默认线路 -> av7980.pages.dev
|
+-- 中国大陆线路 -> youxuan.cf.090227.xyz

这里的关键点是把“站点归属”和“解析调度”拆开。

Cloudflare Pages 负责托管 av7980 项目,并识别 speed.vg188.cyou 这个自定义域名属于该 Pages 项目。Cloudflare DNS 继续负责父域 vg188.cyou。华为云 DNS 只负责被委派的子域名 speed.vg188.cyou,根据访问来源返回不同的 CNAME。

不要直接在 Cloudflare DNS 里把 speed.vg188.cyou 的 Pages CNAME 改成优选域名。实测直接改成:

1
speed.vg188.cyou CNAME youxuan.cf.090227.xyz

会让 Cloudflare Pages 自定义域名变成 deactivated,访问返回 403。更稳的做法是先让 Pages 自定义域名正常绑定,再把这个子域名的解析委派给华为云 DNS。

本次成功后的结构是:

1
2
3
4
5
6
7
8
9
10
11
12
Cloudflare Pages:
speed.vg188.cyou: active

Cloudflare DNS:
speed.vg188.cyou NS ns1.huaweicloud-dns.com
speed.vg188.cyou NS ns1.huaweicloud-dns.cn
speed.vg188.cyou NS ns1.huaweicloud-dns.net
speed.vg188.cyou NS ns1.huaweicloud-dns.org

华为云 DNS:
speed.vg188.cyou CNAME av7980.pages.dev 线路: 全网默认
speed.vg188.cyou CNAME youxuan.cf.090227.xyz 线路: 中国大陆

默认线路回到 av7980.pages.dev,作为兜底线路。大陆优选入口失效时,只需要修改华为云 DNS 的中国大陆线路记录,Cloudflare 父域不用改。

操作步骤

1. 在 Cloudflare Pages 添加自定义域名

进入 Cloudflare Dashboard:

1
Workers & Pages -> av7980 -> Custom domains -> Set up a domain

添加访问域名:

1
speed.vg188.cyou

先让它走标准 Pages 解析:

1
speed.vg188.cyou CNAME av7980.pages.dev

等待自定义域名状态变成:

1
active

这一步的目标是让 Cloudflare Pages 确认 speed.vg188.cyou 属于 av7980 项目,并完成证书和路由绑定。

2. 在华为云 DNS 创建子域公网域名

进入华为云控制台(DNS)

1
云解析服务 DNS -> 公网域名 -> 创建公网域名

创建完整访问子域名(直接添加公网域名):

1
speed.vg188.cyou

不要创建父域 vg188.cyou。这里要让华为云 DNS 接管的是被加速的子域名。

创建后,华为云会生成 NS 记录。本次使用的是:

1
2
3
4
ns1.huaweicloud-dns.com
ns1.huaweicloud-dns.cn
ns1.huaweicloud-dns.net
ns1.huaweicloud-dns.org

实际操作时以华为云控制台显示为准。

3. 在华为云 DNS 添加全网默认线路

speed.vg188.cyou 的解析记录里添加:

1
2
3
4
5
记录类型: CNAME
主机记录: 留空 或 @
线路类型: 全网默认
记录值: av7980.pages.dev(就是我们pages部署的站点)
TTL: 300

全网默认线路是兜底解析。当访问来源没有命中更具体的线路时,华为云 DNS 返回 av7980.pages.dev

4. 在华为云 DNS 添加中国大陆线路

添加中国大陆线路 CNAME:

1
2
3
4
5
记录类型: CNAME
主机记录: 留空 或 @
线路类型: 中国大陆
记录值: youxuan.cf.090227.xyz
TTL: 300

补充一下华为云 DNS API 中常见线路 ID:

1
2
3
4
5
6
default_view  全网默认
CN 中国大陆
Abroad 境外
Dianxin 电信
Liantong 联通
Yidong 移动

控制台一般显示中文线路名,自动化脚本里可能要使用线路 ID。

5. 在 Cloudflare 父域添加 NS 委派

回到 Cloudflare 的 vg188.cyou DNS 页面,为 speed.vg188.cyou 添加华为云给出的 NS:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Type: NS
Name: speed
Content: ns1.huaweicloud-dns.com

Type: NS
Name: speed
Content: ns1.huaweicloud-dns.cn

Type: NS
Name: speed
Content: ns1.huaweicloud-dns.net

Type: NS
Name: speed
Content: ns1.huaweicloud-dns.org

也就是:

1
2
3
4
speed.vg188.cyou NS ns1.huaweicloud-dns.com
speed.vg188.cyou NS ns1.huaweicloud-dns.cn
speed.vg188.cyou NS ns1.huaweicloud-dns.net
speed.vg188.cyou NS ns1.huaweicloud-dns.org

整体结构

1
2
3
4
5
6
Cloudflare 父域:CNAME
speed.vg188.cyou NS -> 华为云 DNS

华为云 DNS: CNAME
全网默认线路 -> av7980.pages.dev
中国大陆线路 -> youxuan.cf.090227.xyz

如果 Cloudflare 里原来有同名 CNAME,可以等 NS 委派和华为云 DNS 解析确认正常后再删除。长期不要依赖同名 CNAME 和 NS 共存,最终解析应该放在华为云 DNS。

验证解析结果

中国地区 CNAME 解析结果与节点统计

最后访问:

1
https://speed.vg188.cyou

页面能正常打开,Cloudflare Pages 自定义域名仍为 active,说明这条路线基本配置完成。