---
id: "dns-record"
kind: "glossary-term"
title: "DNS记录"
language: "zh-Hans"
category: "DNS与技术基础"
updated: "2026-10-10T23:12:43Z"
canonical: "https://tldlog.com/zh/cihui/dns-jilu/"
translations:
  en: "https://tldlog.com/glossary/dns-record/"
  es: "https://tldlog.com/es/glosario/registro-dns/"
  de: "https://tldlog.com/de/glossar/dns-record/"
  fr: "https://tldlog.com/fr/glossaire/enregistrement-dns/"
  it: "https://tldlog.com/it/glossario/record-dns/"
  pt-BR: "https://tldlog.com/pt/glossario/registro-dns/"
  ru: "https://tldlog.com/ru/glossariy/zapis-dns/"
---

# DNS记录

DNS区中的单个条目。它包含名称、类型（例如A、MX或TXT）、TTL以及数据本身（例如IP地址）。名称和类型都相同的所有记录构成一个集合，总是一起应答、一起签名。

DNS记录是域名DNS区域中的一个条目。每条记录回答关于某个名称的一个问题，例如哪台服务器托管网站，或电子邮件应发往何处。域名持有人通常通过其DNS服务商编辑少数几条记录，而一条错误的记录就可能导致网站或电子邮件无法正常工作。

## DNS记录是什么：名称、类型、TTL和数据

每条记录都由相同的部分组成：所属的名称（如www.example.com）、类型（A、MX、TXT等）、TTL以及数据本身，例如一个IP地址。

TTL（生存时间）是解析器在重新查询前可以保存应答的秒数。它是上限，而非承诺。变更之后，部分用户会一直看到旧值，直到旧TTL到期，这就是人们通常非正式地所说的DNS传播。

名称和类型都相同的记录组成一个资源记录集（RRset）。查询总是返回整个记录集，其中所有记录的TTL必须相同，DNSSEC也将整个记录集作为一个单元进行签名。

## 大多数持有人需要的记录：A、AAAA、CNAME、MX和TXT

- **A**记录将名称指向一个互联网协议第4版（IPv4）地址。有多个地址就需要多条A记录。
- **AAAA**记录对更新、更长的第6版（IPv6）地址起同样的作用。
- **CNAME**记录使一个名称成为另一个名称的别名，且只能指向一个名称，查询会转到那里重新开始。除DNSSEC记录外，别名处不得存放其他数据。
- **MX**记录列出域名的邮件服务器，每台服务器带有一个优先级数值，数值越小越先尝试。其目标必须是真实的主机名，绝不能是别名。如果完全没有MX记录，发件服务器会改用该域名的A或AAAA记录。不接收邮件的域名可以发布“null MX”（空MX）：优先级为0，目标为单个点。
- **TXT**记录存放文本，其含义取决于发布的位置。各类服务常要求添加一个TXT值，以证明对域名的控制权。SPF必须以TXT记录发布，每个名称只能有一条SPF记录。DMARC策略是位于`_dmarc.example.com`的一条TXT记录。

## 维持区域运行的记录：NS和SOA

NS记录列出一个区域的权威域名服务器。它们位于区域顶端，也位于上级区域（如顶级域区域）中，在那里标示委派关系，并告诉解析器下一步该向哪里查询。它们必须指向真实的主机名，而不是别名。

每个区域在顶端都有且仅有一条SOA（起始授权机构）记录。其中包括主服务器、负责人的邮箱、一个序列号以及以秒为单位的各项计时器。辅助服务器只有在序列号增大时才会获取新数据。其MINIMUM字段与SOA自身的TTL一起，如今决定“不存在”应答的缓存时长。DNS服务商通常会为客户管理SOA记录。

## 专用记录：SRV、PTR、CAA、HTTPS和通配符

- **SRV**记录给出某项服务的服务器和端口，位于`_service._protocol.example.com`这样的名称下。客户端先尝试优先级数值最低的服务器，并按权重分担负载。其目标不得是别名。
- **PTR**记录将地址映射回名称。反向记录位于in-addr.arpa（IPv4）和ip6.arpa（IPv6）之下，这些区域遵循IP地址而非域名的结构，因此不在域名自身的区域中设置。运维建议指出，PTR记录与A记录应当相互匹配。
- **CAA**（Certification Authority Authorization，证书颁发机构授权）记录列出可以为某个名称签发证书的证书颁发机构。遵循该标准的机构在签发前必须检查此记录，必要时逐级向上级名称查找，因此在example.com设置的CAA，在www没有CAA时同样适用于www.example.com。浏览器不得用它来验证证书。
- **SVCB和HTTPS**记录在客户端连接之前告诉它应使用哪些服务器、协议和端口。HTTPS是面向网页的版本；这个名称指的是记录类型，而不是协议。
- **通配符**以标签`*`开头，如`*.example.com`。它们只对完全不存在的名称作答，只返回自身所含的类型，并且不对自身下级的名称作答。截至2026年10月，ICANN于2024年1月21日批准的基本注册管理机构协议禁止通用顶级域注册管理机构使用通配符或任何其他方法为未注册的名称作答：此类查询必须返回NXDOMAIN。

## 为何CNAME不能设在裸域名上，以及ALIAS变通方案

裸域名（即区域顶点）必须存放SOA和NS记录，而CNAME不能与其他数据共用同一名称。在那里设置CNAME会与这些记录冲突：一些服务器随后会忽略NS记录，域名便无法正常工作。

标准做法是在裸域名上设置A和AAAA记录。处于“AliasMode”的HTTPS记录也可以将裸域名指向另一个名称，但不支持它的客户端会忽略它，因此A和AAAA记录必须保留。

许多DNS服务商提供自己的功能，称为ALIAS、ANAME或CNAME展平（CNAME flattening）：服务商查询目标名称，再用其地址作答。截至2026年10月，这些功能属于专有功能。ANAME标准化草案已经过期，IANA的记录类型注册表中也没有ALIAS或ANAME类型。各家实现不同，这使得更换服务商或同时使用多家服务商更加困难。

## 编辑记录时的常见错误及检查方法

- 在区域文件中漏写完整名称末尾的点，导致区域名被附加上去：`mail.example.com.example.com`。
- CNAME与其他记录并存，或设在裸域名上。
- MX、NS或SRV记录指向CNAME。
- 同一名称下有两条SPF记录。
- 手动编辑区域文件时没有增大SOA序列号。
- CNAME仍指向已删除的主机，或CNAME指向另一个CNAME。
- 在变更之后才降低TTL：缓存最多可将旧应答保留旧TTL那么长的时间。

每次变更后，都应使用`dig`等查询工具查询该记录。直接查询权威服务器可以看到新值，不受缓存影响。如果不确定某项服务需要哪些记录，应向DNS服务商核实。

## 来源

- [Domain names - implementation and specification (RFC 1035)](https://www.rfc-editor.org/rfc/rfc1035.txt)
- [Clarifications to the DNS Specification (RFC 2181)](https://www.rfc-editor.org/rfc/rfc2181.txt)
- [Common DNS Operational and Configuration Errors (RFC 1912)](https://www.rfc-editor.org/rfc/rfc1912.txt)
- [Service Binding and Parameter Specification via the DNS (SVCB and HTTPS Resource Records) (RFC 9460)](https://www.rfc-editor.org/rfc/rfc9460.txt)
- [Address-specific DNS aliases (ANAME), draft-ietf-dnsop-aname-04](https://datatracker.ietf.org/doc/draft-ietf-dnsop-aname/)

## 相关术语

- [区域文件](https://tldlog.com/zh/cihui/quyu-wenjian/)
- [TTL](https://tldlog.com/zh/cihui/ttl/)
- [A记录](https://tldlog.com/zh/cihui/a-jilu/)
- [SOA记录](https://tldlog.com/zh/cihui/soa-jilu/)
- [RRSIG](https://tldlog.com/zh/cihui/rrsig/)
