这张表解决什么
把域名接上业务之前,先判断需要哪种记录:要写死 IP 用 A/AAAA,要指向另一个域名用 CNAME,要接收邮件用 MX,要声明策略或做所有权校验用 TXT,要做服务发现用 SRV。先把类型判断对,再谈填什么值,能避开大部分「解析不生效」。
基本信息
| 适用平台 | 所有 DNS 服务商(阿里云 DNS、腾讯云 DNSPod、Cloudflare、自建 BIND 等) |
|---|---|
| 生效方式 | 权威服务器更新后,递归解析器缓存到期才重新拉取 |
| 默认 TTL | 多数服务商模板 600 秒 |
| 最易出错处 | 区域顶点 @ 与 CNAME 的冲突 |
需求到记录对照
| 需求 | 记录 | 示例值 |
|---|---|---|
| 主站指向固定 IP | A | @ 300 IN A 203.0.113.10 |
| 主站支持 IPv6 | AAAA | @ 300 IN AAAA 2001:db8::10 |
| www 指向主站 | CNAME | www 300 IN CNAME example.com. |
| 接入 CDN 或 WAF | CNAME / 展平记录 | www 300 IN CNAME xxx.cdn-provider.net. |
| 接收邮件 | MX | @ 3600 IN MX 10 mail.example.com. |
| 邮件防伪 | TXT(SPF) | @ 300 IN TXT v=spf1 include:_spf.example.com -all |
| DMARC 策略 | TXT | _dmarc 300 IN TXT v=DMARC1; p=quarantine |
| DKIM 签名公钥 | TXT | sel1._domainkey 300 IN TXT v=DKIM1; k=rsa; p=MIIB... |
| 域名所有权校验 | TXT | @ 300 IN TXT 服务商给的验证串 |
| 泛子域 | A 或 CNAME | * 300 IN A 203.0.113.10 |
| 服务定位 | SRV | _sip._tcp 300 IN SRV 10 60 5060 sip1.example.com. |
典型使用场景
- 新域名上线:先配 A/AAAA 让站点可访问,再补 www 与泛解析
- 迁移或自建邮箱:MX、SPF、DKIM、DMARC 四件套一次配齐
- 接入第三方服务:按对方给的 TXT 或 CNAME 完成所有权与回调校验
- 接入 CDN:把记录改成对方域名,或用厂商提供的展平记录代替顶点 CNAME
- 排查解析异常:同一条名字分别问本地与公共解析器,比对结果差异
配置后逐个验证
配置后逐个验证
dig +short @8.8.8.8 example.com A # 顶点解析
dig +short @8.8.8.8 www.example.com CNAME # 子域别名链
dig +short @8.8.8.8 example.com MX # 邮件路由
dig +short @8.8.8.8 _dmarc.example.com TXT # 策略记录
dig +trace example.com # 从根开始看委派链是否完整读一条记录的四段
| 字段 | 含义 | 注意 |
|---|---|---|
| 名称 | 记录挂在哪个名字下 | @ 代表区域顶点,别把域名全称再拼一遍 |
| 类型 | A/AAAA/CNAME/MX/TXT/SRV 等 | 同名同类型多条即形成轮询 |
| TTL | 允许被缓存的秒数 | 改记录前先调小,改完再调回 |
| 值 | 目标 IP、域名或文本 | CNAME 目标是绝对域名,建议结尾加点 |
TTL 决定「改了多久生效」。计划内切换时,提前把 TTL 降到 60 至 300 秒,切换完成后再调回 3600 左右,可以把生效窗口从一天压缩到几分钟。
区域顶点 @ 通常不允许直接写 CNAME,因为它必须同时承载 SOA 与 NS。要指向别处请用服务商提供的 CNAME 展平(ALIAS/ANAME)能力。