几乎每个 DNS 区域都会遇到的记录
DNS 记录类型详解:完整参考
一个域名的 DNS 区域是一组记录,每条记录都有一个类型,用来定义它的含义。注册表中有几十种类型,实际用到的大约只有十种。本文就是对这些类型的参考。
几乎每个 DNS 区域都会遇到的记录
速查表
| 类型 | 映射关系 | 典型 TTL |
|---|---|---|
A | 主机名到 IPv4 | 3600 |
AAAA | 主机名到 IPv6 | 3600 |
CNAME | 主机名到另一个主机名 | 3600 |
MX | 域名到邮件服务器 | 3600 |
TXT | 域名到任意文本 | 3600 |
NS | 域名到其名称服务器 | 86400 |
SOA | 区域元数据 | 86400 |
PTR | IP 地址到主机名 | 3600 |
SRV | 服务到主机和端口 | 3600 |
CAA | 允许哪些 CA 签发证书 | 3600 |
A:地址
把主机名映射到 IPv4 地址。这是您拥有的最重要的记录:没有它,什么都无法解析。
example.com. 3600 IN A 93.184.216.34常见错误:在值中填写主机名。A 记录只接受字面的 IP 地址。完整说明见什么是 DNS A 记录。
AAAA:IPv6 地址
IPv6 对应的记录。因其长度是 A 记录的四倍而得名。
example.com. 3600 IN AAAA 2606:2800:220:1::248常见错误:在服务器真正监听该地址之前就发布了它。双栈客户端会先尝试 IPv6,卡住之后再回退,使一部分访客感觉网站很慢。
CNAME:规范名称
把一个主机名设为另一个主机名的别名。解析器随后会依次查询目标。
www.example.com. 3600 IN CNAME example.com.让所有人栽跟头的两条规则:CNAME 不能出现在域名的根上,而且带有 CNAME 的名称不能再有其他记录。参见 CNAME 与 A 记录。
MX:邮件交换
指定接收该域名邮件的服务器,并带有优先级数值,数值越小越先尝试。
example.com. 3600 IN MX 10 mail.example.com.
example.com. 3600 IN MX 20 backup.example.com.常见错误:指向 IP 地址或 CNAME。目标必须是带有自己 A/AAAA 记录的主机名。参见 MX 记录。
TXT:文本
存放任意文本。实际使用中,主要用于邮件认证和域名验证。
example.com. IN TXT "v=spf1 include:_spf.google.com ~all"
_dmarc.example.com. IN TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com"常见错误:发布两条 v=spf1 记录。这属于永久性错误,接收方不会把它们合并。参见 SPF、DKIM 和 DMARC。
NS:名称服务器
声明哪些名称服务器对该区域具有权威。这就是委派记录。
example.com. 86400 IN NS ns1.example.com.
example.com. 86400 IN NS ns2.example.com.常见错误:在您的域名并未委派给的服务商处编辑记录,导致这些修改根本不会被提供。参见什么是名称服务器。
SOA:起始授权
每个区域一条,保存管理元数据:主名称服务器、管理员邮箱(其中的 @ 写作点号)、序列号,以及供从属服务器使用的时间参数。
example.com. 86400 IN SOA ns1.example.com. admin.example.com. (
2026091201 ; serial -- must increase on every change
7200 ; refresh
3600 ; retry
1209600 ; expire
3600 ) ; minimum / negative-answer TTL值得了解:最后那个值是否定缓存 TTL,也就是“该名称不存在”这一答案被缓存的时长。这就是为什么新建的记录虽然已经生效,却可能在一段时间内看起来仍然缺失。
PTR:指针
把地址映射回主机名。它位于反向区域中,由拥有该 IP 段的一方控制,而不在您域名的区域中。
34.216.184.93.in-addr.arpa. 3600 IN PTR mail.example.com.常见错误:试图在自己的 DNS 控制面板中创建。您必须向托管服务商申请。参见反向 DNS。
SRV:服务
为某个特定服务发布主机和端口,SIP、XMPP、Minecraft 和 Microsoft Active Directory 都会用到。
_sip._tcp.example.com. 3600 IN SRV 10 60 5060 sipserver.example.com.
# | | | |
# priority | | target
# weight port值得了解:SRV 是唯一一种携带端口的常见记录类型。它的名称总是遵循 _service._protocol.domain 的格式。
CAA:证书颁发机构授权
列出哪些证书颁发机构可以为该域名签发证书。CA 在签发之前必须检查它。
example.com. 3600 IN CAA 0 issue "letsencrypt.org"
example.com. 3600 IN CAA 0 iodef "mailto:security@example.com"很少需要动的类型
ALIAS/ANAME:由服务商自定义,并非真正的 DNS 类型。通过在服务端解析目标,在根域名上提供类似 CNAME 的行为。DNSKEY、DS、RRSIG:DNSSEC 记录。启用 DNSSEC 时自动管理,请勿手动编辑。NAPTR:用于电话和 ENUM。HTTPS/SVCB:较新的类型,让客户端在连接之前就能获知连接参数。使用日益增多,您的 CDN 可能会替您设置。
核心要点
十种记录类型基本涵盖了所有真实的配置。大多数 DNS 问题并不离奇:要么是 A 记录指向了错误的地方,要么是 CNAME 出现在不允许的位置,要么是在域名未委派的服务商处做了修改。
使用查询工具,您可以一次性看到任意域名的 A、AAAA、NS、CNAME、MX 和 TXT 记录,每种类型都是独立查询的,因此即使某个域名缺少其中一种,其余的仍然会显示。
需要查看某个域名的公网 DNS 地址?使用 Domain IP Lookup 工具。
本主题的免费工具
常见问题
相关阅读
一次递归 DNS 查询,逐跳详解
浏览器
想访问 example.com
解析器
运营商 / 1.1.1.1
根 + TLD
谁负责 .com?
权威服务器
真正的答案
这条链路上的每一跳本身都是一次 DNS 查询,之后都会被缓存
DNS 如何工作:从域名到 IP 地址
互联网的电话簿,从头到尾追踪一遍:从输入域名,到第一个数据包抵达服务器,这短短几毫秒里究竟发生了什么。
几乎每个 DNS 区域都会遇到的记录
什么是 DNS A 记录?何时需要 AAAA 记录
真正把您的域名指向服务器的那条记录:它的结构、对应的 AAAA 记录,以及最容易让网站出故障的四个错误。
几乎每个 DNS 区域都会遇到的记录
CNAME 与 A 记录:该用哪一种?
决策只取决于一个问题:IP 地址由您掌控,还是由别人掌控?另外还有那条让所有人栽跟头的根域名规则。