DNS 记录类型对照表
十种常见 DNS 记录的作用、填写格式、TTL 建议和容易踩的坑。配域名、接 CDN、做邮箱验证都会用到。
记录类型速查
| 类型 | 作用 | 值示例 | 典型 TTL |
|---|---|---|---|
| A | 把域名指向一个 IPv4 地址 | 8.146.230.105 | 600 |
| AAAA | 把域名指向一个 IPv6 地址 | 2408:4009:500::1 | 600 |
| CNAME | 把域名别名指向另一个域名 | www → mcstudio.top | 600 |
| MX | 指定收信服务器 | 10 mx.example.com | 3600 |
| TXT | 存放文本,用于验证和策略 | "v=spf1 ..." | 600 |
| NS | 指定该域名由哪些 DNS 服务器解析 | ns1.alidns.com | 86400 |
| SOA | 区域起始记录,存管理信息 | mname / rname / serial | 600 |
| PTR | 反向解析:IP → 域名 | mail.example.com | 3600 |
| SRV | 指定某项服务的地址和端口 | _sip._tcp 10 60 5060 sip.example.com | 3600 |
| CAA | 限定哪些 CA 可以给本站签证书 | 0 issue "letsencrypt.org" | 3600 |
逐个说清楚
A 记录
最基础的一条。域名 → IPv4 地址。一个域名可以配多条 A 记录做轮询,客户端按序或随机挑一个用。主域名通常写 @,子域名写前缀(如 www、blog)。
常见错误:把 A 记录的值写成域名。A 记录只接受 IP,写域名必须是 CNAME。
AAAA 记录
和 A 记录一样,只是值换成 IPv6。如果服务器没有 IPv6,就不要配 AAAA,否则部分客户端会优先尝试 IPv6 然后连接超时,表现为"有时能打开有时打不开"。
CNAME 记录
把 www 指向 mcstudio.top,以后主域换 IP,只改一处。接 CDN 时也用它指向 CDN 给的域名。
两条铁律:
- 根域名(
@)通常不能设 CNAME,因为根域名还必须存在 NS 和 SOA 记录,而 DNS 规定 CNAME 不能与其他记录共存。 - CNAME 目标必须是域名,不能是 IP。
MX 记录
告诉别人"发给我的邮件投到哪"。格式是 优先级 主机名,数字越小越优先。比如:
@ MX 10 mx1.example.com @ MX 20 mx2.example.com
丢了 MX 记录,邮件就会退回。做企业邮箱时这是必配项,而且 MX 的值不能指向 IP,必须是域名。
TXT 记录
本来是放自由文本的,现在主要干三件事:
- 域名所有权验证:Google Search Console、百度站长、各种第三方服务都让你加一条
xxx-verify=...的 TXT。 - SPF:声明哪些服务器可以代你发信,防伪造。
v=spf1 include:_spf.example.com ~all - DKIM / DMARC:邮件签名和策略,配合 SPF 一起用。
注意:同一个主机记录可以有多条 TXT,但 SPF 只能有一条,多条会直接判定失败。
NS 记录
指定这个域名由哪些 DNS 服务器负责解析。NS 记录存在注册商那边(比如域名在聚名网注册,就要去改它的 NS),而不是在解析面板里改。
换 DNS 服务商时,本质就是改 NS。改完要等 TTL 过期才全球生效。
SOA 记录
每个区域的必备记录,存着主 DNS 服务器名、管理员邮箱、序列号、刷新重试时间等。普通站长很少手改,但它的 serial(序列号) 很关键——从服务器靠它判断要不要同步。手工改完区域文件忘了递增 serial,从服务器就不会更新。
PTR 记录
反向解析:给一个 IP,反查它对应的域名。自建邮件服务器必须有正确的 PTR,否则发出的邮件容易被判垃圾。
PTR 不能在自己的解析面板里配,要走 IP 所属的网络服务商(云厂商的控制台)。
SRV 记录
给某类服务指定主机和端口,格式是 优先级 权重 端口 目标。常用于 SIP 电话、Minecraft 服务器、Teams 联邦等。
CAA 记录
限定哪些证书颁发机构可以给你的域名签证书。配了之后,其他 CA 的申请会被拒绝,能防住一部分证书误签。
@ CAA 0 issue "letsencrypt.org"
三个实际配置示例
1. 把域名指向一台服务器
@ A 8.146.230.105 www A 8.146.230.105 blog A 8.146.230.105
三条都指向同一个 IP,简单直接。想统一到主域的话,再在 Web 服务器里对 www 做 301。
2. 接入 CDN
@ CNAME example.cdn-provider.com www CNAME example.cdn-provider.com
根域名要 CNAME 时,多数国内 DNS 服务商提供了 ALIAS / ANAME 这类"伪 CNAME"能力,可以绕开标准限制。
3. 邮箱验证与发信
@ MX 10 mx.example.com @ TXT "v=spf1 include:_spf.example.com ~all" _dmarc TXT "v=DMARC1; p=none; rua=mailto:admin@example.com"
DMARC 建议先用 p=none 观察一段时间,确认没问题再改成 quarantine 或 reject,否则可能把自己的正常邮件也拦掉。
解析是怎么走完的
你在浏览器输入域名,大致经过这几步:
- 本机缓存 → 系统 hosts → 本地 DNS 缓存,命中就直接返回。
- 没命中就问递归解析服务器(通常是运营商或 223.5.5.5 这类公共 DNS)。
- 递归服务器从根域名服务器开始,依次问顶级域(.top)、再问你的权威 DNS(NS 记录指向的那台)。
- 权威 DNS 返回 A / AAAA 记录,结果逐级缓存,缓存时长由 TTL 决定。
所以 TTL 设得太大,改解析后生效就慢;设得太小,查询量上升。折中值是 600 秒,改动频繁时可以临时调到 60。
改完解析没生效?按这个顺序查
- 等 TTL:旧记录还在缓存里,这是最常见的原因。
- 查实际返回值:
nslookup 域名 223.5.5.5指定公共 DNS,避免被本地缓存干扰。 - 看 NS 对不对:你在面板里改了记录,但如果域名的 NS 指向的还是别家的 DNS,改了当然不生效。
- 看有没有冲突记录:同一个主机记录同时存在 A 和 CNAME,行为不确定。