
DNS(域名系统)是互联网的"电话簿"——它将人类可读的域名(如 example.com)转换为计算机用于路由流量的 IP 地址。DNS 系统依赖多种类型的 DNS 记录,每种记录都有不同的用途。本文全面介绍您需要了解的每种主要 DNS 记录类型:它的作用、使用时机、实际示例以及常见错误。
DNS 记录是什么,它们如何工作?
DNS 记录是存储在权威名称服务器上的 DNS 区域文件中的条目。当有人在浏览器中输入域名时,DNS 解析器会查询这些记录以找到正确的 IP 地址或其他配置数据。每条记录都有类型、名称、值和 TTL(生存时间),TTL 控制解析器在重新查询之前缓存结果的时间。
DNS 记录通过域名注册商的 DNS 面板、Cloudflare 等第三方 DNS 提供商,或 cPanel、DirectAdmin 等托管控制面板进行管理。更改会根据 TTL 在全球范围内传播——较低的 TTL 意味着更快的传播,但 DNS 查询更多。
A 记录 — 最基础的 DNS 记录
A 记录(地址记录)将主机名映射到 IPv4 地址。这是最基本的记录类型,也是任何网站都会首先配置的记录。
A 记录示例
example.com. 3600 IN A 203.0.113.1
www.example.com. 3600 IN A 203.0.113.1
api.example.com. 3600 IN A 203.0.113.5
何时使用 A 记录
- 将根域名 (
@) 指向 Web 服务器的 IP 地址 - 将子域名(如
www、mail、api)指向特定 IP - 配置 DirectAdmin 或 cPanel 托管(将域名指向服务器 IP)
- 目标 IP 已知且静态的任何场景
AAAA 记录 — IPv6 地址映射
AAAA 记录(四 A 记录)与 A 记录完全相同,但映射到 IPv6 地址。随着 IPv4 地址空间耗尽,IPv6 对现代基础设施变得越来越重要。
AAAA 记录示例
example.com. 3600 IN AAAA 2001:db8:85a3::8a2e:370:7334
提示:当您启用 Cloudflare 代理模式时,即使您的源服务器仅支持 IPv4,Cloudflare 也会自动添加 AAAA 记录,为您的访问者提供双栈访问。
CNAME 记录 — 主机名别名
CNAME 记录(规范名称)创建从一个主机名到另一个主机名的别名。它不是指向 IP,而是指向另一个主机名,让 DNS 解析最终目的地。当服务的 IP 地址可能改变但主机名保持不变时,这非常有用。
CNAME 记录示例
www.example.com. 3600 IN CNAME example.com.
shop.example.com. 3600 IN CNAME myshop.shopify.com.
blog.example.com. 3600 IN CNAME myblog.wordpress.com.
CNAME 记录的关键限制
- CNAME 不能在根/顶点域名使用(
@或example.com),这由 RFC 1034 禁止 - CNAME 不能与同名的其他记录类型共存
- MX 记录不能指向 CNAME——它们必须指向具有 A 记录的主机名
- CNAME 链会增加延迟,尽量保持一跳
MX 记录 — 电子邮件路由
MX 记录(邮件交换记录)告诉 DNS 哪个邮件服务器应接收发往您域名的电子邮件。MX 记录包含优先级值——数字越小,优先级越高。多个 MX 记录可提供故障转移。
MX 记录示例
; 通用设置(主备)
example.com. 3600 IN MX 10 mail1.example.com.
example.com. 3600 IN MX 20 mail2.example.com.
; Google Workspace
example.com. 3600 IN MX 1 aspmx.l.google.com.
example.com. 3600 IN MX 5 alt1.aspmx.l.google.com.
example.com. 3600 IN MX 5 alt2.aspmx.l.google.com.
MX 记录的重要规则
- MX 目标必须是 A 记录——永远不要将 MX 指向 CNAME
- 优先级数字越小 = 优先级越高(1 优先于 10)
- 始终为 MX 主机名添加对应的 A 记录
TXT 记录 — 验证与电子邮件认证
TXT 记录存储与域名关联的任意文本数据。最常用于域名所有权验证以及防止伪造和网络钓鱼的电子邮件认证标准 SPF、DKIM 和 DMARC。
TXT 记录示例
; SPF — 授权 Google 代表您的域名发送邮件
example.com. 3600 IN TXT "v=spf1 include:_spf.google.com ~all"
; DMARC — 对失败的邮件进行隔离并报告给管理员
_dmarc.example.com. 3600 IN TXT "v=DMARC1; p=quarantine; rua=mailto:[email protected]"
; DKIM 公钥
google._domainkey.example.com. 3600 IN TXT "v=DKIM1; k=rsa; p=MIGfMA0G..."
; Google Search Console 验证
example.com. 3600 IN TXT "google-site-verification=abc123xyz..."
重要提示:一个域名应该只有一条 SPF TXT 记录。多条 SPF 记录会导致验证失败。使用 include: 机制将所有授权发件人合并到一条记录中。
NS 记录 — 名称服务器委派
NS 记录(名称服务器)指定哪些 DNS 服务器对您的域名具有权威性。当您将域名的 DNS 切换到 Cloudflare 或任何其他提供商时,您需要在注册商处更新 NS 记录,指向新的名称服务器。
NS 记录示例
example.com. 86400 IN NS ns1.cloudflare.com.
example.com. 86400 IN NS ns2.cloudflare.com.
NS 记录通常有较长的 TTL(86400 秒 = 24 小时),因为它们很少变化。更改名称服务器需要 24–48 小时才能在全球 DNS 层次结构中传播。
SOA 记录 — 区域权威信息
SOA 记录(授权起始记录)是每个 DNS 区域必须具有的强制记录。它标识区域的主名称服务器、管理员的电子邮件地址、用于同步服务器间区域传输的序列号以及时序参数。
SOA 记录示例
example.com. 86400 IN SOA ns1.example.com. hostmaster.example.com. (
2026110101 ; 序列号(YYYYMMDDNN 格式)
3600 ; 刷新间隔
900 ; 重试间隔
604800 ; 过期时间
300 ; 最小 TTL / 负缓存 TTL
)
SOA 记录由您的 DNS 提供商自动管理,通常无需手动编辑——当您更改区域时序列号会自动递增。
PTR 记录 — 反向 DNS 查询
PTR 记录(指针记录)是 A 记录的反向:它将 IP 地址映射回主机名。PTR 记录存储在特殊的 in-addr.arpa 区域(IPv4 用),由 IP 地址所有者控制——通常是您的 ISP 或托管提供商,而非域名持有者。
PTR 记录的使用场景
- 邮件服务器:接收邮件的服务器通常执行反向 DNS 查询,验证发送 IP 是否解析到可信主机名,降低垃圾邮件评分
- 网络诊断:
traceroute和nslookup等工具显示每个网络跳的 PTR 主机名 - 安全日志:日志管理系统将 IP 解析为主机名以提高可读性
SRV 记录 — 服务位置
SRV 记录(服务记录)指定特定服务的主机名和端口。记录名称遵循 _service._protocol.domain 格式。SRV 记录通常用于 VoIP 系统、Microsoft Teams、游戏服务器和 XMPP 消息。
SRV 记录示例
; Microsoft Teams / Skype for Business
_sip._tls.example.com. 3600 IN SRV 100 1 443 sipdir.online.lync.com.
_sipfederationtls._tcp.example.com. 3600 IN SRV 100 1 5061 sipfed.online.lync.com.
; Minecraft 游戏服务器
_minecraft._tcp.example.com. 3600 IN SRV 0 5 25565 mc.example.com.
SRV 记录字段说明
- 优先级:值越低,优先级越高
- 权重:用于同等优先级记录间的负载均衡
- 端口:服务的 TCP/UDP 端口号
- 目标:提供服务的服务器主机名
CAA 记录 — SSL 证书颁发机构控制
CAA 记录(证书颁发机构授权)指定哪些证书颁发机构(CA)被允许为您的域名颁发 SSL/TLS 证书。这可以防止未经授权的证书颁发——这是一项关键安全控制。
CAA 记录示例
; 仅允许 Let's Encrypt 和 DigiCert
example.com. 3600 IN CAA 0 issue "letsencrypt.org"
example.com. 3600 IN CAA 0 issue "digicert.com"
; 仅允许 DigiCert 颁发通配符证书
example.com. 3600 IN CAA 0 issuewild "digicert.com"
; 报告未授权颁发尝试
example.com. 3600 IN CAA 0 iodef "mailto:[email protected]"
DNS 记录类型对比表
| 类型 | 用途 | 指向目标 | 使用频率 |
|---|---|---|---|
| A | 域名 → IPv4 | 203.0.113.1 |
★★★★★ |
| AAAA | 域名 → IPv6 | 2001:db8::1 |
★★★☆☆ |
| CNAME | 主机名 → 主机名 | example.com |
★★★★☆ |
| MX | 邮件服务器路由 | mail.example.com |
★★★★★ |
| TXT | 文本数据 / 认证 | "v=spf1 ..." | ★★★★★ |
| NS | 名称服务器委派 | ns1.cloudflare.com |
★★★★★ |
| SOA | 区域权威信息 | 由提供商管理 | ★★★☆☆ |
| PTR | IP → 主机名(反向 DNS) | mail.example.com |
★★★☆☆ |
| SRV | 服务 + 端口 | 10 60 5060 sip.example.com | ★★☆☆☆ |
| CAA | SSL CA 授权 | "letsencrypt.org" | ★★☆☆☆ |
常见 DNS 配置错误
1. 在根域名放置 CNAME
RFC 1034 禁止在顶点域名使用 CNAME 记录,因为它们不能与强制的 NS 和 SOA 记录共存。如果需要将根域名别名到主机名,请使用 A 记录或通过 Cloudflare 使用 CNAME 展平。
2. 将 MX 指向 CNAME
MX 目标必须始终指向具有 A 记录的主机名——永远不要指向 CNAME。邮件服务器严格按 RFC 检查此项,错误的 MX 配置会导致邮件投递失败。
3. 计划更改前 TTL 过高
在任何计划的 DNS 更改前至少 24 小时,将 TTL 降低到 300 秒。这确保切换后缓存记录快速过期,减少传播延迟。
4. 多条 SPF 记录
一个域名有多条 SPF TXT 记录会导致认证失败。使用 include: 指令将所有发件人来源合并到一条记录中。
5. 区域文件中缺少末尾点号
在原始区域文件格式中,完全限定域名需要末尾点号(如 mail.example.com.)。没有它,DNS 服务器会附加区域名称,创建意外的主机名。
注册支持完整 DNS 管理的域名
AsiaGB 支持 .com、.co.th、.in.th 和 500 多个其他域名扩展的所有 DNS 记录类型。每年仅需 500 泰铢注册 .com 域名,附带免费 DNS 管理。
注册域名