上个月帮朋友折腾他的新站:域名在阿里云买的,服务器也通了,直接用服务器 IP 访问一切正常,但一输域名就转圈,最后报「无法访问此网站」。他急得不行,问我是不是服务器被墙了。我说先别急,查一下 DNS——结果一查,域名解析压根没配置。这种「域名打不开」的乌龙,十有八九出在 DNS 上,而不是服务器上。

DNS 是干什么的?

你在浏览器里输入的是 www.example.com,但真正定位到服务器靠的是 IP 地址,比如 93.184.216.34。IP 是电脑在网络里的门牌号,域名是给人记的名字,DNS(Domain Name System,域名系统)就是负责在这两者之间做翻译的「电话簿」。

没有 DNS 会怎样?你得记住每个网站的一串数字,服务器搬家还得重新记。有了 DNS,你只需要记域名,剩下的事交给它,整个过程通常在一眨眼之间完成。

一次完整的解析,发生了什么

DNS 解析流程示意图:浏览器输入 www.example.com 后,经递归解析器逐级查询根服务器、.com 顶级域和 example.com 权威服务器,最终返回 IP 地址 93.184.216.34
图:一次完整的 DNS 解析要经过根 → 顶级域 → 权威三步,命中缓存时可以一步返回

结合上图,一条完整链路大致有四个环节:

  • 你的电脑:浏览器向系统里的 DNS 客户端发问:www.example.com 的 IP 是多少?
  • 递归解析器:由运营商或公共 DNS(如 114.114.114.114、8.8.8.8)担任,先翻自己的缓存,没有就继续往上问;
  • 服务器链:先问根服务器「谁管 .com?」再问 .com 顶级域服务器「谁管 example.com?」最后找到 example.com 的权威服务器——只有它手里存着域名和 IP 的对应记录;
  • 返回与缓存:权威服务器把 IP 逐级返回来,中间的每一层都会按 TTL(生存时间)缓存一段时间,下次访问直接命中,快得多。

对普通用户来说,平时访问基本都命中缓存,所以你感知不到这条链路的存在;只有刚改解析、缓存失效或配置出错时,它才会跳出来刷存在感。

常见的 DNS 记录类型

给域名做解析,本质是添加一条条「记录」。最常见的几种:

记录类型作用典型例子
A域名指向 IPv4 地址@ → 93.184.216.34
AAAA域名指向 IPv6 地址@ → 2400:cb00:2049:1::a29f:2202
CNAME域名指向另一个域名(别名)www → example.com
MX邮件服务器的地址,收信时按它投递@ → mail.example.com(优先级 10)
TXT一段说明文本,常用于域名所有权验证、防垃圾邮件@ → v=spf1 include:_spf.example.com
NS指定该域名的权威 DNS 服务器example.com → ns1.dnspod.net

个人网站一般只需要 A 记录(或 CNAME);要用企业邮箱得配 MX;域名备案、平台回调验证,经常要求加 TXT 记录。

为什么网站会「打不开」

  • 刚改了解析:新记录要等生效,本地和运营商缓存更新要几分钟到几小时,别刚配完就急着怀疑人生;
  • 记录配错了:A 记录指向的 IP 不是服务器真实 IP,或 CNAME 指向了不存在的域名;
  • DNS 被劫持或污染:个别网络环境下解析结果被篡改,表现为打开后跳广告、跳别的站或直接失败;
  • 本地缓存作祟:浏览器或系统缓存了旧的错误结果,需要手动刷新。

打不开时,按这个顺序排查

  1. 先用工具确认域名到底解析到了哪:打开本站的DNS查询工具,输入域名分别查 A、CNAME、MX 记录,和你在服务器商那里的配置逐条对比;
  2. 刷新本机 DNS 缓存:Windows 在命令行执行 ipconfig /flushdns,macOS 执行 sudo dscacheutil -flushcache;
  3. 换公共 DNS 再试:把电脑的 DNS 改成 114.114.114.114 或 8.8.8.8,排除运营商缓存干扰;
  4. 还不行?换浏览器、开隐私模式各试一次,最后再怀疑服务器本身。

三个常见误区

  • 误区一:DNS 生效要等 24 小时。新域名的 NS 记录传播可能较慢,但普通 A 记录修改通常几分钟到几小时就生效,TTL 设得短生效更快。
  • 误区二:换了解析立刻生效。权威服务器更新了,你和运营商递归解析器里的缓存还没过期,得等 TTL 走完才轮到新结果。
  • 误区三:网站打不开就是服务器挂了。先用 DNS 工具确认解析对不对,再 ping 一下 IP,两步就能把问题范围缩得很小。

常见问题(FAQ)

DNS 服务器填什么好?

默认用运营商分配的一般够用;想更稳可以换 114.114.114.114(国内)、223.5.5.5(阿里云)、8.8.8.8(谷歌)、1.1.1.1(Cloudflare),按需选择即可。

什么是 DNS 污染?怎么发现?

污染指解析结果被网络中间环节篡改。用本站 DNS 查询工具和本机解析结果对比,不一致就要警惕;改用加密 DNS(DoH/DoT)可以在一定程度上规避。

根服务器有几个?在国内吗?

全球有 13 个根服务器逻辑地址(根服务器区),背后是分布在世界各地的数百台镜像节点,国内也有镜像。根服务器只负责指路,不存具体域名的记录。

DNS 是互联网最容易忽略、也最容易出问题的基础设施。理解了解析链路,再配一个顺手的DNS查询工具,绝大多数「域名打不开」都能自己定位。想继续深入网络知识,可以接着读:子网掩码到底是什么?一文看懂 IP 地址与 CIDR