静态博客的托管选择:我为什么最终把 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 小时内完成传播。


迁移之后的实际感受

好的地方:

需要接受的地方:


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

其他DevOps博客
← 所有文章