跳转到内容
搜索文档

主机选择器

最后更新 查看 MarkdownAgent 设置

功能可用性

客户端模式 Zero Trust 计划
Traffic and DNS 模式 企业版
系统 可用性 最低客户端版本
Windows 2025.4.929.0
macOS 2025.4.929.0
Linux 2025.4.929.0
iOS 1.11
Android 2.4.2
ChromeOS 2.4.2

出口策略在 OSI 模型的第 4 层进行评估,在此层仅 IP 地址可用,而没有主机名。ApplicationContent CategoriesDomainHost 选择器需要按主机名匹配流量,因此 Gateway 采用两步流程:

  1. 当 Gateway 收到针对与这些选择器之一匹配的主机名的 DNS 查询时,它最初会将该查询解析为 100.80.0.0/162606:4700:0cf1:4000::/64 范围内的临时 IP。
  2. 当使用此临时目的 IP 的流量到达时,Gateway 可以识别该连接所属的主机名,应用正确的出口策略,然后在转发流量之前将临时 IP 替换为真实的真实目的地 IP。
示例出口策略流程

这些选择器在起作用前需要额外的配置。

启用主机选择器

要为您的账户启用这些选择器:

  1. Cloudflare 仪表板中,转到 Zero Trust > Traffic policies(流量策略) > Traffic settings(流量设置)
  2. Policy settings(策略设置) 中,打开 Allow egress policy host selectors(允许出口策略主机选择器)

使用 Patch Zero Trust account configuration 终点来更新您的 Zero Trust 配置。例如:

Patch Zero Trust account configurationbash
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/gateway/configuration" \
	--request PATCH \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"settings": {
				"host_selector": {
						"enabled": true
				}
		}
	}'

前提条件

流量必须通过以下方法接入到 Gateway:

来自不支持的接入方法的流量将使用您的默认 Gateway 设置进行解析。如果您使用 DNS 位置向 Gateway 发送 DNS 查询(通过 IPv4、IPv6、DNS over TLS 或 DNS over HTTPS),Gateway 不会返回初始解析 IP,且主机选择器不适用。

配置更改

要将您的 Zero Trust 组织配置为将主机选择器与出口策略结合使用:

  1. 确保在您用户的设备上部署了以下版本的 Cloudflare One Client:

    如果您需要支持运行旧版本 WARP 的设备,请将以下键值对添加并部署到您设备的 WARP 配置文件中(Windows 和 Linux 上为 mdm.xml,macOS 上为 com.cloudflare.warp.plist):

    <array>
    	<dict>
    +		<key>doh_in_tunnel</key>
    +		<true/>
    	</dict>
    </array>
  2. 在您的 WARP 设备配置文件中,配置分流隧道(Split Tunnels),使 初始解析的 IP 通过 WARP 隧道进行路由。配置取决于您的分流隧道模式

    • 排除模式:从您的分流隧道列表中删除 100.64.0.0/10。我们建议重新添加未明确用于 Cloudflare One 服务的 IP 范围。这可以减少与可能使用 CGNAT 地址空间的现有私有网络配置发生冲突的风险。
    • 包含模式:为以下 IP 地址添加分流隧道条目:
      • IPv4: 100.80.0.0/16
      • IPv6: 2606:4700:0cf1:4000::/64

Cloudflare One Client 必须设置为 Traffic and DNS 模式 才能使受这些选择器影响的流量正确路由。

已知问题

DNS 解析位置

对于 ApplicationContent CategoriesDomainHost 选择器,Gateway 会在上述初始 DNS 解析步骤中捕获目的地 IP 地址。出口策略不会更改此 IP 地址,因此 Gateway 连接的目的地与您选择的出口数据中心或专用出口 IP 的位置无关。

如果解析的目的地 IP 与出口 IP 位于不同区域,则发往基于连接源执行地理限制或 IP 白名单的目标站点的连接可能会被拒绝。

如果您使用 Domain 或 Host 出口选择器,而您的用户位于与您的出口 IP 关联的区域之外,且目的地应用了地理限制或基于 IP 的访问控制,这可能会对您产生影响。

Google Chrome 限制本地网络访问

Chrome 142 开始,浏览器会限制来自网站对本地 IP 地址的请求,包括 Gateway 初始解析的 IP(initial resolved IP) CGNAT 范围(100.80.0.0/16)。由于该范围属于 100.64.0.0/10,Chrome 将这些地址归类为属于本地网络。当从公共 IP 加载的网站向通过初始解析 IP 解析的域发出子请求时,Chrome 会将此视为“公共到本地网络”请求,并显示提示要求用户允许访问本地网络上的设备。在用户接受此提示之前,Chrome 将拦截对这些域的请求。

这通常发生在出站(Egress)策略与广泛使用的域(例如 cloudfront.netgithub.com)匹配时,导致来自公共页面的子请求解析为 100.80.0.0/16 范围。

Iframe

如果受影响的请求源自 iframe 内部(例如嵌入在第三方门户中的应用程序),则 iframe 必须声明 local-network-access 权限,以便在父框架中显示浏览器提示:

  • Chrome 142-144:在 iframe 元素上使用 allow="local-network-access" 属性。
  • Chrome 145+:该权限被拆分为 allow="local-network"allow="loopback-network"

如果 iframe 是嵌套的,则链中的每个 iframe 都必须包含相应的属性。由于第三方应用程序控制着它们自己的 iframe 属性,这可能无法由最终用户进行配置。

规避方法

为避免此问题,请选择以下选项之一:

  • Chrome 146+(覆盖 IP 地址空间分类):使用 LocalNetworkAccessIpAddressSpaceOverrides Chrome 企业版策略将 100.80.0.0/16 范围重新归类为公共(public)。这是最具针对性的修复,因为它仅更改初始解析 IP 范围的分类,而不是完全停用安全检查。
  • Chrome 140+(允许特定 URL):使用 LocalNetworkAccessAllowedForUrls Chrome 企业版策略使特定网站免受本地网络访问检查。请注意,https://* 是停用所有 URL 检查的有效条目。
  • Chrome 146+(允许特定 URL):使用 LocalNetworkAllowedForUrls Chrome 企业版策略,从 Chrome 146 开始,该策略会替换 LocalNetworkAccessAllowedForUrls
  • Chrome 142-152(选择退出本地网络访问限制):使用 LocalNetworkAccessRestrictionsTemporaryOptOut Chrome 企业版策略完全退出本地网络访问限制。这是一项临时策略,将在 Chrome 152 之后移除。
  • 停用 Chrome 功能标志:转到 chrome://flags,然后将 Local Network Access Checks 标志设置为 Disabled。此方法适用于个人用户,但不适用于企业级部署。

DNS Override 策略绕过主机选择器

如果某个域名匹配 DNS Override 策略,Gateway 将不会对该域名应用初始解析 IP 映射。这意味着基于主机的出口选择器(Application、Content Categories、Domain 和 Host)将不会针对发往被覆盖域名的流量进行评估。发往这些域名的流量将使用默认的 Cloudflare 出口方式。

不支持 HTTPS DNS 记录

主机选择器不支持 HTTPS DNS 记录类型。当域名使用 HTTPS 记录来建立连接时,Gateway 无法将 DNS 查询映射到主机名以进行出口策略评估。发往这些域名的流量将使用默认的 Cloudflare 出口方法,而不会匹配基于主机的出口策略。

如果您需要向使用 HTTPS 记录的域名应用出口策略,请改用基于 IP 的选择器(例如 Destination IP)。

这篇文档对您有帮助吗?