1601 字
8 分钟
提升 Cloudflare 国内访问速度的方法

提升国内用户访问速度的 Cloudflare 优化方案#

目标:在保留 Cloudflare 缓存(即继续用 Cloudflare 的 CDN 与保护)的情况下,提升国内用户访问速度。

对 WordPress 用户友好:建议配合缓存/加速插件使用。采用“退回源”的方法可能不适应国内大规模访问,因此本文介绍通过 DNS 优选 + 自动化同步的方案。

原理简述(为什么有效)#

Cloudflare 提供全站加速与缓存,但用户的 DNS 解析策略会影响最终访问速度。通过把 Cloudflare 上的域名设置为被解析到当前服务器并同时在国内 DNS(例如阿里云解析)中定期写入“优选 IP”(近端/稳定的 IP)记录,国内用户走国内优选解析时能更快到达加速节点或更近的出口,从而显著降低首次解析与连接延迟。配合 WordPress 的页面缓存、对象缓存,可以把用户体验进一步提升。

准备工作(先决条件)#

  • 已注册域名
  • Cloudflare 账号(能添加域名)
  • 阿里云账号(用于阿里云云解析与 RAM 权限配置)
  • 源服务器(可登录宝塔面板)并有 root 权限
  • 建议:WordPress 用户安装缓存插件

详细步骤#

1. 在 Cloudflare 添加域名并完成基础设置#

  1. 登录 Cloudflare,添加你的域名。
  2. 在 Cloudflare 的域名设置页中,拷贝 Cloudflare 给出的 nameserver(两个或多个)。

2. 到域名注册商,将域名 DNS 改为 Cloudflare 的 nameserver#

在注册商处把域名的 DNS servers 修改为 Cloudflare 提供的 nameserver。等待几分钟到生效。刷新 Cloudflare 的域名管理页面,当显示“已添加成功/已激活”后继续下一步。

3. 回到域名注册商,额外添加阿里云云解析的 DNS(不要动 Cloudflare 的解析)#

注意:要保持 Cloudflare 的 nameserver 设置不变(即注册商仍指向 Cloudflare),但在注册商管理面板里“添加/配置”一个备用服务商记录(这个步骤因不同注册商 UI 不同而异)。总体目标是:让阿里云能接收并管理该域名的解析记录(用于国内解析优选),但 Cloudflare 的解析记录不要被删除。

4. 在 Cloudflare 的 DNS 记录里添加你的站点 A 记录,并确保开启 CDN(橙色云)#

务必将对应的 A 记录设置为 proxied(橙色云),这样 Cloudflare 才会做缓存与加速。记录指向你的服务器 IP(或加速域名),确认生效。

5. 在阿里云云解析后台添加域名(无需添加解析记录)#

登录 阿里云控制台 > 产品与服务 > 云解析DNS,添加你的域名;系统会提示成功且 DNS 没问题。此时阿里云的解析控制台里域名已存在,但不需要手动添加记录(下面的工具会自动写入)。

6. 下载并安装 cf2dns 插件(自动把优选 IP 写入阿里云解析)#

下载地址:

点击下载

在源服务器的宝塔面板(软件商店 > 第三方应用 > 从本地上传)上传并安装该插件。

插件上传示意图

7. 在阿里云创建 RAM 用户并生成 AccessKey#

  1. 打开阿里云 RAM 控制台:https://ram.console.aliyun.com/users
  2. 创建一个新用户(登录名随意)。创建时一定勾选“使用永久 AccessKey 访问(创建 AccessKey ID 和 AccessKey Secret)”,保存好生成的 AccessKey IDAccessKey Secret(建议临时保存在桌面文本文档,注意保密)。
  3. 在该用户的“权限管理”中,新增一条权限策略:搜索并勾选 AliyunDNSFullAccess,然后保存(该权限允许插件通过 API 管理阿里云 DNS 记录)。

8. 在宝塔的 cf2dns 插件中填写配置并添加域名#

  1. 打开 cf2dns 插件 → 设置 → 域名管理,添加你的域名(确保与 Cloudflare 上设置 A 记录的域名一致,删除默认的占位域名)。
  2. 回到解析配置:选择 NS 服务商为 AliDNS;解析数量填 5(表示创建 5 个解析记录以做优选,推荐 3-10 之间);TTL 默认就行(600);区域选择对应区域(国内/国际按需要选择)。
  3. 输入你在 RAM 中获取的 AccessKey IDAccessKey Secret,保存。

9. 配置宝塔计划任务,定时同步(每 10小时!!!)#

在宝塔面板选择 计划任务,新增任务:

Terminal window
btpython /www/server/panel/plugin/cf2dns/cf2dns.py

在宝塔面板 UI 中选择 Shell 脚本,执行用户选择 root,设置好间隔 10小时 执行一次!!!!一定不要搞错!不然访问和解析速度特别慢。

保存后手动点一次“执行”。不会有输出。

10. 验证与效果观测#

  • 约 1 分钟后刷新阿里云云解析控制台,会看到大量新增的解析记录(说明同步成功)。
  • 等待 ~10 分钟(DNS 生效及本地缓存刷新),用国内网络访问你的网站,应该能明显感到访问速度提升。

常见问题与排查#

注意: 操作 AccessKey 与 RAM 权限要谨慎,AccessKey 请妥善保管,不要泄露。

1. 阿里云没有看到新增解析?#

确认计划任务真的执行了(手动执行一次看是否在解析控制台产生变化),确认 AccessKey 是否填写正确、权限是否为 AliyunDNSFullAccess

2. 访问并未加速?#

  • 确认 Cloudflare 上 A 记录为 proxied(橙色云),只有开启 CDN 才能利用 Cloudflare 缓存。
  • 检查本地 DNS 缓存是否未刷新,使用 nslookup / dig 比对解析结果(对比阿里云返回的优选 IP 与其他解析器返回的 IP)。
  • 确认源站/加速域名的服务器网络与带宽是否健康,必要时检查防火墙和端口。

小结#

本方案的核心是:保留 Cloudflare 的 CDN 缓存能力,同时在国内使用阿里云云解析做“优选 IP”解析,通过 cf2dns 插件自动化把优选 IP 写入阿里云,实现国内用户更快的 DNS 解析与连通。配合 WordPress 缓存插件能得到更佳的用户体验。整个流程安装后只需依赖计划任务自动同步,维护成本低。

注意:本文仅作参考

 

本篇涉及到的项目有:

微测网 - 全球云服务监测平台

https://github.com/gacjie/cf2dns/

提升 Cloudflare 国内访问速度的方法
https://blog.obve.cn/posts/48562/
作者
Alec
发布于
2026-01-05
许可协议
CC BY-NC-SA 4.0