Cloudflare 优选域名配置教程
1. 原理说明
本教程使用的是 Cloudflare for SaaS 自定义主机名 + 自定义源服务器 + 优选 CNAME 链路的方案。
整体逻辑是:
A 主域名 CNAME 到 B 域名
B 域名 CNAME 到 Cloudflare 优选域名
C 域名解析到服务器 IP,并开启小黄云
Cloudflare for SaaS 中:
自定义主机名填写 A 域名
自定义源服务器填写 C 域名
也就是说:
A 域名 = 用户访问的域名
B 域名 = 中转优选域名
C 域名 = 源站域名
2. 整体链路
用户访问 A 域名
↓
A 域名 CNAME 到 B 域名,不开启小黄云
↓
B 域名 CNAME 到优选域名,不开启小黄云
↓
进入 Cloudflare 优选节点
↓
Cloudflare for SaaS 识别 A 域名
↓
根据自定义源服务器回源到 C 域名
↓
C 域名开启小黄云,代理到真实服务器 IP
最终效果:
用户访问 A 域名
实际走优选 Cloudflare 节点
源站回源到 C 域名
真实服务器 IP 被 Cloudflare 隐藏
3. 域名准备
假设你有 3 个域名或 3 个子域名:
A 域名:www.a.com
B 域名:b.example.com
C 域名:origin.c.com
服务器 IP:1.2.3.4
优选域名:best.example.com
说明:
www.a.com 用户最终访问的域名
b.example.com 中转 CNAME 域名
best.example.com Cloudflare 优选域名
origin.c.com 源站域名
1.2.3.4 真实服务器 IP
4. 配置 C 域名
C 域名是源站域名,用来指向你的真实服务器 IP。
在 Cloudflare DNS 中添加记录:
类型:A
名称:origin
内容:1.2.3.4
代理状态:开启小黄云 / Proxied
最终效果:
origin.c.com -> 1.2.3.4
注意:
C 域名必须开启小黄云
C 域名用于 Cloudflare for SaaS 的自定义源服务器
C 域名不要关闭代理
不建议直接使用服务器 IP 作为自定义源服务器
5. 配置 B 域名
B 域名作为中转域名,用来 CNAME 到优选域名。
在 B 域名 DNS 中添加记录:
类型:CNAME
名称:b
目标:best.example.com
代理状态:关闭小黄云 / DNS only
最终效果:
b.example.com CNAME best.example.com
注意:
B 域名不开小黄云
B 域名只负责 CNAME 中转
后期更换优选域名,只需要修改 B 域名的 CNAME 目标
6. 配置 A 域名
A 域名是用户最终访问的主域名。
在 A 域名 DNS 中添加记录:
类型:CNAME
名称:www
目标:b.example.com
代理状态:关闭小黄云 / DNS only
最终效果:
www.a.com CNAME b.example.com
注意:
A 域名不开小黄云
A 域名只负责 CNAME 到 B 域名
用户最终访问的是 A 域名
7. 配置 Cloudflare for SaaS
进入 Cloudflare for SaaS,添加自定义主机名。
配置如下:
Custom Hostname / 自定义主机名:www.a.com
Custom Origin Server / 自定义源服务器:origin.c.com
也就是:
自定义主机名 = A 域名
自定义源服务器 = C 域名
添加后等待 Cloudflare 验证和签发证书。
状态正常后,A 域名就会被 Cloudflare for SaaS 接管,并通过 C 域名回源到你的服务器。
8. SSL/TLS 设置建议
推荐先使用:
SSL/TLS 模式:Full
如果源站证书配置完整,可以使用:
SSL/TLS 模式:Full strict
源站服务器建议:
安装有效 SSL 证书
证书至少包含 C 域名
如果条件允许,也可以同时包含 A 域名
Web 服务中绑定 A 域名和 C 域名
如果出现 SSL 报错,优先检查:
源站证书是否有效
源站证书是否包含 C 域名
服务器是否支持 HTTPS
Nginx / Apache / 宝塔是否正确绑定域名
Cloudflare SSL 模式是否过高
9. 最终访问流程
用户访问:
https://www.a.com
完整链路:
https://www.a.com
↓
www.a.com CNAME b.example.com
↓
b.example.com CNAME best.example.com
↓
进入 Cloudflare 优选节点
↓
Cloudflare for SaaS 识别 www.a.com
↓
回源到 origin.c.com
↓
origin.c.com 代理到服务器 IP 1.2.3.4
10. DNS 验证方法
可以使用以下命令检查解析:
nslookup www.a.com
nslookup b.example.com
nslookup origin.c.com
预期结果:
www.a.com -> b.example.com
b.example.com -> best.example.com
origin.c.com -> Cloudflare IP
也可以使用:
dig www.a.com
dig b.example.com
dig origin.c.com
11. 访问验证方法
浏览器访问:
https://www.a.com
如果网站正常打开,说明配置成功。
如果打不开,可以检查:
A 域名 CNAME 是否正确
B 域名 CNAME 是否正确
C 域名是否开启小黄云
Cloudflare for SaaS 自定义主机名是否 Active
Cloudflare for SaaS 证书是否签发成功
服务器是否允许 A 域名访问
服务器是否允许 C 域名访问
12. 常见问题
12.1 A 域名需要开启小黄云吗?
不需要。
A 域名只需要 CNAME 到 B 域名,保持 DNS only 即可。
A 域名 CNAME B 域名,灰云
12.2 B 域名需要开启小黄云吗?
不需要。
B 域名只是中转 CNAME,用来指向优选域名。
B 域名 CNAME 优选域名,灰云
12.3 C 域名需要开启小黄云吗?
需要。
C 域名是自定义源服务器,需要开启 Cloudflare 代理。
C 域名 A 记录到服务器 IP,橙云
12.4 为什么不直接让 A 域名 CNAME 到优选域名?
可以直接 CNAME,但不推荐。
推荐增加 B 域名作为中转层,原因是:
方便后期更换优选域名
不用频繁修改 A 域名解析
结构更清晰
便于统一管理多个 A 域名
12.5 为什么自定义源服务器填写 C 域名?
因为 Cloudflare for SaaS 需要知道请求最终回源到哪里。
这里 C 域名就是源站入口。
Custom Origin Server = C 域名
12.6 为什么 C 域名不能直接填服务器 IP?
Cloudflare for SaaS 自定义源服务器通常要求填写主机名,不建议直接填写 IP。
推荐做法是:
C 域名 A 记录到服务器 IP
C 域名开启小黄云
自定义源服务器填写 C 域名
12.7 打开 A 域名后不是自己的网站怎么办?
检查服务器 Web 配置。
源站服务器需要能正确识别 A 域名的 Host。
需要检查:
Nginx 是否绑定 A 域名
Apache 是否绑定 A 域名
宝塔站点是否添加 A 域名
反向代理是否允许 A 域名
应用是否限制 Host
否则可能出现:
默认站点
403
404
跳转异常
12.8 出现 525 怎么办?
525 通常是 Cloudflare 和源站之间 SSL 握手失败。
检查:
服务器是否开启 HTTPS
源站 443 端口是否开放
源站证书是否有效
源站 Web 服务是否正常
Cloudflare SSL 模式是否设置过高
可以先将 SSL/TLS 模式改为:
Full
确认正常后再尝试:
Full strict
12.9 出现 526 怎么办?
526 通常是源站证书无效。
检查:
源站证书是否过期
证书域名是否匹配
证书链是否完整
是否使用了自签名证书
Full strict 模式是否要求过高
解决方法:
安装有效证书
使用 Let's Encrypt 证书
确保证书包含 C 域名
必要时让证书同时包含 A 域名
12.10 出现 1014 怎么办?
1014 通常和 Cloudflare CNAME 跨账号代理限制有关。
可以检查:
A 域名、B 域名、C 域名是否在同一个 Cloudflare 账号
Cloudflare for SaaS 是否配置正确
Custom Hostname 是否已经 Active
是否存在跨账号 CNAME 到已代理域名的问题
13. 推荐配置总表
项目
类型
目标
小黄云状态
A 域名
CNAME
B 域名
关闭 / DNS only
B 域名
CNAME
优选域名
关闭 / DNS only
C 域名
A
服务器 IP
开启 / Proxied
Cloudflare for SaaS:
配置项
填写
Custom Hostname / 自定义主机名
A 域名
Custom Origin Server / 自定义源服务器
C 域名
14. 简化示例
假设:
A 域名:www.a.com
B 域名:b.example.com
优选域名:best.example.com
C 域名:origin.c.com
服务器 IP:1.2.3.4
DNS 配置:
www.a.com CNAME b.example.com,灰云
b.example.com CNAME best.example.com,灰云
origin.c.com A 1.2.3.4,橙云
Cloudflare for SaaS 配置:
自定义主机名:www.a.com
自定义源服务器:origin.c.com
访问:
https://www.a.com
实际链路:
www.a.com
-> b.example.com
-> best.example.com
-> Cloudflare 优选节点
-> Cloudflare for SaaS
-> origin.c.com
-> 1.2.3.4
15. 最终总结
最终配置可以概括为:
A 主域名 CNAME 到 B 域名,不开小黄云
B 域名 CNAME 到优选域名,不开小黄云
C 域名解析到服务器 IP,开启小黄云
Cloudflare for SaaS:
自定义主机名填写 A 域名
自定义源服务器填写 C 域名
这套方案的作用是:
A 域名作为用户访问入口
B 域名作为优选域名中转
优选域名负责选择更好的 Cloudflare 节点
Cloudflare for SaaS 负责接入 A 域名
C 域名负责回源到真实服务器
真实服务器 IP 通过 Cloudflare 隐藏