先看一个现象
同一条命令,在你自己电脑上 ping 你的域名 能通,在别人电脑上提示“找不到主机”;过半小时再试又好了。服务器没重启、配置没改、也没人动过。
这种事九成发生在域名解析上,和服务器本身一点关系都没有。要判断这类问题,得知道一个域名是怎么变成 IP 的。
两种查询:递归和迭代
这是第一个容易混淆的概念。DNS 里有两类角色在做不同的事:
- 递归查询:你的电脑问本地 DNS“mcstudio.top 的 IP 是多少”,本地 DNS 的回答必须是最终答案,不能说“你去问别人”。这种负责到底的行为叫递归。
- 迭代查询:本地 DNS 去问根服务器,根服务器不给答案,只说“我不知道具体的,但 .top 的服务器在那儿,你去问它”。一级一级指路,这叫迭代。
换句话说:你的电脑对本地 DNS 是递归,本地 DNS 对上层是迭代。你电脑里填的那个 192.168.1.1 或 223.5.5.5 就是本地 DNS,严格的名字叫递归解析器。
一条 A 记录要经过哪几层
按顺序:
- 浏览器 DNS 缓存。Chrome 自己有缓存,通常 60 秒到几分钟。在
chrome://net-internals/#dns可以看和清。 - 操作系统 hosts 文件。Windows 在
C:WindowsSystem32driversetchosts,优先级高于任何 DNS 服务器。这里写错一行,怎么刷新 DNS 都没用——排查时这是第一个要看的地方。 - 系统 DNS 缓存。Windows 用
ipconfig /flushdns清;Linux 用 systemd-resolved 的话是resolvectl flush-caches。 - 递归解析器(运营商 DNS 或公共 DNS)。它自己也有缓存,命中就是 1 毫秒内返回。
- 根服务器。13 组逻辑根,靠任播在全球部署了上千个物理节点。它只知道 .com / .top / .cn 这些顶级域的服务器地址,不知道你的域名。
- 顶级域服务器。负责 .top 的那组服务器,告诉你 mcstudio.top 的权威 NS 是哪几台。
- 权威 NS。你的域名注册商或 DNS 服务商的服务器,这里存着你真正填的那条 A 记录。
一个从没被查过的域名,走完 5–7 步大约要 20–150 毫秒;命中缓存后不到 1 毫秒。差三个数量级,这就是“第一次打开慢、之后快”的原因。
记录类型速查
| 类型 | 作用 | 例子 |
|---|---|---|
| A | 域名指向 IPv4 地址 | mcstudio.top A 8.146.230.105 |
| AAAA | 域名指向 IPv6 地址 | 没有 IPv6 就留空,绑定 CDN 时再填 |
| CNAME | 域名指向另一个域名 | www CNAME mcstudio.top |
| MX | 邮件服务器,带优先级数字 | @ MX 10 mx.qq.com |
| TXT | 任意文本,用于域名验证、SPF、DKIM | 搜索引擎和证书验证会要求填 |
| NS | 这个域由哪几台服务器解析 | 决定权威服务器是谁 |
| TTL | 不是记录类型,是缓存存活秒数 | 600 表示 10 分钟 |
“改了 DNS 不生效”的真相
绝大多数情况不是没生效,而是你看到的还是旧的缓存。上面三层缓存任意一层没到期,你看到的都是旧值。
判断方法是绕开缓存直接问权威,再和本地看到的结果对比:
# 1) 直接问公共 DNS,绕过运营商
nslookup mcstudio.top 8.8.8.8
# 2) 问本机默认 DNS,看它返回什么
nslookup mcstudio.top
# 3) Linux / macOS 上追踪完整解析路径
dig +trace mcstudio.top
如果第 1 条已经是新 IP、第 2 条还是旧 IP,那纯粹是本机或运营商缓存,等 TTL 到期就行,不用改任何配置。反过来如果第 1 条也是旧值,说明权威记录确实没改成功,要去域名控制台查。
常踩的几个坑
- 只解析了 @,没解析 www。这是“你的站能开、我的打不开”最常见的原因。
mcstudio.top和www.mcstudio.top是两条完全独立的记录,必须分别设置。 - CNAME 和 MX 冲突。域名根(@)如果设了 CNAME,就不能再设 MX 和 TXT,协议不允许。要用域名邮箱就得老实写 A 记录。
- CNAME 双跳。A 指向 B,B 又 CNAME 到 C。能解析,但多一次查询,部分老解析器会直接失败。
- 泛解析(*)滥用。加了
*记录后,任何不存在的子域名都会返回同一个 IP。表面省事,实际会让错误域名也返回 200,被搜索引擎当成重复内容。 - 迁移服务器前忘改 TTL。迁机前应先把 TTL 调小(比如 60 秒),等于提前缩短“凝固时间”,迁完再调回去。这一步做不做,决定了切站是“几分钟生效”还是“一个小时后还有人称打不开”。
本站的实际配置
这台站用了两条记录指向同一个 IP:mcstudio.top 和 www.mcstudio.top 都解析到 8.146.230.105,然后在 Nginx 里把 www 和所有 http 请求统一 301 到 https://mcstudio.top。这样两个写法都能访问,但搜索引擎只会看到一个规范地址,权重不会分散到两个域名上。
想看一个域名当前在各处解析成什么,可以用 DNS 查询工具 一次性对比多个公共解析器的返回,缓存不一致的情况一眼就能看出来。










暂无评论内容