静态博客的托管选择:我为什么最终把 DNS 交给 Cloudflare

这篇文章的动机很简单:DNSPod 对已备案域名的解析做了限制,导致我无法把域名解析到境外的静态托管服务。绕开它的最直接方式,是把 nameserver 切到 Cloudflare,让 CF 接管整个 DNS 层。

这是一次被动迁移,但结果比预期要好。


问题背景

我的博客是 Hexo 静态站,之前托管在国内的云服务商上。域名在腾讯云注册,DNS 解析用 DNSPod。一切都跑得挺稳定。

问题出现在我想把博客迁到境外托管(Cloudflare Pages)的时候。DNSPod 对已经完成工信部备案的域名有解析限制——备案绑定的是国内服务,如果解析到境外,会遇到策略拦截。想继续用 DNSPod,要么注销备案,要么另找托管。

注销备案太麻烦,也不合规。那就换 nameserver。


Cloudflare Pages 的实际情况

Cloudflare Pages 对静态站点来说足够好用,几个关键点:

构建集成:直接连 GitHub 仓库,push 自动触发构建。Hexo 的构建命令是 hexo generate,输出目录是 public,填进去就行。不需要自己维护 CI 脚本。

边缘网络:静态资源走 CF 的全球 CDN,国内访问延迟比部分海外服务商好一些,但也不稳定——取决于运营商和时间段。没有银弹。

域名绑定:在 Pages 项目里添加 Custom Domain,CF 会自动创建对应的 DNS 记录,SSL 证书也是自动签发。基本是零配置。


nameserver 迁移的实际步骤

核心操作只有一步:在腾讯云域名控制台,把 nameserver 从 DNSPod 的 f1g1ns1.dnspod.net 换成 Cloudflare 分配的两个 NS 地址。

切换前,CF 会扫描并导入现有的 DNS 记录,通常能识别大部分 A 记录和 CNAME。检查一遍,补上缺漏的,然后提交变更。

DNS 生效时间在 1-24 小时之间,实测大概 2 小时内完成传播。


迁移之后的实际感受

好的地方

  • CF 的 DNS 管理界面比 DNSPod 好用,改记录即时生效
  • Pages 的构建日志清晰,出问题容易定位
  • 不再需要维护服务器,免运维

需要接受的地方

  • 国内访问速度不一定更好,CF 的边缘节点在国内没有落地,走的是香港或日本节点,延迟受线路影响
  • 备案之后域名实际上仍然处于备案状态,只是接入点变了,灰色地带,自行评估

静态博客的托管没有最优解,只有当前约束下的合理选择。我的约束是:域名备案在国内、想用 GitHub 自动构建、不想管服务器。在这个约束下,CF Pages + CF DNS 是目前摩擦最小的方案。


静态博客的托管选择:我为什么最终把 DNS 交给 Cloudflare
https://www.krli.org/2024/01/15/又把博客迁移到cloudflare了/
作者
李科燃
发布于
2024年1月15日
许可协议