跳转到内容
搜索文档

强制仅 DNS

最后更新 查看 MarkdownAgent 设置

强制仅 DNS 设置是一种账户级别的应急机制,允许你通过单一操作绕过账户中所有 zone 的 Cloudflare 反向代理。启用后,Cloudflare 会以底层记录内容响应 DNS 查询——对于已代理的 AAAAA 记录返回源站 IP 地址,对于已代理的 CNAME 记录返回 CNAME 目标——而不是 Cloudflare 的 anycast IP 地址,从而在不修改记录本身的情况下,有效地将所有已代理 DNS 记录设置为仅 DNS。

此设置仅用于紧急情况,例如在中断期间需要快速将流量直接路由到源站时。

主要特性

  • 账户级别:同时影响账户中的所有 zone。
  • 非破坏性:不会修改你的 DNS 记录。禁用该设置可恢复正常代理行为。
  • 仅 API:仅通过 API 可用,不在 Cloudflare 仪表板中提供。

Zone 类型

强制仅 DNS 适用于所有 zone 设置类型:

  • 完整设置:zone 中的代理记录通常会受影响,但有一些例外

  • 部分(CNAME)设置:zone 中的代理记录通常会受影响,但有一些例外

  • 辅助 zone:若已启用 Secondary DNS Overrides,并且你已手动将某条记录的代理状态设置为已代理,则该记录会受影响。这也适用于同一名称上的任何其他 AAAAA 记录。详情请参阅 Secondary DNS Overrides

准备

在将强制仅 DNS 作为事件响应计划的一部分之前,你应:

  • 验证源站服务器容量:在没有 Cloudflare 代理的情况下,源站服务器将直接处理所有流量,包括 Cloudflare 通常会缓存或过滤的流量。确保你的基础设施能够承受此负载。
  • 审查暴露的记录内容:当强制仅 DNS 处于活动状态时,已代理 AAAAA 记录中配置的所有源站 IP,以及已代理 CNAME 记录的目标,都会通过 DNS 查询公开可见。若你的源站依赖 IP 隐蔽性作为安全手段,请相应规划。
  • 提前测试:在需要紧急使用之前,在预发布或测试账户中使用 API 确认你了解该行为。

启用强制仅 DNS

使用 Update DNS Settings 端点为你的账户启用强制仅 DNS:

Required API token permissions

At least one of the following token permissions is required:
  • Account DNS Settings Write
Update DNS Settingsbash
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/dns_settings" \
	--request PATCH \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"enforce_dns_only": true
	}'

启用后,Cloudflare 会对所有代理记录以底层记录内容响应 DNS 查询——对于 AAAAA 记录返回你配置的源站 IP 地址,对于 CNAME 记录返回配置的 CNAME 目标——而不是 Cloudflare 的 anycast IP。

禁用强制仅 DNS

要恢复正常代理行为,将 enforce_dns_only 设置为 false

Required API token permissions

At least one of the following token permissions is required:
  • Account DNS Settings Write
Update DNS Settingsbash
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/dns_settings" \
	--request PATCH \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"enforce_dns_only": false
	}'

禁用该设置后,Cloudflare 会恢复以 anycast IP 地址响应代理记录的 DNS 查询,并且所有基于代理的功能都会恢复。

其他 Cloudflare 产品

若你使用依赖 DNS 记录的其他 Cloudflare 产品,请参阅以下各节。

包含

强制仅 DNS 会影响以下记录:

排除

强制仅 DNS 不会影响以下记录:

预期效果

  • 更改在 Cloudflare 边缘立即生效——没有 DNS 传播延迟。
  • 功能上等同于将所有代理记录设置为仅 DNS。

检查当前状态

使用 Show DNS Settings 端点验证当前值:

Required API token permissions

At least one of the following token permissions is required:
  • Account DNS Settings Write
  • Account DNS Settings Read
Show DNS Settingsbash
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/dns_settings" \
	--request GET \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"

相关资源

这篇文档对您有帮助吗?