跳转到内容
搜索文档

Gateway 故障排除

最后更新 查看 MarkdownAgent 设置

本指南可帮助您排除 Cloudflare Gateway 策略的常见问题。这些问题按最常见问题的顺序列出。

出站策略未能按预期工作

出站(Egress)策略是 Gateway 最常见的一类问题。症状包括流量未使用您的专用出站 IP、故障转移行为不正确,或者由于 Gateway 通过遥远的数据中心路由流量而导致高延迟。

症状:流量未使用您的专用出站 IP

即使有处于活动状态的出站策略,您也可能会发现流量是从默认的 Cloudflare IP 地址而不是您的专用出站 IP 出站的。

常见原因 解决方案
DNS 解析为 CGNAT(运营商级 NAT) 当出站策略使用“域”(Domain)或“主机”(Host)选择器时,Gateway 必须首先解析该域。对于通过 Cloudflare 代理的流量,这通常解析为来自 100.64.0.0/10 范围的 CGNAT IP 地址。因为此 IP 是 Cloudflare 网络内部的,所以它可能不受出站策略(适用于离开网络的流量)的约束。请将出站策略中的选择器从“域”或“主机”更改为“目的 IP”。使用您要访问的服务的公共 IP 地址。
策略优先级 另一个具有较高优先级(较小数字)的出站策略首先匹配了流量。请记住,出站策略遵循相同的“首次匹配获胜”逻辑。
Split Tunnel 配置 目标 IP 或域通过您的 Split Tunnel 配置(控制是将特定 IP 或域的流量发送到 WARP 隧道中还是从中排除)被从 WARP 隧道中排除。从隧道中排除的流量将不受任何 Gateway 策略(包括出站策略)的约束。
没有出站日志 出站日志记录可通过包含 Gateway Egress 数据集的 Logpush 获取。这对于故障排除至关重要。您还可以使用第三方 IP 检查服务从测试设备验证出站 IP。

症状:故障转移不起作用或使用了错误的 IP

您的主专用出站 IP 变得不可用,但流量没有使用您配置的辅助专用 IP,而是故障转移到默认的 Cloudflare 共享 IP。

常见原因 解决方案
Cloudflare 侧的路由或配置问题 记录事件发生的时间,并从受影响用户的 Gateway HTTP 或 DNS 日志中收集请求 ID (Request ID)。打开支持工单并提供此信息。临时性地,您可以编辑出站策略,将您的辅助 IP 设置为主 IP,以恢复服务。

症状:用户从地理位置遥远的位置出站

Gateway 将某一国家/地区(例如澳大利亚)的用户路由至位于另一地区(例如德国)的专用出站 IP,从而导致高延迟并破坏对受地理限制内容的访问。

常见原因和解决方案:

常见原因 解决方案
单一出站策略 您可能拥有一条适用于所有用户(无论其位置如何)的宽泛出站策略。请创建位置感知的出站策略。在策略中使用“用户位置”(User Location)选择器,将特定的用户位置与其最近的专用出站 IP 绑定。例如,创建一条规则:当“用户位置”为 United Kingdom 时,通过伦敦 IP 出站;创建第二条规则:当“用户位置”为 Australia 时,通过悉尼 IP 出站。
地理位置数据不正确 用户 ISP 的 IP 地址地理位置可能不正确。在 Gateway 日志中检查 Cloudflare 看到的外部用户位置。如果看起来不正确,您可以向 Cloudflare 支持报告。

Gateway 未能按正确的顺序应用策略

一个常见的混淆点是 Gateway 如何评估其不同的策略类型以及其中的规则。

症状:阻止(Block)策略重写了更具体的允许(Allow)或不扫描(Do Not Scan)策略

您针对特定应用程序设置了高优先级的允许(Allow)或不扫描(Do Not Scan)策略(例如允许 finance.example.com),但 Gateway 仍使用低优先级的阻止(Block)策略(例如阻止所有高风险网站)阻止流量。

最核心的概念是 Gateway 策略优先级,Gateway 根据策略的顺序号来实施该优先级。列表中较小的顺序号表示较高的优先级。当 Gateway 遇到第一条匹配的规则时,它就会停止处理后续的策略。

要解决 Gateway 策略优先级问题:

  1. Cloudflare 仪表板中,转到Zero Trust > Traffic policies(流量策略) > Firewall policies(防火墙策略)
  2. 审查您的 DNS、网络和 HTTP 策略的顺序。
  3. 确保您最具体的允许(Allow)、不扫描(Do Not Scan)或不检查(Do Not Inspect)策略的顺序号小于您的通用阻止(Block)策略。
  4. 根据需要拖放策略以重新排序。针对 teams.microsoft.com 的允许策略应放置在针对所有文件共享应用程序的通用阻止策略之前。

TLS 解密使应用程序中断

开启 TLS 解密是使用 Data Loss Prevention (DLP)、Browser Isolation 和应用感知的 HTTP 策略等 Gateway 功能的前提条件。然而,它可能会对某些类型的软件造成问题。

症状:命令行工具(CLI 工具)或原生应用程序失败并出现证书错误

如果开启 TLS 解密后,命令行工具(如 gitawskubectlterraform)或桌面应用程序(如 ChatGPT 或 Docker)停止工作,这可能是由于证书错误造成的。应用程序可能会返回 SSL: CERTIFICATE_VERIFY_FAILED、“证书链中的自签名证书”或类似的 TLS 错误。

这些应用程序不使用操作系统的信任存储,因此不信任您安装的 Cloudflare 根证书。它们通常拥有自己的证书信任存储或使用证书固定(certificate pinning),这期望获得服务器的原始证书,而不是由 Cloudflare 重新签署的证书。

要解决此问题:

创建有针对性的 HTTP 策略,为这些工具需要访问的特定域绕过解密。将此策略的优先级设置为高于(较小的顺序号)您的主 TLS 解密策略。

创建一个包含主机(host)的列表,例如 github.com*.amazonaws.com*.docker.io

选择器 运算符 操作
Domain(域名) in list CLI Tool Domains Do Not Inspect(不检测)

您可以将某些工具配置为信任自定义 CA 或禁用 SSL 验证。这安全性较低且难以进行规模化管理。有关更多信息,请参阅手动安装证书

症状:未显示自定义阻止页面

当 HTTP 策略阻止用户的请求时,其浏览器将返回通用错误(ERR_SSL_PROTOCOL_ERROR),而不是您配置的 Gateway 阻止页面。

发生这种情况是因为浏览器不信任阻止页面所呈现的证书(该证书由 Cloudflare 根证书签名)。这意味着该证书未在用户设备上安装或不被信任。

要解决此问题:

  1. 确认设备上已安装 Cloudflare 根证书
  2. 确保将证书放置在正确的系统级信任存储中(例如 macOS 上的 Keychain 系统存储,或 Windows 上的本地计算机受信任的根证书颁发机构)。
  3. 如果您使用移动设备管理 (MDM) 工具,请验证您的部署脚本是否正确安装并信任了证书。

私有 DNS 和内部资源无法工作

您已配置 Gateway 来解析内部主机名,但用户无法访问它们。例如,连接到 Cloudflare One 客户端的用户尝试访问诸如 jira.mycompany.local 的内部服务,但 DNS 查询失败。

常见原因 解决方案
解析器策略缺失或不正确 转到 Traffic policies(流量策略) > Resolver policies(解析器策略)。创建一条匹配您的内部域名后缀并将查询转发到您的内部 DNS 服务器 IP 地址的策略。
Split Tunnel 排除了私有 IP 范围 如果您的内部资源位于私有 IP 范围(如 10.0.0.0/8),则必须将该范围包含在隧道中。如果它在您的 Split Tunnel 配置的排除(Exclude)列表中,则 Cloudflare One 客户端将不会代理该流量。
本地域回退(Local Domain Fallback)配置错误 为企业 DNS 使用解析器策略。仅对特定于用户直接物理网络的域使用本地域回退。

这篇文档对您有帮助吗?