Voss Wang

从注册商到 Cloudflare:只改 NS 的一次域名迁移

2026-11-01 · 域名 / DNS

新域名买下来之后,第一件要决定的事不是「网站放哪」,而是「解析放哪」。这两件事可以分开:域名留在注册商,解析托管到 Cloudflare。这篇记录这次迁移的完整动作,以及一个我一开始算错的账。

为什么不转注册商

第一反应是「一起转过去省事」。算了一下不划算:

项目改 NS转移注册商
费用0转入通常要再付一年,且多数注册商会重新计一年锁定期
时间几分钟要拿授权码、等原注册商放行、再等新注册商接收
限制无新注册 60 天内通常不允许转出
风险低,随时可改回中途失败会卡在两边都不认的状态

结论:解析和注册是两层,能分开就分开。注册商只负责「这个域名归谁」,Cloudflare 只负责「这个名字指向哪」。

第一步:在 Cloudflare 添加站点

Add a site → 输入域名 → 选 Free 计划。Cloudflare 会扫一遍现有的 DNS 记录,扫不到就手动补。此时它会给你两个 NS 地址,形如:

ada.ns.cloudflare.com
rob.ns.cloudflare.com

这两个值每个账号都不一样,不要照抄。

第二步:在注册商改 NS

登录注册商后台 → 找到该域名 → DNS Settings / Nameservers → 从「使用注册商默认 DNS」切换成「自定义 NS」,把上面两个填进去,删掉原来的。

这一步有两个容易出错的地方:

  • 只填一个。必须两个都填。只填一个在部分注册商那里能保存,但解析会不稳定。
  • 模式没切。有些后台改完 NS 但「DNS 模式」还停在注册商自有 DNS,保存不生效。改完回头看一眼当前模式。

第三步:等,并且用对命令验证

传播时间通常几分钟到几小时,官方说法是最长 24 小时。等待期间不要反复改,改了只会重新计时。

# 直接问权威,绕开本地缓存
nslookup -type=ns example.com 1.1.1.1
nslookup -type=ns example.com 8.8.8.8

# 看本地解析器拿到的是什么(可能是旧的)
nslookup -type=ns example.com

判断标准是 1.1.1.1 和 8.8.8.8 都返回了 Cloudflare 的 NS。本地那条返回旧值不算失败——它只是缓存还没过期。

第四步:在 Cloudflare 里补记录

NS 生效、站点变成 Active 之后,解析才真正由 Cloudflare 接管。这时再补:

类型名称用途代理
A / CNAME@指向托管平台按平台要求
CNAMEwww同上按平台要求
MX@收信(Email Routing 自动写入)必须 DNS only
TXT@SPF—
TXT_dmarcDMARC 策略—

MX 记录不能开代理(橙色云朵)。开了邮件直接收不到,而且报错信息不会告诉你原因。

我算错的那笔账

一开始想的是「反正要长期用,转到 Cloudflare 更省心」。实际算下来:转移要付一年费用,而改 NS 免费;域名本来就在续费,多付的这一年并不能减少后续任何一年的支出。真正省下的只有「少登一个后台」这一件事。

反过来,转移带来的成本是实打实的:60 天锁定期、授权码邮件可能进垃圾箱、转移期间解析不能动。为了省一次登录不值得。

迁移后的检查清单

nslookup -type=ns  example.com 1.1.1.1     # NS 已指向 Cloudflare
nslookup -type=a   example.com 1.1.1.1     # 站点记录存在
nslookup -type=mx  example.com 1.1.1.1     # 邮件记录存在
curl -sI https://example.com | head -5     # 证书已签发
curl -s  https://example.com/robots.txt    # 内容确实是自己的

最后一条比看起来重要:NS 刚生效时,如果托管平台还没绑定域名,访问会落到平台的默认页或者别的地方。确认返回的是自己的内容,才算迁移完成。


相关:NS 改了但站点不生效 · 给自己的域名配一个只收信邮箱