摘要:建站、配邮箱、接 CDN、做域名验证,都绕不开 DNS 解析。本文用一张表讲清 A、AAAA、CNAME、MX、TXT 几种记录各管什么,主机记录 @ 和 www 的区别,TTL 怎么设,以及改完解析不生效时怎么排查。
DNS 的作用,是把人记得住的域名(example.com)翻译成机器用的 IP 地址。你在域名服务商后台添加的每一条“解析记录”,就是在告诉全世界:这个名字指向哪里。
一条解析记录由什么组成
| 字段 | 含义 | 例子 |
|---|---|---|
| 主机记录 | 域名前缀 | @ 表示根域名本身,www 表示 www.example.com |
| 记录类型 | A、CNAME、MX…… | A |
| 记录值 | 指向哪里 | 203.0.113.10 |
| TTL | 缓存多久(秒) | 600 |
常用记录类型
| 类型 | 指向 | 典型用途 |
|---|---|---|
| A | IPv4 地址 | 网站指向服务器 |
| AAAA | IPv6 地址 | 服务器有 IPv6 时 |
| CNAME | 另一个域名 | 接入 CDN、对象存储、SaaS 服务(它们会给你一个域名让你指过去) |
| MX | 邮件服务器域名,带优先级 | 企业邮箱 |
| TXT | 一段文本 | 域名所有权验证、邮件反垃圾(SPF、DKIM、DMARC) |
| NS | 名称服务器 | 决定由哪家来管这个域名的解析 |
几个容易踩的坑
1. 根域名不能随便用 CNAME
按 DNS 标准,根域名(@)上不能同时存在 CNAME 和其他记录(例如 MX)。给根域名加 CNAME,可能导致邮箱收不到信。很多服务商提供“CNAME 展平”或“ALIAS / 显性 URL”之类的替代方案,接 CDN 时按服务商的说明来。
2. 同一个主机记录,A 和 CNAME 不能并存
www 已经有 A 记录了,要改成 CNAME,得先删掉 A 记录。
3. 改了 NS 之后,旧后台的解析就失效了
域名的 NS 改到 Cloudflare 这类服务之后,解析要在新的地方管理,原注册商后台里的记录不再生效。见 Cloudflare 接入教程。
4. 邮箱的三条 TXT 记录别漏了
配置企业邮箱时,除了 MX,还要按邮箱服务商的要求添加 SPF、DKIM、DMARC 这几条 TXT 记录,否则发出的邮件容易进垃圾箱。
TTL 怎么设
TTL 是各地 DNS 服务器缓存这条记录的时间:
- 日常:600 秒(10 分钟)到 3600 秒(1 小时)都可以;
- 准备迁移服务器前:提前一两天把 TTL 调小(例如 300 秒),切换后变化会生效得更快;稳定后再调回去。
改了解析不生效,怎么排查
- 在自己电脑上查:
nslookup www.example.com
dig www.example.com +short
- 结果还是旧的:等待 TTL 过期,或者换一个公共 DNS(如 223.5.5.5、119.29.29.29)再查。
- 查不到记录:检查是不是加错了主机记录(
www写成了www.example.com,就会变成 www.example.com.example.com)。 - 解析对了,网站还是打不开:那就是服务器、防火墙或者备案的问题了,见轻量应用服务器搭建 WordPress里的排查顺序。