跳转到内容
搜索文档

高可用性

最后更新 查看 MarkdownAgent 设置

对于生产部署,您可以以主备(active-passive)模式运行 Mesh 节点的多个副本。所有副本共享相同的节点身份并宣告相同的路由。如果主副本发生故障,Cloudflare 会自动提升备用副本。

何时使用高可用性

高可用性为 Mesh 节点宣告的 CIDR 路由前缀提供了弹性。当主副本断开连接时,Cloudflare 会提升一个备用副本,以便流向所宣告子网的流量能够继续流动。

这意味着高可用性(HA)对于已配置路由的节点非常有用——这些节点充当其背后私有网络的子网网关。如果节点仅用于直接的 Mesh IP 连接(无路由),则 HA 的作用有限,因为节点的 Mesh IP 与单个副本绑定。

工作原理

当您创建启用了高可用性的 Mesh 节点时,Cloudflare 会为该节点生成一个令牌。您可以使用此令牌在多个 Linux 主机上安装 Cloudflare One Client。每个主机都注册为同一个节点的副本。

  • 所有副本均宣告相同的 CIDR 路由。
  • 一次只能有一个副本处于活动状态。其他副本处于被动备用状态。
  • 如果活动副本断开连接,Cloudflare 会自动提升一个被动副本。
  • 故障转移由 Cloudflare 的网络处理。
flowchart LR
  subgraph replicas["Mesh 节点: web-server"]
    R1["副本 1 <br> (活动)"]
    R2["副本 2 <br> (备用)"]
    R3["副本 3 <br> (备用)"]
  end
  CF((Cloudflare)) <--> R1
  CF -. 故障转移 .-> R2
  CF -. 故障转移 .-> R3
  client["客户端设备"] <--> CF

创建具有高可用性的节点

当您通过仪表板创建 Mesh 节点时,默认会启用高可用性。要创建新节点:

  1. 在 Cloudflare 仪表板中,前往 Networking(网络) > Mesh

    Go to Mesh ↗
  2. 选择 Add a node(添加节点)

  3. 按照设置向导进行操作。节点创建时会自动启用 HA。

  4. 复制安装命令并在您的 Linux 主机上运行。

要通过 API 创建具有高可用性的节点,请在请求正文中设置 ha: true

curl -X POST "https://api.cloudflare.com/client/v4/accounts/{account_id}/warp_connector" \
  -H "Authorization: Bearer {api_token}" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "web-server",
    "ha": true
  }'

响应中包含一个 token field。使用此令牌来注册副本。

添加副本

要将副本添加到现有的高可用性节点,请在新的 Linux 主机上安装 Cloudflare One Client 并使用相同的节点令牌进行注册。

  1. 在 Cloudflare 仪表板中,前往 Networking(网络) > Mesh

    Go to Mesh ↗
  2. 选择您的 Mesh 节点。

  3. 选择 Add a replica(添加副本)

  4. 对话框会显示安装命令和节点的令牌。

  5. 在新的 Linux 主机上,运行对话框中显示的安装命令。

安装命令

curl -fsSL https://pkg.cloudflareclient.com/pubkey.gpg | sudo gpg --yes --dearmor -o /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg &&
echo "deb [signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ $(. /etc/os-release && echo $VERSION_CODENAME) main" | sudo tee /etc/apt/sources.list.d/cloudflare-client.list &&
sudo apt-get update -qq && sudo apt-get install -y -qq cloudflare-warp &&
printf 'net.ipv4.ip_forward = 1\nnet.ipv6.conf.all.forwarding = 1\nnet.ipv6.conf.all.accept_ra = 2\n' | sudo tee /etc/sysctl.d/99-zzz-cloudflare-warp-connector.conf &&
sudo sysctl --system
sudo warp-cli connector new <TOKEN> && sudo warp-cli connect

在 RHEL 9 及更高版本上,在安装 cloudflare-warp 之前启用 Extra Packages for Enterprise Linux (EPEL) 软件源。EPEL 提供了 Cloudflare One Client UI 所需的依赖项:

sudo dnf install -y epel-release

然后安装该包:

curl -fsSl https://pkg.cloudflareclient.com/cloudflare-warp-ascii.repo | sudo tee /etc/yum.repos.d/cloudflare-warp.repo &&
sudo yum install -y cloudflare-warp &&
printf 'net.ipv4.ip_forward = 1\nnet.ipv6.conf.all.forwarding = 1\nnet.ipv6.conf.all.accept_ra = 2\n' | sudo tee /etc/sysctl.d/99-zzz-cloudflare-warp-connector.conf &&
sudo sysctl --system
sudo warp-cli connector new <TOKEN> && sudo warp-cli connect
  1. 获取节点的令牌:

    curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/warp_connector/{node_id}/token" \
    	-H "Authorization: Bearer {api_token}"

    响应包含令牌字符串。

  2. 在新的 Linux 主机上安装客户端并注册:

    curl -fsSL https://pkg.cloudflareclient.com/pubkey.gpg | sudo gpg --yes --dearmor -o /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg &&
    echo "deb [signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ $(. /etc/os-release && echo $VERSION_CODENAME) main" | sudo tee /etc/apt/sources.list.d/cloudflare-client.list &&
    sudo apt-get update -qq && sudo apt-get install -y -qq cloudflare-warp &&
    printf 'net.ipv4.ip_forward = 1\nnet.ipv6.conf.all.forwarding = 1\nnet.ipv6.conf.all.accept_ra = 2\n' | sudo tee /etc/sysctl.d/99-zzz-cloudflare-warp-connector.conf &&
    sudo sysctl --system
    sudo warp-cli connector new <TOKEN> && sudo warp-cli connect

    在 RHEL 9 及更高版本上,在安装 cloudflare-warp 之前启用 Extra Packages for Enterprise Linux (EPEL) 软件源。EPEL 提供了 Cloudflare One Client UI 所需的依赖项:

    sudo dnf install -y epel-release

    然后安装该包:

    curl -fsSl https://pkg.cloudflareclient.com/cloudflare-warp-ascii.repo | sudo tee /etc/yum.repos.d/cloudflare-warp.repo &&
    sudo yum install -y cloudflare-warp &&
    printf 'net.ipv4.ip_forward = 1\nnet.ipv6.conf.all.forwarding = 1\nnet.ipv6.conf.all.accept_ra = 2\n' | sudo tee /etc/sysctl.d/99-zzz-cloudflare-warp-connector.conf &&
    sudo sysctl --system
    sudo warp-cli connector new <TOKEN> && sudo warp-cli connect

新副本将处于备用模式,直到活动副本断开连接。

查看副本

  1. 在 Cloudflare 仪表板中,前往 Networking(网络) > Mesh

    Go to Mesh ↗
  2. 选择启用了 HA 的节点。HA 节点在概览表中会显示 HA 徽章。

  3. 节点详情页面为每个副本显示一个选项卡。每个选项卡显示:

    • Active(活动)Passive(被动) 徽章
    • Mesh IP(IPv4 和 IPv6)
    • 边缘数据中心
    • 源 IP
    • 平台、版本和设备名称
    • 连接自(时间戳)

要查看所有副本及其 HA 状态,请查询连接 API 端点:

curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/warp_connector/{node_id}/connections" \
  -H "Authorization: Bearer {api_token}"

响应中包含每个副本及其 ha_statusactivepassive)、连接详情以及它所连接的 Cloudflare 数据中心:

{
	"success": true,
	"result": [
		{
			"id": "bf69f118-238e-11f1-b113-ee02f3be4a5b",
			"conns": [
				{
					"colo_name": "lhr16",
					"origin_ip": "34.105.147.200",
					"opened_at": "2026-03-19T12:25:47.400Z"
				}
			],
			"run_at": "2026-03-19T12:25:47.400Z",
			"ha_status": "active"
		},
		{
			"id": "e07272a6-21fc-11f1-8997-e28f01ba3991",
			"conns": [
				{
					"colo_name": "lhr14",
					"origin_ip": "35.246.81.139",
					"opened_at": "2026-03-19T02:38:37.203Z"
				}
			],
			"run_at": "2026-03-19T02:38:37.203Z",
			"ha_status": "passive"
		}
	]
}

手动故障转移

除了活动副本断开连接时的自动故障转移外,您还可以手动将被动副本提升为活动副本。

  1. 在 Cloudflare 仪表板中,前往 Networking(网络) > Mesh

    Go to Mesh ↗
  2. 选择启用了 HA 的节点。

  3. 选择您要提升的被动副本的选项卡。

  4. 选择 Promote to active(提升为活动)

  5. 在确认对话框中,选择 Promote to active(提升为活动) 以进行确认。

流量将立即重新路由到被提升的副本。之前活动的副本将切换为被动备用状态。

要手动触发故障转移,请发送一个带有您要提升的副本的 client_idPUT 请求:

curl -X PUT "https://api.cloudflare.com/client/v4/accounts/{account_id}/warp_connector/{node_id}/failover" \
  -H "Authorization: Bearer {api_token}" \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": "e07272a6-21fc-11f1-8997-e28f01ba3991"
  }'

连接端点获取 client_id。使用您要提升的副本的 id 字段。

注意事项

设置要求

  • 高可用性在节点创建时设置,之后无法更改。
  • 您必须在至少两个主机上安装客户端才能使故障转移正常工作。单个副本意味着没有冗余。
  • 高可用性需要 MASQUE 传输协议。WireGuard 不支持 HA。Mesh 节点默认使用 MASQUE。

网络配置

  • 所有副本必须位于同一子网上,并且具有相同的网络路由配置(分流隧道、静态路由)。
  • HA 为 CIDR 路由前缀提供弹性。没有路由的节点无法从 HA 故障转移中受益。

故障转移行为

  • 故障转移时间取决于 Cloudflare 检测活动副本断开连接的速度(通常为几秒钟)。
  • 入站流量(从 Mesh 客户端到子网)在 Cloudflare 网络上自动进行故障转移。Cloudflare 会将流量路由到新提升的活动副本。
  • 出站流量(从子网中的设备通过 Mesh 节点)不会自动进行故障转移。您的环境必须检测到不同的副本已被提升为活动副本,并更新路由表以通过当前活动的主机发送流量。目前对于上路(on-ramp)流量,没有客户端的故障转移。

这篇文档对您有帮助吗?