网络
DNS记录类型参考指南
汇总运行邮件和网站所需的DNS记录类型——A、MX、TXT、SPF、DKIM、DMARC等——并说明每种记录的用途、格式示例与注意事项。
DNS记录类型一览
| 类型 | 用途 | 格式示例 | 注意事项 |
|---|---|---|---|
| A记录 | 最基本的记录类型,将域名映射到IPv4地址,指出Web服务器或邮件服务器的实际所在位置。 | example.com. 3600 IN A 192.0.2.1 |
TTL(此例中为3600秒,即1小时)设置过短会增加对权威DNS服务器的查询次数、加重负载;设置过长则会延迟IP地址变更后的生效时间。 |
| AAAA记录 | 将域名映射到IPv6地址,相当于A记录的IPv6版本。 | example.com. 3600 IN AAAA 2001:db8::1 |
同时保留A记录可以让不支持IPv6的网络回退到IPv4连接(双栈运行)。 |
| CNAME记录 | 将一个主机名指向另一个规范主机名作为别名,例如将 www.example.com 指向 example.com。 | www.example.com. 3600 IN CNAME example.com. |
设置了CNAME的主机名不能再共存其他记录(如MX、TXT,这是RFC 1034的限制)。域名根(@)也不能设置CNAME。 |
| MX记录 | 指定该域名的邮件应由哪台邮件服务器接收,可通过优先级(preference值)指定多台服务器。 | example.com. 3600 IN MX 10 mail.example.com. |
数值越小优先级越高。为实现冗余,通常会设置多个不同优先级的服务器。MX指向的必须是拥有A记录的主机名,而不能是CNAME。 |
| TXT记录 | 为域名附加任意文本信息的通用记录,常用于SPF、DKIM、DMARC,以及域名所有权验证等多种用途。 | example.com. 3600 IN TXT "v=spf1 include:_spf.google.com ~all" |
一个域名可以设置多条TXT记录,但同一用途(如SPF)的记录若重复设置会导致解析错误,需要合并为一条。 |
| SPF记录(TXT记录的一种) | 列出被允许代表该域名发送邮件的服务器(IP地址),是一种防止邮件伪造的发件人认证机制,以TXT记录的形式配置。 | example.com. 3600 IN TXT "v=spf1 ip4:203.0.113.0/24 include:_spf.google.com ~all" |
每个域名只能有一条有效的SPF记录。DNS查询次数上限为10次,超过会导致永久性错误,需注意include的嵌套层数。专用的记录类型(RRTYPE 99)已于2014年废弃,如今统一使用TXT记录表示SPF。 |
| DKIM记录(TXT记录的一种) | 为邮件附加数字签名,用以验证邮件在传输过程中未被篡改、且确实来自合法发件人。公钥以TXT记录形式公开。 | selector._domainkey.example.com. 3600 IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSq..." |
主机名前缀(选择器selector)因发件服务商而异。私钥保存在发送服务器一侧,DNS中只公开公钥。 |
| DMARC记录(TXT记录的一种) | 基于SPF和DKIM的验证结果,声明对认证失败的邮件应如何处理(放行、隔离或拒收),并提供接收汇总报告的渠道。 | _dmarc.example.com. 3600 IN TXT "v=DMARC1; p=quarantine; rua=mailto:[email protected]" |
建议先以 p=none 仅进行监控,确认没有问题后再逐步提升到 quarantine、reject,这是较为安全的部署方式。 |
| NS记录 | 标明该域名(区域)的权威DNS服务器是哪些,是整个域名解析的起点。 | example.com. 86400 IN NS ns1.example-dns.com. |
如果在注册商处登记的域名服务器与区域内的NS记录不一致,会导致名称解析不稳定(称为“跛脚委派”,lame delegation)。 |
| SOA记录 | 保存区域的管理信息(主服务器、管理员邮箱、序列号、重试间隔等),每个区域必须且只能有一条。 | example.com. 86400 IN SOA ns1.example-dns.com. admin.example.com. (2026071200 3600 900 604800 86400) |
更新区域文件后必须递增序列号,否则从服务器不会通过区域传送获取到变更内容。 |
| CAA记录 | 限制哪些证书颁发机构(CA)可以为该域名签发证书,防止非预期的CA签发出恶意证书。 | example.com. 3600 IN CAA 0 issue "letsencrypt.org" |
如果域名没有任何CAA记录,则视为任何CA都可以签发证书。通配符证书需要另外指定 issuewild 标签。 |
| PTR记录 | 通过IP地址反查主机名(与A记录方向相反),配置在反向解析区域(in-addr.arpa / ip6.arpa)中。 | 1.2.0.192.in-addr.arpa. 3600 IN PTR mail.example.com. |
许多邮件服务器会将反向PTR未设置或与A记录不一致的来源邮件标记为垃圾邮件或直接拒收,因此这几乎是发件服务器的必备配置。 |
使用提示
- 如果对SPF、DKIM、DMARC的配置感到困惑,建议先用“SPF/DKIM/DMARC记录检测”工具诊断当前记录,再与本页的格式示例对照,效率更高。
- 普通记录的TTL设为1小时(3600秒)左右较为稳妥;仅在DNS迁移前夕临时缩短到300秒左右,切换后再恢复,可以让生效更快。
- TXT记录的值超过255个字符时可能会被自动拆分为多个字符串,复制粘贴时请确认引号数量是否正确。
- 如果还想检查邮箱地址本身的格式是否正确,可以配合使用“邮箱地址格式验证”工具,避免遗漏。
- 引入新的邮件发送服务时,建议先以 p=none 运行DMARC并观察1〜2周的报告,确认无异常后再切换到正式的执行策略,更为稳妥。
常见问题
SPF验证的是“邮件是从哪台服务器发出的”,即发件IP地址的合法性;DKIM则通过数字签名验证“邮件内容是否被篡改”。只有两者都通过,发件人认证才能发挥充分的效果。
虽然不是法律强制要求,但Gmail、Yahoo邮箱等主要收件服务商实际上已将DMARC设为大批量发件人的事实标准,未设置会显著增加被判定为垃圾邮件或被拒收的风险。
常见原因包括MX指向的是CNAME而非拥有A记录的主机名、优先级数值设置错误,或邮件服务器本身未配置为接收该域名的邮件。
如果IP地址固定且需要设置在域名根(@)上,应使用A/AAAA记录;如果只是想让该主机名作为其他主机名的别名(例如指向CDN地址),则应使用CNAME。
正常运行时通常设为1小时(3600秒)左右即可。仅在服务器迁移或DNS切换前夕临时缩短到300秒左右,切换后生效会更快。
闲话 ― DNS记录与邮件认证的历史
DNS通常被理解为将域名映射到IP地址的机制,但实际上除了A、AAAA记录之外还定义了许多其他类型,各自承担不同的角色。尤其在邮件传输领域,MX、TXT(承载SPF/DKIM/DMARC)、PTR等多条记录必须协同工作,才能判定一封邮件是“未被伪造的合法邮件”,只要缺少其中一项,被归入垃圾邮件文件夹或被拒收的风险就会显著上升。
回顾发件人认证的历史,SPF在21世纪初作为反垃圾邮件的对策被提出,随后以检测邮件内容是否被篡改为目的的DKIM于2007年前后被标准化。然而两者各自都没有规定“认证失败后应如何处理”,为了填补这一空白,DMARC于2012年诞生。DMARC综合评估SPF与DKIM的结果,提供失败时的处理策略以及结果报告机制,可以说是认证体系的“指挥中枢”。
部分DNS记录因历史原因经历过规格变化。例如专用于SPF的记录类型(RRTYPE 99)曾在2006年的RFC中被定义过一次,但因引发实现上的混乱,已于2014年由RFC 7208正式废弃,如今统一只用TXT记录来表示SPF。同样,DKIM和DMARC也没有专属的记录类型,全部以特定格式(以 v=DKIM1、v=DMARC1 开头的字符串)嵌入TXT记录之中,这也体现了DNS极高的可扩展性。