批量迁移DNS记录丢失的主因是未同步记录即切换NS:若换DNS服务商,须导出含类型、主机名、值、TTL、优先级的完整Zone文件并验证格式,再提前调低TTL、测试新平台响应、保留旧记录72小时回滚。

批量迁移DNS记录时记录丢失,核心原因不是操作本身出错,而是迁移路径没选对——直接改NS记录却不提前同步记录,等于把域名“钥匙”交出去了,但新服务商的“保险柜”还是空的。
确认DNS服务商是否变更
这是判断要不要重配的第一步。域名注册商转移 ≠ DNS解析服务转移:
- 如果只换注册商,但NS记录仍指向原DNS服务商(比如原来用Cloudflare,迁移后NS仍是ns1.cloudflare.com),那所有A、CNAME、MX等记录都自动保留,无需任何操作;
- 如果同时换了DNS服务商(比如从阿里云DNS切到国科云DNS),那旧平台上的记录不会自动带过去,必须手动导出再导入,否则就是“空白开局”。
导出记录要带全字段,别只抄IP
很多用户导出时只复制主机名和记录值,漏掉关键参数,导致导入失败或行为异常:
免费 DNS 与邮件安全分析(IntoDNS.ai):包括 DNSSEC、SPF、DKIM、DMARC、MTA-STS、BIMI、SMTP STARTTLS、FCrDNS、黑名单、发件人要求及报告。
- 必须包含:记录类型(A/CNAME/MX/TXT等)、主机名(@、www、mail)、记录值(IP或域名)、TTL(尤其MX和TXT的TTL影响验证时效)、优先级(MX记录的数字,如10、20);
- 推荐用Zone文件(BIND格式)导出,它天然包含SOA、NS及全部资源记录结构,python-cloudflare等工具可直接识别;
- 避免截图或手抄,容易错位、漏点、混淆@和空主机名。
导入前先验证格式,别等提交才报错
不同DNS平台对格式容忍度不同,比如:
- 某些平台要求MX记录值末尾带英文句点(如mail.example.com.),缺了会当成相对域名处理;
- TXT记录含空格或引号时,有的平台要加双引号包裹,有的则自动拆分;
- 使用python-cloudflare的cli4 --post /zones/{zone_id}/dns_records/import导入前,可用cf.import_zone()方法预检语法,避免整批驳回。
切换NS记录前留好回滚窗口
NS记录全球生效需时间,TTL再低也至少要几小时。稳妥做法是:
- 提前3–7天把原DNS服务商的TTL调至300秒(5分钟);
- 在新DNS平台完成全部记录导入后,先不改NS,用dig或nslookup查新平台是否已能正确响应(如dig @ns1.new-dns.com example.com A);
- 确认无误再修改域名注册商处的NS记录,改完立刻用dig example.com NS验证是否已更新;
- 保留旧DNS平台记录至少72小时,万一有问题可快速切回。

















