静态博客的托管选择:我为什么最终把 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 是目前摩擦最小的方案。