Cloudflare + 腾讯云 EdgeOne CDN 配置实战教程

其他杂项67字数 3042阅读10分8秒阅读模式

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 控制台添加域名

  1. 登录 腾讯云 EdgeOne 控制台
  2. 进入「站点列表」→ 选择你的站点
  3. 进入「域名管理」→「添加域名」
  4. 添加需要加速的域名(如 example.comwww.example.com
  5. EdgeOne 会为每个域名分配一个 CNAME 地址,例如:
    xxxxxxxxxx.example.com.eo.dnse2.com
  6. 记下这个 CNAME 地址,后面要用

第二步:在 EdgeOne 配置回源

  1. 在域名管理中,点击对应域名的「回源配置」
  2. 回源地址填写你的源站 IP(如 1.2.3.4
  3. 回源协议和端口根据实际情况配置(HTTP/HTTPS)
  4. 保存配置

第三步:在 Cloudflare 修改 DNS 记录(核心步骤)

这是最关键的一步,也是最容易踩坑的地方!

登录 Cloudflare Dashboard → 选择域名 → 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 Anslookup 查看返回的 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 分钟

核心要点总结

  1. A 记录必须换成 CNAME 记录,指向 EdgeOne 分配的 CNAME 地址
  2. Cloudflare 代理必须关闭(橙色云朵 → 灰色云朵),否则流量走 Cloudflare 不走 EdgeOne
  3. 根域名(@)和 www 是独立记录,都要单独配置
  4. 根域名的 CNAME 会被 Cloudflare 拍平,用 dig A 而不是 dig CNAME 验证
  5. 验证时指定公共 DNS(如 @1.1.1.1)绕过本地缓存

记录时间:2026-04-12
配置环境:Cloudflare Free Plan + 腾讯云 EdgeOne

原文链接:file://0942a885c150fd7ca918a7764842cb7b

 
  • 本文由 asdfasd 发表于 2026-04-1222:10:06
  • 转载请务必保留本文链接:http://wp.fangfa.me/other-note/77a884ed487cc260b75fa8e24d30e643.html