LocalSync2026-04-12
Cloudflare + 腾讯云 EdgeOne CDN 配置实战教程
本文记录了域名托管在 Cloudflare、使用腾讯云 EdgeOne 作为 CDN 加速的完整配置过程,包含踩坑经历和最终解决方案。
背景
- 域名:
example.com - DNS 托管:Cloudflare(NS: xxx.ns.cloudflare.com)
- CDN 服务:腾讯云 EdgeOne
- 源站 IP:
1.2.3.4 - 目标:让域名通过 EdgeOne CDN 节点加速访问,而不是直连源站
架构示意
用户请求 → EdgeOne CDN 节点 (5.6.7.8) → 回源到源站 (1.2.3.4)
↑
Cloudflare DNS 解析指向这里
第一步:在 EdgeOne 控制台添加域名
- 登录
- 进入「站点列表」→ 选择你的站点
- 进入「域名管理」→「添加域名」
- 添加需要加速的域名(如
example.com和www.example.com) - EdgeOne 会为每个域名分配一个 CNAME 地址,例如:
xxxxxxxxxx.example.com.eo.dnse2.com - 记下这个 CNAME 地址,后面要用
第二步:在 EdgeOne 配置回源
- 在域名管理中,点击对应域名的「回源配置」
- 回源地址填写你的源站 IP(如
1.2.3.4) - 回源协议和端口根据实际情况配置(HTTP/HTTPS)
- 保存配置
第三步:在 Cloudflare 修改 DNS 记录(核心步骤)
这是最关键的一步,也是最容易踩坑的地方!
登录 → 选择域名 → DNS → Records
修改根域名(@)
找到 example.com 的 A 记录:
| 修改前 | 修改后 |
|---|---|
| 类型:A | 类型:CNAME |
| Name:@ | Name:@ |
| 值:1.2.3.4 | 值:xxxxxxxxxx.example.com.eo.dnse2.com |
| 代理状态:任意 | 代理状态:仅 DNS(灰色云朵) |
修改 www 子域名
找到 www.example.com 的 A 记录,同样改法:
| 修改前 | 修改后 |
|---|---|
| 类型:A | 类型:CNAME |
| Name:www | Name:www |
| 值:1.2.3.4 | 值:xxxxxxxxxx.example.com.eo.dnse2.com |
| 代理状态:任意 | 代理状态:仅 DNS(灰色云朵) |
其他子域名
如果还有其他子域名需要走 EdgeOne(如 api.example.com),同理操作。
第四步:验证配置是否生效
修改后等待 1-5 分钟,然后验证:
# 方法1:通过 Cloudflare DNS 验证(推荐,绕过本地缓存)
nslookup example.com 1.1.1.1
nslookup www.example.com 1.1.1.1
# 方法2:通过 Google DNS 验证
nslookup example.com 8.8.8.8
# 方法3:WSL 中用 dig 验证(需指定 DNS 服务器绕过缓存)
dig example.com A +short @1.1.1.1
dig www.example.com A +short @1.1.1.1
正确结果:返回的 IP 应该是 EdgeOne 节点 IP(如 5.6.7.8),而不是源站 IP(1.2.3.4)。
如果本地还是旧 IP,刷新 DNS 缓存:
# Windows
ipconfig /flushdns
# WSL(Linux)
sudo resolvectl flush-caches
踩坑记录
坑1:只加了通配符(*)记录,没改根域名(@)
现象:配了 CNAME 但 example.com 还是解析到源站 IP。
原因:在 Cloudflare 添加了 *(通配符)的 CNAME 记录,但根域名 @ 的 A 记录没有改。通配符 * 只匹配 xxx.example.com 这种子域名,不匹配根域名 example.com 本身。
解决:必须把 @(根域名)的 A 记录改成 CNAME 记录。
坑2:Cloudflare 代理(橙色云朵)没关
现象:CNAME 配了,但 ping/dig 出来的 IP 是 Cloudflare 的 IP,不是 EdgeOne 的 IP。
原因:Cloudflare 的 Proxied(橙色云朵)模式会拦截所有流量,走 Cloudflare 自己的 CDN,CNAME 对外不可见。这和 EdgeOne CDN 互斥。
解决:必须把代理状态切换为「仅 DNS」(DNS only,灰色云朵)。
坑3:dig CNAME 查不到记录,以为没生效
现象:dig example.com CNAME 返回 ANSWER: 0,看起来 CNAME 没配上。
原因:Cloudflare 对根域名有 CNAME Flattening(CNAME 拍平)机制。即使你配了 CNAME,Cloudflare 也会自动将其解析为最终的 A 记录返回。所以 dig CNAME 查不到是正常的。
解决:不要用 dig CNAME 验证根域名,改用 dig A 或 nslookup 查看返回的 IP 是否是 EdgeOne 节点 IP。
坑4:www 和根域名是独立记录
现象:example.com 走了 EdgeOne,但 www.example.com 还是直连源站。
原因:@(根域名)和 www 是两条独立的 DNS 记录,改了一个不会自动影响另一个。
解决:两条记录都要改成 CNAME 指向 EdgeOne。
坑5:WSL 和 Windows DNS 缓存互相独立
现象:Windows 下 nslookup 已经返回新 IP,但 WSL 里 dig 还是旧 IP。
原因:WSL 有自己独立的 DNS resolver,ipconfig /flushdns 只刷新 Windows 的缓存。
解决:
- WSL 中用 @1.1.1.1 指定 DNS 服务器绕过本地缓存验证
- 或等几分钟让 WSL 缓存自动过期
最终验证结果
# 根域名 - 通过 Cloudflare DNS 验证
$ nslookup example.com 1.1.1.1
Name: example.com
Address: 5.6.7.8 ← EdgeOne 节点 IP ✓
# www 子域名 - 通过 Cloudflare DNS 验证
$ nslookup www.example.com 1.1.1.1
Name: xxxxxxxxxx.example.com.eo.dnse2.com
Address: 5.6.7.8 ← EdgeOne 节点 IP ✓
Aliases: www.example.com
# 通过 Google DNS 交叉验证
$ nslookup example.com 8.8.8.8
Name: example.com
Address: 5.6.7.8 ← EdgeOne 节点 IP ✓
Cloudflare DNS 最终配置一览
| 类型 | Name | 目标 | 代理状态 | TTL |
|---|---|---|---|---|
| CNAME | @ | xxxxxxxxxx.example.com.eo.dnse2.com | 仅 DNS(灰色云朵) | 1 分钟 |
| CNAME | www | xxxxxxxxxx.example.com.eo.dnse2.com | 仅 DNS(灰色云朵) | 1 分钟 |
| CNAME | * | xxxxxxxxxx.example.com.eo.dnse2.com | 仅 DNS(灰色云朵) | 1 分钟 |
核心要点总结
- A 记录必须换成 CNAME 记录,指向 EdgeOne 分配的 CNAME 地址
- Cloudflare 代理必须关闭(橙色云朵 → 灰色云朵),否则流量走 Cloudflare 不走 EdgeOne
- 根域名(@)和 www 是独立记录,都要单独配置
- 根域名的 CNAME 会被 Cloudflare 拍平,用
dig A而不是dig CNAME验证 - 验证时指定公共 DNS(如
@1.1.1.1)绕过本地缓存
记录时间:2026-04-12
配置环境:Cloudflare Free Plan + 腾讯云 EdgeOne
原文链接:

评论