跳转到内容
搜索文档

连接性预检

最后更新 查看 MarkdownAgent 设置

本指南可帮助您在部署 Cloudflare Tunnel 之前验证您的环境与 Cloudflare Tunnel 端点之间的连接性。您将在运行 cloudflared 的同一台主机上运行 DNS 和网络检查,以帮助您识别可能阻止 cloudflared 连接到 Cloudflare Tunnel 端点的问题。

在安装 cloudflared 之前运行这些检查,可以为您的成功部署奠定基础,并缩小后续任何连接问题的范围。

本指南的结构如下:

  1. 开始之前:阅读前提条件和术语。

  2. 使用 dig 进行 DNS 测试:确认 DNS 将 Cloudflare Tunnel 端点解析为预期的 IP。

  3. 测试网络连接性:验证您的防火墙是否允许端口 7844(TCP 和 UDP)上的出站流量。

  4. 获取帮助:测试失败时需要收集什么以及联系谁。

1. 开始之前

前提条件

您必须拥有:

  • 一台已连接到互联网且计划在其上运行 cloudflared 的主机。测试必须在运行 cloudflared 的相同环境(相同的网络、相同的防火墙路径)中运行。

  • 具有运行 dignc (netcat) 或类似软件权限的终端会话。

cloudflared 平台无关,支持广泛的操作系统。有关详细信息,请参阅隧道系统要求

术语

在排查与 Cloudflare 的连接故障时,区分以下概念非常重要:

  • 主机:您将在其上运行 cloudflared 的服务器或虚拟机(VM)。

  • 环境:包含主机(网络和防火墙配置)的更广泛的设置。

Cloudflare Tunnel 错误可能源自环境(例如 DNS 或防火墙策略),即使它们在主机上表现为 cloudflared 错误。本指南重点关注环境,而非 cloudflared 本身。

cloudflared 通过端口 7844 建立指向 Cloudflare 全球网络的仅出站连接。具体的目标和端口在带有防火墙的隧道中有所记录。

2. 使用 dig 进行 DNS 测试

Cloudflare Tunnel 需要能够出站连接到 region1.v2.argotunnel.comregion2.v2.argotunnel.com(或在使用美国区域时连接到等效的 us-region1us-region2 端点,或者在使用 FedRAMP High 区域时连接到 fed-region1fed-region2)。

为了实现成功且健康的部署,cloudflared 应该拥有四个活跃副本,并且能够连接到这两个区域(即同时连接到 region1.v2.argotunnel.comregion2.v2.argotunnel.com,或同时连接到 us-region1us-region2)。

首先,您需要验证您的 DNS 解析器是否为 Cloudflare Tunnel 端点返回了预期的 IP 地址。

2.1. 使用您当前的解析器测试 DNS

根据您测试的是全球区域还是美国区域,运行以下命令之一:

dig A region1.v2.argotunnel.com
;; ANSWER SECTION:
region1.v2.argotunnel.com. 86400 IN	A	198.41.192.167
region1.v2.argotunnel.com. 86400 IN	A	198.41.192.67
region1.v2.argotunnel.com. 86400 IN	A	198.41.192.57
region1.v2.argotunnel.com. 86400 IN	A	198.41.192.107
region1.v2.argotunnel.com. 86400 IN	A	198.41.192.27
region1.v2.argotunnel.com. 86400 IN	A	198.41.192.7
region1.v2.argotunnel.com. 86400 IN	A	198.41.192.227
region1.v2.argotunnel.com. 86400 IN	A	198.41.192.47
region1.v2.argotunnel.com. 86400 IN	A	198.41.192.37
region1.v2.argotunnel.com. 86400 IN	A	198.41.192.77
...
dig AAAA region1.v2.argotunnel.com
;; ANSWER SECTION:
region1.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a0::1
region1.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a0::2
region1.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a0::3
region1.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a0::4
region1.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a0::5
region1.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a0::6
region1.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a0::7
region1.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a0::8
region1.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a0::9
region1.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a0::10
...
dig A region2.v2.argotunnel.com
;; ANSWER SECTION:
region2.v2.argotunnel.com. 86400 IN	A	198.41.200.13
region2.v2.argotunnel.com. 86400 IN	A	198.41.200.193
region2.v2.argotunnel.com. 86400 IN	A	198.41.200.33
region2.v2.argotunnel.com. 86400 IN	A	198.41.200.233
region2.v2.argotunnel.com. 86400 IN	A	198.41.200.53
region2.v2.argotunnel.com. 86400 IN	A	198.41.200.63
region2.v2.argotunnel.com. 86400 IN	A	198.41.200.113
region2.v2.argotunnel.com. 86400 IN	A	198.41.200.73
region2.v2.argotunnel.com. 86400 IN	A	198.41.200.43
region2.v2.argotunnel.com. 86400 IN	A	198.41.200.23
...
dig AAAA region2.v2.argotunnel.com
;; ANSWER SECTION:
region2.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a8::1
region2.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a8::2
region2.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a8::3
region2.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a8::4
region2.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a8::5
region2.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a8::6
region2.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a8::7
region2.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a8::8
region2.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a8::9
region2.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a8::10
...
dig A us-region1.v2.argotunnel.com
;; ANSWER SECTION:
us-region1.v2.argotunnel.com. 86400 IN	A	198.41.218.1
us-region1.v2.argotunnel.com. 86400 IN	A	198.41.218.2
us-region1.v2.argotunnel.com. 86400 IN	A	198.41.218.3
us-region1.v2.argotunnel.com. 86400 IN	A	198.41.218.4
us-region1.v2.argotunnel.com. 86400 IN	A	198.41.218.5
us-region1.v2.argotunnel.com. 86400 IN	A	198.41.218.6
us-region1.v2.argotunnel.com. 86400 IN	A	198.41.218.7
us-region1.v2.argotunnel.com. 86400 IN	A	198.41.218.8
us-region1.v2.argotunnel.com. 86400 IN	A	198.41.218.9
us-region1.v2.argotunnel.com. 86400 IN	A	198.41.218.10
...
dig AAAA us-region1.v2.argotunnel.com
;; ANSWER SECTION:
us-region1.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a1::1
us-region1.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a1::2
us-region1.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a1::3
us-region1.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a1::4
us-region1.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a1::5
us-region1.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a1::6
us-region1.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a1::7
us-region1.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a1::8
us-region1.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a1::9
us-region1.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a1::10
...
dig A us-region2.v2.argotunnel.com
;; ANSWER SECTION:
us-region2.v2.argotunnel.com. 86400 IN	A	198.41.219.1
us-region2.v2.argotunnel.com. 86400 IN	A	198.41.219.2
us-region2.v2.argotunnel.com. 86400 IN	A	198.41.219.3
us-region2.v2.argotunnel.com. 86400 IN	A	198.41.219.4
us-region2.v2.argotunnel.com. 86400 IN	A	198.41.219.5
us-region2.v2.argotunnel.com. 86400 IN	A	198.41.219.6
us-region2.v2.argotunnel.com. 86400 IN	A	198.41.219.7
us-region2.v2.argotunnel.com. 86400 IN	A	198.41.219.8
us-region2.v2.argotunnel.com. 86400 IN	A	198.41.219.9
us-region2.v2.argotunnel.com. 86400 IN	A	198.41.219.10
...
dig AAAA us-region2.v2.argotunnel.com
;; ANSWER SECTION:
us-region2.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a9::1
us-region2.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a9::2
us-region2.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a9::3
us-region2.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a9::4
us-region2.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a9::5
us-region2.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a9::6
us-region2.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a9::7
us-region2.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a9::8
us-region2.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a9::9
us-region2.v2.argotunnel.com. 86400 IN	AAAA	2606:4700:a9::10
...
dig A fed-region1.v2.argotunnel.com
;; ANSWER SECTION:
fed-region1.v2.argotunnel.com. 300 IN	A	162.159.234.1
fed-region1.v2.argotunnel.com. 300 IN	A	162.159.234.2
fed-region1.v2.argotunnel.com. 300 IN	A	162.159.234.3
fed-region1.v2.argotunnel.com. 300 IN	A	162.159.234.4
fed-region1.v2.argotunnel.com. 300 IN	A	162.159.234.5
fed-region1.v2.argotunnel.com. 300 IN	A	162.159.234.6
fed-region1.v2.argotunnel.com. 300 IN	A	162.159.234.7
fed-region1.v2.argotunnel.com. 300 IN	A	162.159.234.8
fed-region1.v2.argotunnel.com. 300 IN	A	162.159.234.9
fed-region1.v2.argotunnel.com. 300 IN	A	162.159.234.10
...
dig AAAA fed-region1.v2.argotunnel.com
;; ANSWER SECTION:
fed-region1.v2.argotunnel.com. 300 IN	AAAA	2a06:98c1:4d::1
fed-region1.v2.argotunnel.com. 300 IN	AAAA	2a06:98c1:4d::2
fed-region1.v2.argotunnel.com. 300 IN	AAAA	2a06:98c1:4d::3
fed-region1.v2.argotunnel.com. 300 IN	AAAA	2a06:98c1:4d::4
fed-region1.v2.argotunnel.com. 300 IN	AAAA	2a06:98c1:4d::5
fed-region1.v2.argotunnel.com. 300 IN	AAAA	2a06:98c1:4d::6
fed-region1.v2.argotunnel.com. 300 IN	AAAA	2a06:98c1:4d::7
fed-region1.v2.argotunnel.com. 300 IN	AAAA	2a06:98c1:4d::8
fed-region1.v2.argotunnel.com. 300 IN	AAAA	2a06:98c1:4d::9
fed-region1.v2.argotunnel.com. 300 IN	AAAA	2a06:98c1:4d::10
...
dig A fed-region2.v2.argotunnel.com
;; ANSWER SECTION:
fed-region2.v2.argotunnel.com. 300 IN	A	172.64.234.1
fed-region2.v2.argotunnel.com. 300 IN	A	172.64.234.2
fed-region2.v2.argotunnel.com. 300 IN	A	172.64.234.3
fed-region2.v2.argotunnel.com. 300 IN	A	172.64.234.4
fed-region2.v2.argotunnel.com. 300 IN	A	172.64.234.5
fed-region2.v2.argotunnel.com. 300 IN	A	172.64.234.6
fed-region2.v2.argotunnel.com. 300 IN	A	172.64.234.7
fed-region2.v2.argotunnel.com. 300 IN	A	172.64.234.8
fed-region2.v2.argotunnel.com. 300 IN	A	172.64.234.9
fed-region2.v2.argotunnel.com. 300 IN	A	172.64.234.10
...
dig AAAA fed-region2.v2.argotunnel.com
;; ANSWER SECTION:
fed-region2.v2.argotunnel.com. 300 IN	AAAA	2606:4700:f6::1
fed-region2.v2.argotunnel.com. 300 IN	AAAA	2606:4700:f6::2
fed-region2.v2.argotunnel.com. 300 IN	AAAA	2606:4700:f6::3
fed-region2.v2.argotunnel.com. 300 IN	AAAA	2606:4700:f6::4
fed-region2.v2.argotunnel.com. 300 IN	AAAA	2606:4700:f6::5
fed-region2.v2.argotunnel.com. 300 IN	AAAA	2606:4700:f6::6
fed-region2.v2.argotunnel.com. 300 IN	AAAA	2606:4700:f6::7
fed-region2.v2.argotunnel.com. 300 IN	AAAA	2606:4700:f6::8
fed-region2.v2.argotunnel.com. 300 IN	AAAA	2606:4700:f6::9
fed-region2.v2.argotunnel.com. 300 IN	AAAA	2606:4700:f6::10
...

ANSWER SECTION(应答部分)应该包含 Cloudflare Tunnel 端点的预期 IP 地址。

如果您收到:

  • 状态为 NOERROR 且有有效的 IP 地址 - 您的 DNS 解析器成功返回了隧道主机名的地址。继续进行测试网络连接性

  • 状态为 SERVFAILNXDOMAIN 或为空应答 - 您的 DNS 解析器无法解析隧道端点。继续进行1.1.1.1 进行对比

2.2. 与 1.1.1.1 进行对比

如果您的原始 dig 响应为空或不匹配记录的 IP,请使用 Cloudflare 的公共解析器 1.1.1.1 再次测试:

dig A region1.v2.argotunnel.com @1.1.1.1

如果只有 1.1.1.1 工作

如果 1.1.1.1 返回了正确的 IP,而您的原始解析器没有,则说明您的本地 DNS 解析器配置错误或被阻止。

要解决此问题:

  • 配置主机使用 1.1.1.1 作为其解析器。
  • 如果您必须继续使用现有的解析器,请与您的系统管理员或 ISP 调查它为何返回不同的 IP。递归解析器应该返回与权威 DNS 服务器相同的响应。如果无法解决此问题,则问题出在您的本地环境中,在部署 Cloudflare Tunnel 之前必须予以解决。

如果两个解析器都不工作

如果您的原始解析器和 1.1.1.1 都没有返回应答,则说明您的防火墙可能正在阻止指向 Cloudflare Tunnel 端点的 DNS 查询。

要解决此问题:

  • 检查是否存在完全阻止 DNS 流量(端口 53 上的 UDP)的防火墙规则,或与 Cloudflare 相关的特定 DNS 查询。
  • 如果您处于托管 DNS 或安全设备的保护之下,请联系该提供商以了解为什么对 region1.v2.argotunnel.com 和其他 Cloudflare Tunnel 端点的查询会被阻止。

一旦 DNS 解析从您的 DNS 解析器返回了预期的 IP,请继续进行步骤 3 中的连接性测试。

3. 测试网络连接性

确认您的 DNS 解析器返回正确的 IP 后,测试您的主机是否可以使用 UDP 和 TCP 向端口 7844 上的 Cloudflare 发送数据包。

从您的 dig 输出中选择一个 IP(例如,198.41.192.167),然后运行以下测试。

3.1. 测试 UDP 连接性

nc -uvz -w 3 198.41.192.167 7844

示例输出:

Connection to 198.41.192.167 port 7844 [udp/*] succeeded!

3.2. 测试 TCP 连接性

nc -vz -w 3 198.41.192.167 7844

示例输出:

Connection to 198.41.192.167 port 7844 [tcp/*] succeeded!

3.3 解读结果

这些测试回答了两个关键问题:

  • 主机能否向 Cloudflare Tunnel 端点发送 UDP 数据包?
  • 主机能否向 Cloudflare Tunnel 端点发送 TCP 数据包?

如果其中任何一种协议成功,cloudflared 就可以使用该协议来建立隧道。

您已在前面的步骤中确认 DNS 正在工作。现在,这些连接性测试验证您的环境是否允许在端口 7844 上向 Cloudflare 发送流量。默认情况下,cloudflared 会自动回退到任何可用的协议。

如果某个协议被阻止,但您强迫 cloudflared 使用它(例如,在 UDP 被阻止时强制使用 QUIC),则隧道将无法连接。

UDP 和 TCP 均成功

您的防火墙允许端口 7844 上发往 Cloudflare 隧道端点的出站流量和返回流量。cloudflared 可以使用 quic (UDP) 或 http2 (TCP) 进行连接。如果 UDP 和 TCP 均成功,并且上一节中的 DNS 测试也成功,则您可以在此环境中成功部署 Cloudflare Tunnel。

UDP 成功,TCP 失败

允许出站 UDP,但端口 7844 上的 TCP 被阻止或受到检查。

cloudflared 将只能使用 quic 进行连接。如果在 TCP 被阻止时您在配置中强制使用 http2,隧道将失败。

要解决此问题:要么在您的本地网络防火墙上允许端口 7844 上的 TCP,要么停止强制使用 http2 以允许 cloudflared 改为通过 QUIC 进行连接。请参阅 Protocol 参数文档以获取更多信息。

TCP 成功,UDP 失败

允许出站 TCP,但端口 7844 上的 UDP 被阻止。

cloudflared 将只能使用 http2 进行连接。如果在 UDP 被阻止时您强制使用 quic,隧道将失败。

要解决此问题:要么在本地网络防火墙上允许端口 7844 上的 UDP,要么停止强制使用 QUIC 以允许 cloudflared 改为通过 HTTP/2 进行连接。请参阅 Protocol 参数文档以获取更多信息。

UDP 和 TCP 均失败

数据包在主机与 Cloudflare Tunnel 端点之间的某个位置被丢弃。

这通常表示存在防火墙策略或上游安全控制,不允许在端口 7844 上发送出站流量(或返回流量)。

要解决此问题:在本地网络防火墙上允许端口 7844 上的所有流量。如果这不能解决问题,请与您的 ISP 或服务提供商联系以排除故障。

4. 获取帮助

如果 DNS 或网络测试失败,则可能是您的本地环境存在问题。您需要与您的管理员、ISP 或云提供商一起进行调试。如果您认为问题出在 Cloudflare 方面,请在联系支持人员时提供详细信息。

为了尽可能快地进行故障排除,请确保您的支持工单包含详尽的详细信息。您提供的上下文越多,识别和解决您问题的速度就越快。

为了确保在 联系支持人员 时能够高效解决问题,请在工单中包含尽可能多的相关细节:

这篇文档对您有帮助吗?