前言:解析不生效,十有八九是 DNS 的问题
域名解析是每个站长都绕不开的基础课。新买的域名解析了却访问不了,改了 A 记录半天不生效,邮箱发不出信,网站被劫持跳转到广告页——这些问题追根溯源,全都在 DNS 上。很多新手站长遇到解析问题就干等,或者反复删除重建记录,其实只要理解了 DNS 的工作原理和记录类型,大部分问题五分钟就能定位。本文从解析流程讲起,把记录类型、TTL、生效时间和常见故障一次说清楚。
一、一次域名解析,背后发生了什么
你在浏览器输入 www.zz1984.com,浏览器首先问操作系统有没有缓存,没有就问本地配置的 DNS 服务器(通常是你宽带运营商或者 114.114.114.114、8.8.8.8 这样的公共 DNS)。本地 DNS 如果也没有,它就会代替你去向根服务器发起查询,一步步找到管理这个域名的权威服务器,拿到记录后再返回给你,并且在自己这里缓存一段时间。
这里有两个概念必须分清:一个是递归查询,就是本地 DNS 帮你去全世界找答案的过程;另一个是权威服务器,就是管理你这个域名记录的那台服务器,它的答案才是最终真相。改了解析不生效,问题要么出在"缓存没到期",要么出在"权威服务器上的记录没改对",要么出在"你改错了地方"。
二、常用记录类型一次讲透
解析记录类型很多,站长日常用到的就下面几种,弄懂它们的作用,配置的时候就不会懵。
| 类型 | 作用 | 典型用途 |
|---|---|---|
| A | 域名指向 IPv4 地址 | 网站服务器 IP |
| AAAA | 域名指向 IPv6 地址 | IPv6 环境 |
| CNAME | 域名别名,指向另一个域名 | CDN 接入、子域名跳转 |
| MX | 邮件交换记录 | 收发邮件必须 |
| TXT | 文本记录 | SPF、DKIM、域名验证 |
| NS | 指定域名的权威 DNS 服务器 | 更换 DNS 服务商 |
A 记录最常用,直接把域名解析到服务器 IP。CNAME 是把一个域名指向另一个域名,比如把 www 解析到主域名,或者接入 CDN 时把域名 CNAME 到 CDN 分配的地址。这里要提醒新手:同一个主机记录,A 记录和 CNAME 记录不能同时存在,会冲突。MX 记录是邮件系统的命根子,如果你用企业邮局,MX 记录错了,邮件要么发不出去,要么收不到。TXT 记录这些年越来越重要,SPF、DKIM 这些反垃圾邮件验证,还有腾讯云、阿里云的域名所有权验证,都靠它。
三、TTL 与生效时间:为什么改了不生效
TTL 是 Time To Live 的缩写,表示这条记录可以在各级缓存里存活多少秒。假设你原来的 TTL 是 3600 秒,那么你在权威服务器上改了记录之后,全球各地的递归 DNS 最长还要等 3600 秒才会重新来取,这就是"改了不生效"的最常见原因。
所以正规的操作流程是:如果接下来要改解析,提前把 TTL 调小到 60 秒或者 300 秒,等一两个小时让旧的缓存过期,然后再改记录,这样新记录几分钟就能全球生效。改完之后,过几天再把 TTL 调回 3600,减少递归 DNS 的查询压力。很多新手不知道这个技巧,改完记录干等一晚上,其实很多时候不是没生效,是本地缓存没到期。
自己查缓存状态可以用这条命令,能直接看到记录还剩多少缓存时间:
dig www.example.com +noall +answer +ttlid四、解析故障排查实战
排查 DNS 问题,工具就三个:dig、nslookup、host。下面按"问题现象"来逐个击破。
现象一:解析不生效,还是旧 IP。先确认你改的是不是权威服务器上的记录。用下面的命令查询域名的权威服务器,然后直接向权威服务器查询,绕过所有缓存:
dig NS example.com +short
dig @ns1.example.com A example.com如果直接问权威服务器是新 IP,说明记录已经生效,只是本地缓存没到期,等 TTL 过了或者换网络再试;如果权威服务器上还是旧 IP,那就是你改的地方不对,去域名注册商的控制台看看 NS 记录指向的是哪家 DNS。
现象二:网站能打开,邮箱收不到信。用 MX 记录排查工具查一下:
dig MX example.com如果 MX 记录为空,或者指向了错误的服务器,邮件就会丢。还要检查 SPF 记录是否允许发信服务器的 IP 段发送,很多邮箱服务商对 SPF 不通过的邮件直接拒收。
现象三:域名被劫持,打开是广告页。先用上面提到的 dig @权威服务器 方法确认权威记录是不是被人改了。如果权威记录正常,那就是本地网络被污染,运营商或者路由器 DNS 被篡改,把系统 DNS 改成 1.1.1.1 或者 223.5.5.5 再试。如果是权威服务器被入侵改记录,立即去注册商改密码,开启两步验证,同时排查托管 DNS 的账号是否泄露。
现象四:海外访问正常,国内打不开。这是 DNS 污染或者线路问题,跟解析本身关系不大,可以考虑接入国内 CDN,或者换一家在国内有节点的 DNS 服务商。
五、免费 DNS 服务商怎么选
域名注册商自带的 DNS 通常够用,但功能简陋,解析速度也一般。想要更快的解析速度和更丰富的功能,可以把 NS 记录指向专业的免费 DNS 服务商。
Cloudflare DNS 是首选,解析速度快、全球节点多,还自带免费的 CDN 和 DDoS 防护,支持 CNAME 扁平化,注册商不支持 CNAME 到根域名的问题也能解决。缺点是需要把域名的 NS 记录改到 Cloudflare,国内访问 Cloudflare 的 DNS 解析速度略慢。国内用户可以考虑阿里云解析或者腾讯云 DNSPod,解析速度快,支持线路分流,可以把电信、联通、移动的访客解析到不同的服务器,还提供免费的 URL 转发。DNSPod 是国内老牌服务商,稳定性经过多年验证。
更换 DNS 服务商的操作是:先在新的服务商添加好域名和所有记录,再去注册商把 NS 记录改成新服务商提供的两个 NS 地址。NS 记录变更的生效时间最长可能要 24 到 48 小时,期间新旧服务商的记录会被同时问到,所以一定要先在两边都把记录配置完整,避免出现解析中断。
六、DNS 监控与日常维护
解析配好之后不是一劳永逸,建议定期做几件事:一是用免费的 DNS 检测工具定期检查全国各节点的解析结果是否一致,防止个别地区解析异常;二是监控 HTTPS 证书到期时间,很多 DNS 服务商支持 CNAME 验证证书,配合自动续期脚本可以省心很多;三是服务器 IP 变更前,提前调小 TTL 并做好记录备份,避免迁移过程中网站长时间无法访问。
另外提醒一句:域名和 DNS 账号的密码一定要分开设置,开启两步验证。DNS 被劫持的损失远比你想象的大,改一条 A 记录就能让你的网站指向钓鱼页面,用户数据和网站信誉瞬间归零,这是所有站长都要守住的底线。
总结
DNS 看似简单,其实门道不少。记住三条核心经验:改解析前先调小 TTL、排查问题直接问权威服务器绕过缓存、NS 和 A/CNAME/MX 各司其职不要混用。掌握了这些,再遇到解析类问题就不会一头雾水。建议把这篇文章收藏起来,等哪天你的域名"莫名其妙"访问不了的时候,照着排查一遍,大部分问题都能自己解决,省去到处求人的尴尬。