域名与DNS管理:解析记录、TTL、迁移与故障排查

独立站的DNS管理不是注册完域名就完事。要分清A、CNAME、MX、TXT四类记录的分工,切换前一周把TTL降到300秒,切换后一周再恢复3600秒。

域名DNS:记录类型、TTL与迁移时序DNS: record types, TTL and migration timeline TTL不是越长越好 —— 迁移前一周降到300秒才是正经做法Longer TTL is not better — lower to 300s one week before cutover A / AAAAA / AAAA 域名指向IPv4 / IPv6Point to IPv4 / IPv6 源站IP变更必须提前降TTLLower TTL before IP change CNAMECNAME 指向CDN / 第三方服务Point to CDN / SaaS 裸域不能CNAME到另一个域名Root zone cannot CNAME MX / TXTMX / TXT 邮件与SPF / DKIM验证Mail and SPF / DKIM 切DNS时最容易顺手改坏Easily broken during cutover 迁移时序(7天)Migration timeline (7 days) D-7降TTL到300s D-0切A记录D-7 lower TTL, D-0 cut A record D+7观察无误后TTL恢复3600D+7 restore TTL to 3600s 故障排查顺序Troubleshooting order 本地 hosts 覆盖 缓存未过期Local hosts override, stale cache dig +1.1.1.1 对比权威记录dig @1.1.1.1 vs authoritative 判定:解析不一致时,先分清是”权威没改”还是”递归没过期”Decision: mismatch means authoritative not changed or cache not expired 反直觉:把TTL调大让网站更快是误解,TTL只影响切换速度Counterintuitive: larger TTL does not speed up the site 迁移前一周降TTL,迁移后一周恢复,别常年挂着300秒Lower TTL a week before, restore a week after
DNS记录类型对照与7天迁移时序:A记录、CNAME、MX的分工与切换节奏

域名与DNS管理:解析记录、TTL、迁移与故障排查

结论先行: 独立站的DNS管理不是注册完域名就完事。要分清A、CNAME、MX、TXT四类记录的分工,切换前一周把TTL降到300秒,切换后一周再恢复3600秒。一个反直觉判断是,把TTL调大并不能让网站更快,它只决定切换时多久能全球生效;常年挂着300秒反而会把权威DNS压力放大12倍。

一、四类记录各管什么

独立站常用的DNS记录就四类,职责不能混。A记录把域名指向IPv4,AAAA指向IPv6,CNAME把域名指向另一个域名,MX管邮件,TXT放SPF和域名验证。

最常见的错误是用CNAME把裸域(example.com)指到CDN。DNS协议规定裸域上不能有CNAME,否则会和MX记录冲突。CDN厂商通常给裸域提供ALIAS或ANAME记录,或直接给IP段走A记录。

裸域和www要统一。建议裸域301到www,或反过来,只保留一个版本,否则会出现两套内容同时被收录。CDN怎么选属于 独立站CDN选型 的话题,本文只讲DNS这一层。

记录类型 作用 典型值 常见错误
A 域名到IPv4 203.0.113.10 裸域CNAME冲突
AAAA 域名到IPv6 2400:cb00::1 源站不支持却乱加
CNAME 域名到域名 cdn.example.com 加在裸域上
MX 邮件投递 10 mx.example.com 切DNS时被删掉
TXT SPF / 验证 v=spf1 include:_spf… 多条SPF冲突

二、TTL:切换前降,稳定后恢复

TTL是递归DNS缓存这条记录的秒数。TTL设3600秒,意味着全球用户最多一小时后才看到新解析;设300秒,5分钟就刷新。

反直觉点在于,TTL和网站访问速度几乎无关。用户第一次访问时多一次DNS查询而已,后续命中缓存。把TTL调大并不会让网站更快,只会让下次切换时更慢。

正确节奏是:预计要切服务器或换CDN的前7天,把TTL降到300秒;切换当天改记录;观察7天无误后,再把TTL恢复到3600秒。常年挂着300秒,权威DNS查询量会变成原来的12倍,小服务商可能扛不住。

场景示例一:从阿里云搬到AWS,提前一周把example.com的A记录TTL从3600改成300。第7天把A记录指向AWS新IP,半小时后用dig @8.8.8.8 example.com确认生效,再开CDN回源。

有个细节容易被忽略:TTL生效是渐进的。你今天改成300秒,不代表全球递归立刻就按300秒缓存,已经在缓存里的旧值还是要等满原来的3600秒才过期。

这就是为什么要提前一周降,而不是切换当天才降。提前一周改TTL,等一周后切换时,大部分递归缓存已经按300秒在缓存新记录了。

阶段 TTL设置 目的
日常稳定运行 3600秒 减少权威DNS查询压力
迁移前7天 降到300秒 让缓存快速过期
切换当天 改A记录值 指向新服务器
切换后7天 观察无误后恢复3600 降低查询量

三、换域名与换服务器的迁移

换域名和换服务器是两件事。换服务器只改A记录的IP;换域名要在新域名上全套配置,旧域名做301,还要在Google Search Console分别验证所有权。

迁移时最容易顺手改坏的是MX记录。很多人在DNS后台删旧记录时把MX一起删了,结果第二天全公司邮件退信。操作前先导出当前所有记录备份。

换域名的301映射和权重交接方法,见 站点重构与换域名。邮件SPF/DKIM这类TXT记录的配置,见 询盘邮件送达率。

场景示例二:旧域名old.com换为new.com。先在new.com配好A记录、证书、301规则,确认无混合内容后,把old.com的裸域和www都301到new.com对应路径,再在GSC分别提交两个域名的资源所有权。

还有一类记录常被忽略:CAA。它限定哪家CA可以给你的域名签证书。不配CAA意味着任何CA都能签,万一某家CA被滥用签出假证书,你的域名会被钓鱼站冒用。

CAA记录一条即可,写明只允许Let’s Encrypt和你用的商业CA。配错了会导致证书续签发不下来,所以先在测试环境验证。

迁移动作 必须做 不能做
换服务器IP 降TTL后改A记录 同时删旧记录
换域名 新域名全配 + 旧域名301 旧域名直接停解析
换邮件服务商 先加新MX,观察7天再删旧 新旧MX同时删
加CDN CNAME到CDN,源站保留 删A记录只留CNAME
加CAA 列明允许的CA 不写等于谁都能签

四、故障排查:先分清是哪一层的问题

用户说”网站打不开”,先不要慌着改配置。用dig分三步定位:本机递归、公共递归、权威服务器,三者对比就能定位是哪一层缓存没过期。

常见的”我这边能开你那边打不开”,90%是递归DNS缓存没过期,或者用户本机hosts文件被改过。这种情况等TTL到期自然恢复,不要反复改记录。

排查命令组合分三步。先用dig example.com +short看本机递归结果。

再用dig @8.8.8.8 example.com对比Google公共DNS的结果。最后用dig @ns1.xxx.com对比权威服务器记录。

三者一致说明全球已生效,不一致就是中间某层缓存没过期。不要反复改记录。

现象 可能原因 排查动作
本机打不开,他人能开 本机hosts或缓存 ipconfig /flushdns 后再试
部分地区打不开 递归缓存未过期 对比dig @1.1.1.1与@8.8.8.8
权威记录也是旧值 后台没保存生效 检查DNS服务商是否开了暂停
解析对但打不开 源站防火墙或证书 curl -I 看状态码,见 HTTPS配置

监控上要加一条:DNS解析值偏离预期时告警。很多故障不是解析错了,是被人恶意改了记录。可用域名监控工具每日比对,方法见 独立站监控体系。

还有一个常被忽略的点:NS记录。换DNS服务商时,要在域名注册商那里把NS记录一起改掉。

否则你在新服务商后台配的记录根本不生效。NS切换后同样有传播期,最长可能48小时。

切换期间新旧两家NS都要保留记录一致,不要立刻注销旧服务商账号,否则切换到一半就断了。

记录管理动作 要点 常见遗漏
换DNS服务商 注册商改NS,新老并行48小时 立刻注销旧账号
加CAA 列明允许的CA列表 不写等于谁都能签证书
测邮件记录 dig TXT看SPF是否生效 改完不测,退信才发现

FAQ 常见问题

TTL设成多少合适,越大越快吗?
TTL和网站速度几乎无关。日常稳定运行设3600秒即可,迁移前一周降到300秒让缓存快速过期,切换后一周再恢复。常年挂着300秒会把权威DNS查询量放大12倍。把TTL调大并不会让网站更快。
裸域example.com为什么不能用CNAME?
DNS协议规定裸域上不能有CNAME记录,否则会和同域的MX、TXT记录冲突。CDN厂商一般提供ALIAS/ANAME这类特殊记录,或直接给CNAME的目标IP段走A记录。www子域名可以正常CNAME到CDN。
换服务器IP当天要做什么?
提前一周把A记录TTL降到300秒。切换当天先改A记录指向新IP,用dig @8.8.8.8确认生效后再开CDN回源。不要同时改A记录和MX。观察7天无误后把TTL恢复到3600秒。操作前先导出全部现有记录备份。
我这边能打开,客户那边打不开,是哪里坏了?
大概率是递归DNS缓存没过期。用dig @1.1.1.1 example.com和dig @8.8.8.8对比权威记录,如果公共DNS已经是新值而用户那边还是旧值,就是该用户的递归缓存还没到期,等TTL过期自然恢复。也检查用户本机hosts文件是否被改过。
切DNS的时候为什么公司邮箱突然收不到信了?
多半是删旧记录时把MX记录一起删了。操作前先导出当前所有DNS记录备份,只动A记录不动MX。如果已经误删,立刻按备份把MX和TXT记录加回去,邮件会在几小时内恢复。
Google Search Console里要分别验证旧域名和新域名吗?
要。换域名后在GSC分别添加旧域名和新域名的资源所有权,旧域名提交更换地址请求,新域名提交sitemap。只验证新域名会导致旧域名的权重和抓取历史无法交接。

写在最后

DNS故障八成不是配错了,是缓存没过期。学会用dig对比三层解析,比反复改记录有用得多。

落地三步:日常TTL保持3600秒;动服务器前一周降到300秒,动完一周恢复;操作前导出记录备份,只改该改的那一条。

还有一个新手常踩的坑:把www和裸域配成两条独立的A记录指向同一服务器,却没做301。

结果Google把两份内容都收录,自己和自己抢排名。正确做法是只保留一个版本,另一个版本301过去。

记录数量也要定期清理。域名换过几次服务商后,后台常留着一堆测试用的A记录和过期的TXT,这些僵尸记录会增加误操作风险。

每季度导出一次全量记录备份,核对哪些是在用的,哪些是可以删的。备份文件存到本地,不要只留在DNS服务商后台。

DNS服务商本身也要考虑可靠性。小服务商偶尔会出现后台宕机、记录同步延迟。关键域名建议同时在两家做NS冗余,或者选头部服务商。

最后记一句:DNS配置看起来是小事,但一次切错记录造成的全站不可用,可能要等几个小时才能完全恢复。慢就是快,先降TTL再切。

一句可以记住的话:DNS慢半拍是缓存的天性,不是你的配置错了——先等TTL,再动记录。

Cratère
Cratère Expert Cratère

Officiel de l'organisme · Cratère Crater

Cratère (Crater) est une société de services d'expansion internationale spécialisée dans le développement de sites WordPress autonomes, le référencement Google et la croissance globale GEO, au service des secteurs du matériel intelligent, de l'équipement industriel, du SaaS et des énergies nouvelles.

Capacités produitLivre blanc méthodologiqueRapports sectoriels
965partages
78articles de base de connaissances