跳转到内容
搜索文档

DNS 记录类型

最后更新 查看 MarkdownAgent 设置

本页介绍您可以在 Cloudflare 上管理的部分不同类型的 DNS 记录。有关如何添加、编辑或删除 DNS 记录的指导,请参阅管理 DNS 记录


IP 地址解析

Cloudflare 上的每个域名至少需要一条 IP 地址解析记录。这些记录是您可以通过 Cloudflare 代理的唯一记录。

A 和 AAAA

A 和 AAAA 记录 将域名映射到一个或多个 IPv4 或 IPv6 地址。

这些记录包括以下字段:

  • Name(名称):子域或 zone apex(@)。
    • 名称必须由 63 个字符或更少的标签组成(label1.label2.label3),完全限定域名(label1.label2.label3.example.com)不得超过 253 个字符。
    • DNS 标签可包含任意八位组(字节值)。但为兼容主机名和 TLS 证书,建议仅使用字母、数字和连字符(LDH 规则)。这不是 DNS 协议要求,意味着即使不遵循这些约定 DNS 仍可工作。
    • 不要求以字母开头或以字母或数字结尾。
    • 下划线在 DNS 中有效,常用于服务记录。
  • IPv4/IPv6 address(IPv4/IPv6 地址):您的源站服务器地址(不能是 Cloudflare IP
  • TTL:生存时间,控制 DNS 解析器在重新验证之前应缓存响应的时长。
    • 如果 Proxy Status(代理状态)Proxied(已代理),此值默认为 Auto(自动),即 300 秒。
    • 如果 Proxy Status(代理状态)DNS Only(仅 DNS),您可以自定义该值。
  • Proxy status(代理状态):更多详情请参阅已代理的 DNS 记录
  • Private network routing(私有网络路由):部分 Enterprise 客户还可以使用私有网络路由。对于 AAAAA 记录,此功能允许您将公共主机名的 HTTP/HTTPS 流量代理到私有网络中的源站。

API 调用示例

使用 API 创建 A 或 AAAA 记录时:

  • 记录的 content 是 IP 地址(A 为 IPv4,AAAA 为 IPv6)。
  • proxied 字段影响记录的代理状态

有关字段定义,请参阅 API 文档(在请求体规范下选择记录类型后即可查看)。

Required API token permissions

At least one of the following token permissions is required:
  • DNS Write
Create DNS Recordbash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"type": "A",
		"name": "www.example.com",
		"content": "192.0.2.1",
		"ttl": 3600,
		"proxied": false
	}'
Responsejson
{
	"result": {
		"id": "<ID>",
		"zone_id": "<ZONE_ID>",
		"zone_name": "example.com",
		"name": "www.example.com",
		"type": "A",
		"content": "192.0.2.1",
		"proxiable": true,
		"proxied": false,
		"ttl": 1,
		"locked": false,
		"meta": {
			"source": "primary"
		},
		"comment": null,
		"tags": [],
		"created_on": "2023-01-17T20:37:05.368097Z",
		"modified_on": "2023-01-17T20:37:05.368097Z"
	},
	"success": true,
	"errors": [],
	"messages": []
}

CNAME

CNAME 记录 将域名映射到另一个(规范)域名。它们可用于解析目标域名上存在的其他记录类型。

这些记录包括以下字段:

  • Name(名称):子域或 zone apex(@)。
    • 名称必须由 63 个字符或更少的标签组成(label1.label2.label3),完全限定域名(label1.label2.label3.example.com)不得超过 253 个字符。
    • DNS 标签可包含任意八位组(字节值)。但为兼容主机名和 TLS 证书,建议仅使用字母、数字和连字符(LDH 规则)。这不是 DNS 协议要求,意味着即使不遵循这些约定 DNS 仍可工作。
    • 不要求以字母开头或以字母或数字结尾。
    • 下划线在 DNS 中有效,常用于服务记录。
  • Target(目标):流量应指向的主机名(example.com)。
  • TTL:生存时间,控制 DNS 解析器在重新验证之前应缓存响应的时长。
    • 如果 Proxy Status(代理状态)Proxied(已代理),此值默认为 Auto(自动),即 300 秒。
    • 如果 Proxy Status(代理状态)DNS Only(仅 DNS),您可以自定义该值。
  • Proxy status(代理状态):更多详情请参阅已代理的 DNS 记录

已代理的 CNAME 记录

请注意以下方面,尤其是在将 CNAME 记录从 已代理 更改为仅 DNS 或反之之前:

  • 如果主机名用于代理流量,您可以使用 CNAME 记录指向其他 CNAME 记录(www.example2.com --> www.example1.com --> www.example.com),但最终记录必须指向具有有效 IP 地址(因此具有有效 A 或 AAAA 记录)的主机名。此外,不支持对同一名称上的其他记录类型进行查询。

示例

example.com 的 DNS 管理:

Type Name Content Proxy status
CNAME abc target.external.test Proxied

external.test 的 DNS 管理:

Type Name Content
A target 192.0.2.1
TXT target "some TXT content"

在此示例中,对 abc.example.com 的 TXT 查询将不会返回目标 zone 中的 TXT 内容。

  • Cloudflare 使用称为 CNAME flattening 的过程来提供更好的性能。此过程支持一些功能,并可与依赖 CNAME 记录的不同设置交互。请参阅 CNAME flattening 部分 以了解更多信息。

  • 如果您遇到无法代理的 CNAME 记录——通常与其他 CDN 提供商相关——该记录的已代理版本将导致连接错误。Cloudflare 有意阻止该记录被代理,以保护您免受错误配置的影响。详情请参阅代理限制

API 调用示例

使用 API 创建 CNAME 记录时:

有关字段定义,请参阅 API 文档(在请求体规范下选择记录类型后即可查看)。

Required API token permissions

At least one of the following token permissions is required:
  • DNS Write
Create DNS Recordbash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"type": "CNAME",
		"name": "www.example.com",
		"content": "www.another-example.com",
		"ttl": 3600,
		"proxied": false
	}'
Responsejson
{
	"result": {
		"id": "<ID>",
		"zone_id": "<ZONE_ID>",
		"zone_name": "example.com",
		"name": "www.example.com",
		"type": "CNAME",
		"content": "www.another-example.com",
		"proxiable": true,
		"proxied": false,
		"ttl": 1,
		"locked": false,
		"meta": {
			"source": "primary"
		},
		"comment": null,
		"tags": [],
		"created_on": "2023-01-17T20:37:05.368097Z",
		"modified_on": "2023-01-17T20:37:05.368097Z"
	},
	"success": true,
	"errors": [],
	"messages": []
}

电子邮件身份验证

无论您的域名是否发送电子邮件,都建议使用这些记录。创建安全的电子邮件记录有助于保护您的域名免受电子邮件伪造。

如果您的域名不用于发送电子邮件,请了解有关创建推荐的限制性记录的更多信息。

MX

邮件交换(MX)记录用于将电子邮件投递到邮件服务器。

有关字段定义,请参阅 API 文档(在请求体规范下选择记录类型后即可查看)。

DKIM

DomainKeys Identified Mail(DKIM)记录通过对电子邮件进行加密签名来确保电子邮件真实性:

SPF

Sender Policy Framework(SPF)记录列出了可以代表您的域名发送电子邮件的授权 IP 地址和域名。

DMARC

Domain-based Message Authentication Reporting and Conformance(DMARC)记录有助于生成有关电子邮件流量的汇总报告,并为电子邮件接收者应如何处理不符合要求的电子邮件提供明确说明。


专用记录

TXT

文本(TXT)记录允许您将文本输入到 DNS 系统中。

由于 TXT 记录的内容由一个或多个用双引号(")分隔的文本字符串组成,如果您添加不一致的引号(例如 "this"these" ones"),可能会遇到验证错误。对于新记录,如果您在保存 TXT 内容时不加任何引号,Cloudflare 会自动添加双引号。详情请参阅 What is a DNS TXT record

在 Cloudflare,TXT 记录最常用于在为您的域名Cloudflare for SaaS 域名签发 SSL/TLS 证书之前证明域名所有权。

您也可以使用 TXT 创建电子邮件身份验证记录,但我们建议改用我们的 Email security Wizard

有关字段定义,请参阅 API 文档(在请求体规范下选择记录类型后即可查看)。

CAA

证书颁发机构授权(CAA)记录指定哪些证书颁发机构(CA)被允许为域名签发证书。

有关字段定义,请参阅 API 文档(在请求体规范下选择记录类型后即可查看)。

SRV

服务记录(SRV)为语音通话(VOIP)、即时消息等特定服务指定主机和端口。

API 调用示例

有关字段定义,请参阅 API 文档(在请求体规范下选择记录类型后即可查看)。

Required API token permissions

At least one of the following token permissions is required:
  • DNS Write
Create DNS Recordbash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"type": "SRV",
		"name": "_xmpp._tcp.example.com",
		"data": {
				"priority": 10,
				"weight": 5,
				"port": 5223,
				"target": "server.example.com"
		}
	}'
Responsejson
{
	"result": {
		"id": "<ID>",
		"zone_id": "<ZONE_ID>",
		"zone_name": "example.com",
		"name": "_xmpp._tcp.example.com",
		"type": "SRV",
		"content": "5 5223 server.example.com",
		"priority": 10,
		"proxiable": false,
		"proxied": false,
		"ttl": 1,
		"locked": false,
		"data": {
			"port": 5223,
			"priority": 10,
			"target": "server.example.com",
			"weight": 5
		},
		"meta": {
			"auto_added": false,
			"managed_by_apps": false,
			"managed_by_argo_tunnel": false,
			"source": "primary"
		},
		"comment": null,
		"tags": [],
		"created_on": "2022-11-08T15:57:39.585977Z",
		"modified_on": "2022-11-08T15:57:39.585977Z"
	},
	"success": true,
	"errors": [],
	"messages": []
}

SVCB 和 HTTPS

Service Binding(SVCB)和 HTTPS Service(HTTPS)记录允许您预先向客户端提供应如何连接到服务器的信息,而无需初始明文 HTTP 连接。

如果您的域名启用了 HTTP/2 或 HTTP/3已代理的 DNS 记录,并且还在使用 Universal SSL,Cloudflare 会自动即时生成 HTTPS 记录,向客户端宣传应如何连接到您的服务器。

已代理与仅 DNS 名称

对于已代理(橙色云)名称,在启用 Universal SSL 时,Cloudflare 会自动合成 HTTPS 记录。已代理名称上手动添加的 HTTPS 记录不会被提供——Cloudflare 改用自动生成的记录。

如果您禁用了 Universal SSL(例如,因为您专门使用 Advanced Certificates),Cloudflare 不会为已代理名称生成 HTTPS 记录。

对于仅 DNS(灰色云)名称,您可以手动添加 HTTPS 记录,Cloudflare 会提供它们。但是,同一名称的所有记录都必须为仅 DNS,手动 HTTPS 记录才会被提供。

示例:手动 HTTPS 记录与代理状态

要使 Cloudflare 提供手动添加的 HTTPS 记录,同一名称的每条记录都必须为仅 DNS(灰色云)。

可行 — 同一名称的所有记录均为仅 DNS:

Type Name Content Proxy status
A example.com 192.0.2.1 DNS only
HTTPS example.com 1 . alpn="h3" -

由于 A 记录为仅 DNS,将提供 HTTPS 记录。

不可行 — 同一名称的代理状态混合:

Type Name Content Proxy status
AAAA example.com 2001:db8::1 Proxied
HTTPS example.com 1 . alpn="h3" -

由于同一名称的 AAAA 记录已代理,HTTPS 记录将不会被提供。

更多详情和背景,请参阅公告博客文章RFC 9460

有关字段定义,请参阅 API 文档(在请求体规范下选择记录类型后即可查看)。

PTR

指针(PTR)记录指定给定 IP 地址允许的主机。

在 Cloudflare 中,PTR 记录用于反向 DNS 查找,最好添加到反向 zone

有关字段定义,请参阅 API 文档(在请求体规范下选择记录类型后即可查看)。

SOA

起始权威(SOA)记录存储有关您域名的信息,例如管理员电子邮件地址、域名上次更新时间等。示例请参阅 What is a DNS SOA record

如果您使用 Cloudflare 作为权威 DNS,则无需创建 SOA 记录。当您开始使用 Cloudflare 的权威 nameserver 时,Cloudflare 会自动创建此记录。

对于 Enterprise 账户,您还可以更改 Cloudflare 将使用的 SOA 记录值:

  • 作为 DNS zone 默认值:定义 Cloudflare 将用于添加到您账户的所有新 zone 的 SOA 记录值。分步指导请参阅配置 DNS zone 默认值
  • 对于现有 zone:在 DNS Records(DNS 记录) 页面的 DNS record options(DNS 记录选项) 下覆盖默认值或 Cloudflare 生成的值。

有关每个 SOA 记录字段的信息,请参阅以下列表:

SOA 记录字段

  • MNAME:zone 的主 nameserver。辅助 nameserver 从此字段中指定的 nameserver 接收 zone 更新。

  • RNAME:负责该 zone 的管理员电子邮件地址。

    @ 符号由第一个点替换。如果电子邮件地址在 @ 之前包含点,应表示为 \.

    Email RNAME
    john@example.com john.example.com
    john.doe@example.com john\.doe.example.com
  • Serial:zone 的序列号。如果此数字增加,辅助 nameserver 会发起 zone 传输。

  • Refresh:辅助 nameserver 应在此后(以秒为单位)向主服务器查询 SOA 记录以检测 zone 更改的时间。仅在未配置 DNS NOTIFY(RFC 1996)时相关。

    Default Minimum Maximum
    10000 600 86400
  • Retry:辅助 nameserver 在失败尝试后应重试从主 nameserver 获取序列号的时间(以秒为单位)。任何指定值不得大于 Refresh

    Default Minimum Maximum
    2400 600 3600
  • Expire:如果主服务器无响应,辅助 nameserver 应在此后(以秒为单位)停止应答 zone 查询的时间。任何指定值不得小于 Refresh

    Default Minimum Maximum
    604800 86400 2419200
  • Record TTL:SOA 记录的生存时间

    Default Minimum Maximum
    3600 1800 3600
  • Minimum TTL:缓存否定响应的 TTL。详情请参阅 RFC 2308

    Default Minimum Maximum
    1800 60 86400

NS

Nameserver(NS)记录指示应使用哪台服务器进行权威 DNS。

仅当您使用子域名设置将子域名委派到 Cloudflare 之外时,才需要在 Cloudflare 的 DNS 记录表中添加 NS 记录。

有关字段定义,请参阅 API 文档(在请求体规范下选择记录类型后即可查看)。

限制

创建 NS 记录时,与单个委派名称关联的 nameserver 数量存在限制。

根据 RFC 1912 中定义的 DNS 标准,一个委派不应为同一委派名称包含超过七个 nameserver 名称。

为符合这些标准并保持平台稳定性:

  • Cloudflare 支持每个委派名称最多 10 条 NS 记录,但最佳实践是将数量保持在七个或更少。
  • 不支持为同一名称创建超过 10 条 NS 记录。超出此限制的请求可能会被拒绝或验证失败。

示例

example.com 的 DNS 管理:

Type Name Content
NS blog ns1.externalhost.com
NS blog ns2.externalhost.com
NS blog ns3.externalhost.com
NS blog ns4.externalhost.com
NS blog ns5.externalhost.com
NS blog ns6.externalhost.com
NS blog ns7.externalhost.com
NS blog ns8.externalhost.com
NS blog ns9.externalhost.com
NS blog ns10.externalhost.com

在此示例中,Cloudflare 会阻止你为委派名称 blog 添加另一条 NS 记录。

DS 和 DNSKEY

DS 和 DNSKEY 记录有助于实现 DNSSEC,后者对 DNS 记录进行加密签名以防止域名伪造。

大多数 Cloudflare 域名不需要添加这些记录,而应改为遵循我们的 DNSSEC 设置指南

有关字段定义,请参阅 API 文档(在请求体规范下选择记录类型后即可查看)。

其他

Cloudflare 还支持其他不太常见的记录类型,例如 URI、NAPTR 以及与证书相关的记录类型(SSHFP、TLSA、SMIMEA 和 CERT)。更多信息请参阅我们的博客文章

这篇文档对您有帮助吗?