没有魔法的 DNS:A、AAAA、CNAME、MX、TXT
有哪些 DNS 记录类型,它们有何区别,如何理解 TTL,以及如何检查更改是否已生效到互联网。
更新于 2026年8月23日
DNS 就像一个目录:给它一个名称,它返回一个地址或另一个名称。它出错时的表现就像“网站打不开”,尽管机器完全正常。了解每种记录类型负责什么,排查起来会更容易。
主要类型
| 类型 | 包含什么 | 何时需要 |
|---|---|---|
| A | IPv4 地址 | 网站和任何服务的主要记录 |
| AAAA | IPv6 地址 | 在 Millida VDS 机器上不使用:不提供 IPv6 |
| CNAME | 另一个名称 | 别名,例如 www → 主域名 |
| MX | 邮件服务器和优先级 | 接收域名的邮件 |
| TXT | 任意文本 | SPF、DKIM、DMARC、所有权验证 |
| NS | 区域名称服务器 | 域名委派 |
最容易踩的规则:不能在域名根处放置 CNAME 并与其他记录共存。根(example.com)只能有 A。CNAME 别名是给子域名用的。
实际是什么样
example.com. A 203.0.113.10
www.example.com. CNAME example.com.
mail.example.com. A 203.0.113.10
example.com. MX 10 mail.example.com.
example.com. TXT "v=spf1 mx -all"
从控制面板 /hosting/vds/m/<id> 的“概览”中获取地址。绑定的实操部分在文章将域名绑定到机器中描述。
TTL 和缓存
TTL 是记录允许被缓存存储的时间,以秒为单位。值为 3600 意味着在您修改后,提供商和浏览器还能继续提供一个小时的旧答案。
计划迁移的流程:提前一天将 TTL 降低到 300;等待;修改记录;确认一切正常;恢复之前的 TTL。
验证
dig example.com A +short
dig www.example.com CNAME +short
dig example.com MX +short
dig example.com TXT +short
dig @8.8.8.8 example.com A +short
最后一条命令查询特定的公共解析器,绕过您的本地缓存。包含解析路径的完整情况:
dig +trace example.com
常见错误
| 症状 | 原因 | 解决方法 |
|---|---|---|
| 域名从任何地方都打不开 | NS 记录未指向所需提供商 | 在注册商处检查 dig example.com NS |
| 您能打开,别人打不开 | 缓存中有过期答案 | 等待 TTL 过期,通过 @8.8.8.8 检查 |
www 打不开 | 子域名没有记录 | 为根添加 CNAME |
| 邮件收不到 | 没有 MX,或它指向 CNAME | MX 必须指向有 A 记录的域名 |
| 编辑 SPF 后邮件消失 | 区域中有两条 SPF 记录 | 只保留一行 v=spf1 |
一次只修改一条记录,并用
dig命令验证结果。批量修改区域然后“为什么全都挂了”,排查时间要长三倍。
要接收邮件,您还需要正确的反向地址记录。