
解析到底在做什么
在浏览器输入一个域名,第一件事不是连网站,是问这个域名指向哪个 IP。这个问答过程就是解析。域名服务器像一本电话簿,你报名字,它给号码。号码换了,改记录,全网过一会儿就知道。
关键在那个过一会儿。每条记录都有 TTL,也就是生存时间,单位是秒,告诉别人这条记录能缓存多久。TTL 设 600 就是十分钟内别人还用旧号码,设 3600 就是一小时。改记录之前先把 TTL 调小,这是站长最实用的一条经验,能把切换服务器时的掉线时间砍掉一大半。
六种记录类型,各管什么
A 记录:域名指向一个 IPv4 地址,最常用。比如主机记录填 www,记录值填服务器 IP,访问 www 加域名就走到这台机器。
AAAA 记录:指向 IPv6 地址。机器有 IPv6 就配一条,让 IPv6 用户直连;没有也不影响 IPv4 访问。
CNAME 记录:把域名指向另一个域名,不指向 IP。好处是对方 IP 变了你不用改。常用于 CDN、对象存储、邮箱服务商给的验证域名。注意同一个主机名上,CNAME 不能和 A 记录共存。
MX 记录:指定邮件服务器,做企业邮箱必须配,还要带优先级数字,数字越小优先级越高。
TXT 记录:放一段文本。最常见是域名所有权验证,搜索引擎、SSL 签发、第三方平台都会给一段字符让你填;另一个用途是 SPF,声明这个域名允许哪些服务器替你发信。
NS 记录:指定这个域名由哪组域名服务器负责解析。一般不用动,动了就等于把解析权交给别家,改记录要去对方控制台。
新手最常踩的三个坑
主机记录填错。填 @ 表示根域名,填 www 表示 www 前缀,填星号是泛解析。很多人把 www 加域名整串填进主机记录,保存后不生效,其实那一栏只该填 www。这是最高频的失败原因,占了新手问题的一大半。
CNAME 和 A 打架。同一个主机名既配了 CNAME 又配了 A,解析商要么拒绝,要么返回随机结果,表现出来就是时快时慢、时通时不通。想换 CDN,先把旧的 A 记录删掉再配 CNAME。
MX 优先级填反。数字越小越优先,填 10 和 20 是对的,填 100 和 1 就把主次颠倒了。邮件可能全部走备用服务器,然后因为备用没配置而退信,你还以为对方没收到。
解析不生效,按这个顺序查
第一步,等。国内解析商改记录一般十分钟内生效,最快几十秒。TTL 设得大的话,本地缓存可能拖到一小时。刚改完就急着说不生效,十有八九是没等够。
第二步,用 dig 直接问权威服务器,绕开本地缓存。命令是 dig 域名,后面跟上你的 DNS 服务器地址。看返回的 A 记录是不是新 IP,这一步能分清是记录没改成功,还是缓存没刷新。
第三步,清本地缓存。Windows 是 ipconfig 加 flushdns 参数,macOS 是 sudo dscacheutil 加 flushcache,Linux 看 systemd-resolved 的状态。浏览器也有自己的缓存,Chrome 有一个内部的 DNS 管理页可以清。
第四步,看解析商控制台有没有报错。有些平台限制 CNAME 与 MX 共存,或者泛解析与具体记录冲突,会静默不生效,界面上不弹提示,只能自己逐条试。
一套够用的配置
根域名配 A 记录到服务器 IP;www 配 A 记录同 IP,或者 CNAME 到根域名;用第三方邮箱就按服务商给的 MX 和 TXT 填;SSL 验证按签发机构要求加 TXT;接 CDN 用 CNAME。
TTL 建议:稳定期设 600,迁移前一周改成 60,迁完稳定三天再改回 600。这条动作看起来小,但能让你切换服务器时少掉一半访问,尤其对已经有搜索流量的站,值。
还有一个容易忽略的点:解析生效不代表网站能打开。解析只是把人带到 IP,能不能访问要看服务器上的 nginx 有没有绑这个域名、防火墙有没有放行 80 和 443。排错时先把这两层分开看,能省很多时间。
解析商怎么选,域名和解析要不要放一起
域名在 A 注册商买,解析可以放 B 服务商,改一下 NS 记录就行。这样换解析商不用转域名,灵活很多。很多人不知道这一点,以为域名在哪买就必须在哪解析。
国内站点、已备案的,用国内解析商,解析生效快、节点多、稳定。海外业务或者不想备案的,Cloudflare 这类更合适,还顺带送你 CDN 和防护。免费版的 DNSPod、阿里云基础解析,对个人站完全够用,没必要上付费套餐。
域名转入要注意顺序:先在原注册商解锁、拿转移码、确认域名没到期,再在新注册商提交,一般五到七个工作日。转移期间解析不要动,动了容易两头对不上。
DNSSEC 要不要开?开了能防 DNS 劫持,但配置错了域名会直接全站打不开,而且排查起来很麻烦。个人站收益有限,真开了要盯紧,改记录前先确认签名链没断。
泛解析慎用。星号记录会把所有不存在的前缀都指到同一个 IP,搜索引擎容易当成重复内容,也不利于排查问题。做站群的人爱用,正常站点一般用不上。
解析和访问是两回事
经常有人问:解析都生效了,为什么网站还是打不开。因为解析只负责把人带到 IP,到了之后能不能进要看服务器。域名有没有在 nginx 里绑定、防火墙有没有放行 80 和 443、站点根目录有没有配错,这三件任何一件不对,都会表现为打不开。
排查顺序建议从上往下:先 ping 看通不通,再 telnet 端口看开不开,再 curl 看返回码,最后看服务器上的站点配置和错误日志。一层一层确认,比瞎猜快得多。
