跳转到内容
搜索文档

故障排除与调试

最后更新 查看 MarkdownAgent 设置

对通常与 Workers VPC 相关的错误进行故障排除和调试。

连接错误代码

当 Workers VPC 无法建立与您的专用服务的连接时,fetch() 将抛出异常,其中包含描述出现什么问题的错误代码。这些错误代码在 Cloudflare 仪表板中您的 VPC Service 的 **Metrics(指标)**选项卡中也可见。

根据可能的原因,错误分为三类。这些类别与仪表板中 VPC Service 的 Metrics(指标) 选项卡中显示的标签相匹配。

  • Bad Upstream(上游错误)— 您的隧道或专用服务无法访问。检查隧道运行状况、服务可用性和网络/TLS 配置。
  • Client(客户端)— 您的 VPC Service 配置或 Worker 代码导致了失败。检查您的目标主机名和 Worker 请求行为。
  • Internal(内部)— Cloudflare 基础设施问题。如果此问题持续存在,请联系 Cloudflare 支持。

Bad Upstream errors(上游错误)

这些错误表明 Cloudflare 尝试访问您的专用服务但连接失败。隧道可能已关闭,服务可能未在侦听,或者 Cloudflare 与您的源站之间存在网络或 TLS 问题。

Error code(错误代码) Description(描述) Recommended fix(建议修复)
connection_refused 您的专用服务拒绝了 TCP 连接。 验证您的服务是否正在运行并在预期端口上侦听。检查防火墙规则。
connection_terminated 连接在收到响应之前被您的服务关闭。 检查您的服务日志是否有崩溃或资源耗尽的情况。
connection_timeout 尝试连接到您的服务超时。 验证您的服务是否可从隧道访问。检查是否存在阻止流量的网络延迟或防火墙规则。
connection_limit_reached 已达到对您的服务的最大并发连接数。 扩展您的服务以处理更多连接,或者在您的 Worker 中减少连接并发。
destination_unavailable 您的服务被认为不可用。 验证您的隧道是否正在运行并且您的服务运行正常。
destination_not_found 无法确定此请求的路由。 检查您的 VPC Service 配置是否指向有效主机,并且您的隧道已配置为将流量路由到该主机。
destination_ip_prohibited 目标 IP 地址被禁止。 验证为您的 VPC Service 配置的 IP 地址是否正确且不在受限列表中。
destination_ip_unroutable 不存在到目标 IP 的网络路由。 检查 IP 地址是否正确且可从您的专用网络内部访问。
proxy_loop_detected 请求将被转发回同一代理,从而创建循环。 检查您的 VPC Service 和隧道配置是否存在循环路由。
dns_error DNS 解析失败(例如 SERVFAIL)。 检查为您的 VPC Service 配置的主机名是否可以从您的专用网络内部解析。验证您的 DNS 解析器是否正常工作。有关常见 DNS 原因,请参阅隧道错误
dns_timeout DNS 解析超时。 检查您的 DNS 解析器是否可访问并正在响应。考虑在您的 VPC Service 设置中配置自定义 DNS 解析器。
tls_protocol_error 连接到您的服务时发生 TLS 握手或协议错误。 验证您服务的 TLS 配置。确保 TLS 版本和密码套件兼容。
tls_certificate_error 您服务的 TLS 证书验证失败。 确保您的服务提供来自公共受信任 CACloudflare 原始 CA 证书 的有效证书。
http_request_error 发生 HTTP 请求错误。 检查您的服务日志,以获取有关导致错误响应的原因的详细信息。
http_upgrade_failed HTTP 升级(例如 WebSocket)失败。 验证您的服务是否支持请求的协议升级。
http_request_denied 请求在被转发之前被策略拒绝。 查看您服务的访问策略和配置。
http_protocol_error 与您的服务通信时发生 HTTP 协议错误。 检查您的服务是否使用有效的 HTTP 进行响应。
http_response_incomplete 您的服务返回了不完整的 HTTP 响应。 检查您的服务是否存在可能导致其在响应中途关闭连接的问题。

客户端错误

这些错误表明您的 VPC Service 设置或 Worker 的行为存在问题,而不是专用服务本身存在问题。

Error code(错误代码) Description(描述) Recommended fix(建议修复)
dns_error (NXDOMAIN) 在 DNS 中不存在为您的 VPC Service 配置的主机名。 验证 VPC Service 配置中的主机名是否正确并且存在相应的 DNS 记录。
connection_read_timeout 已建立连接,但在时间限制内未收到任何数据。 检查 Worker 代码中是否有停滞或缓慢的请求。确保您的 Worker 及时读取响应。
connection_write_timeout 无法将数据写入连接(缓冲区已满)。 检查您的 Worker 代码是否存在缓慢消耗响应数据的情况。
rate_limited 超过了到此源站的连接速率限制。 降低从您的 Worker 到该服务的新连接速率。

内部错误

这些错误表明 Cloudflare 基础设施内存在问题,该问题并非由您的配置或源站服务引起。

Error code(错误代码) Description(描述) Recommended fix(建议修复)
proxy_internal_error Cloudflare 代理中发生内部错误。 这不是由您的配置引起的。如果此错误持续存在,请联系 Cloudflare 支持

隧道错误

通过 Cloudflare Tunnel 连接到专用服务时,Workers VPC 可能会在运行时返回错误。

Error Message(错误消息) Details(详细信息) Recommended fixes(建议修复)
Error: ProxyError: dns_error 尝试通过隧道连接到您的专用服务时 DNS 解析失败。 如果您的 cloudflared 版本过旧,可能会出现此错误。确保您运行的是 cloudflared 2025.7.0 或更高版本(推荐最新版本)。参阅 Cloudflare Tunnel 更新说明
Error: ProxyError: dns_error Cloudflare Tunnel 可能配置了 http2 协议(TUNNEL_TRANSPORT_PROTOCOL:http2),这适用于 Cloudflare Zero Trust (见注) 流量,但阻止了来自 Workers VPC 的 DNS 解析。 Workers VPC 要求 Cloudflare Tunnel 使用 QUIC 传输协议进行连接。确保允许端口 7844 上的出站 UDP 流量通过您的防火墙。
请求未留在 VPC 内 Worker 请求使用 .fetch() 和公共主机名,正路由出 VPC,指向为 VPC Service 配置的主机名。 确保您的 Worker 代码和 VPC Service 将内部 VPC 主机名用于后端服务,而不是公共主机名。

权限错误

如果您无法在仪表板中或通过 Wrangler 查看、创建或绑定 VPC Services 和 Tunnels,请确保您的用户具有所需的角色。

Workers VPC 使用以下账户角色:

  • Connectivity Directory Read:查看 Workers VPC 服务和隧道。
  • Connectivity Directory Bind:列出、读取并在 Workers 中绑定(binding)VPC 服务。
  • Connectivity Directory Admin:创建、更新和删除 VPC 服务,并通过 VPC 网络绑定(binding)直接绑定到隧道。

有关角色定义,请参阅角色

如果您的角色最近已更新,但命令仍然失败,请刷新 Wrangler 身份验证:

npx wrangler logout
npx wrangler login

如果您使用 API 令牌(CLOUDFLARE_API_TOKEN)进行身份验证,请确保该令牌属于具有所需角色的用户。

这篇文档对您有帮助吗?