Cloudflare隧道

使用Cloudflare隧道可通过互联网安全地远程访问本地服务,无需端口转发或公共IP地址。连接是从本地系统建立到Cloudflare的。因此,即使在CG-NAT或限制性互联网连接后面的网络也可以安全地访问。

注意事项: Cloudflare隧道仅适用于Core 2及更高版本。

注意: Antcas Control支持通过自己的隧道进行连接,并且可以在不配置的情况下公开提供可视化界面。

先决条件

使用Cloudflare隧道需要一个Cloudflare账户和一个托管域名。管理是通过Cloudflare API自动完成的。所用的API令牌需要相应权限。请参阅下文中的配置部分。

如果服务器位于严格防火墙后面,必须确保可以建立到Cloudflare的出站连接。特别是必须允许访问端口7844。有关更多信息,请参阅以下链接:
https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/troubleshoot-tunnels/connectivity-prechecks/

工作原理

Cloudflare隧道会建立一个出站的加密连接到Cloudflare。然后,外部用户可以通过配置的域名访问可视化界面或其他应用程序。该连接是通过Cloudflare基础设施进行中转的,无需在路由器上打开入站端口。

应用程序的端口被分配给虚拟本地网络接口,并通过隧道安全地发布。

配置

有多种配置方式可供选择。以下章节将解释各种配置和应用场景的具体操作步骤。

本地管理配置

在这种情况下,隧道配置会保存在Antcas Control中,然后与云同步。这种方法的优点在于可以轻松配置和管理隧道。但是需要注意的是,所有有权限配置服务器的用户也都能对云中的隧道配置进行更改。

在您的Cloudflare账户中创建一个新的API令牌。此令牌必须具有以下权限:

类型 对象 权限
账户 Cloudflare隧道 编辑
区域 DNS 编辑

注意: DNS区域至少必须分配给账户,以便可以确定账户。

然后,在基础设施下的服务器 网络 VPN和隧道中添加一个新的Cloudflare隧道。每个隧道都会创建一个虚拟网络接口,例如cf-tunnel0。建议先完成隧道的配置,然后再配置应用程序。

注意: 如果选择现有隧道,则可能会覆盖隧道的身份验证以建立连接。Antcas Control每次仅支持一个隧道与Cloudflare同时建立连接。

自动配置需要使用Cloudflare API令牌。通过此令牌,Antcas Control可以自动检索、创建和管理所需的DNS记录和隧道配置。有关如何创建API令牌的说明,请参阅Cloudflare帮助中心中的以下链接:
https://developers.cloudflare.com/fundamentals/api/get-started/create-token/

验证API令牌后,可以选择账户和隧道。您可以创建一个新的隧道,该隧道将获得服务器名称加上接口名称。例如办公楼 - cf-tunnel0

注意: 隧道配置完全通过API自动完成。请确保在配置时,服务器可以与Cloudflare建立连接。

创建隧道后,您应该将所有需要通过隧道访问的可视化界面分配给网络接口。然后,这些可视化界面可以作为应用程序添加到隧道中。应用程序位于配置的隧道层级之上。

在配置中选择域名并为子域名指定一个名称。然后,选择端点。

注意: 如果该名称已用于其他隧道,则不会分配该名称,并且连接将像以前一样建立。如果更改名称,Antcas Control会删除子域名(如果由Antcas管理了隧道的ID)。

零信任配置

本地管理配置的替代方案是零信任配置。在这种情况下,配置是在Cloudflare控制台中完成的,然后与Antcas Control同步。这种方法的优点在于通过Antcas Control无法访问Cloudflare配置。

对于此配置,接口不一定需要分配端口。可以使用网络中的任何地址作为端点。因此,例如可以公开主接口的端口或网络中的其他服务。但是与常规配置不同的是,localhost不能用作端点。

如果连接是非加密的,则必须在Cloudflare控制台中将选项noTLSVerify设置为TRUE。但是,出于安全原因,不建议使用非加密连接访问服务器外部的服务。

对于配置,在基础设施下的服务器 网络 VPN和隧道中添加一个新的Cloudflare隧道。每个隧道都会创建一个虚拟网络接口,例如cf-tunnel0。对于设置,仅需要零信任隧道的令牌。该令牌可以直接从Cloudflare控制台复制并粘贴。如果粘贴的文本还包含完整的安装命令,则会自动删除,以便只存储令牌。