对于生产部署,您可以以主备(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 节点时,默认会启用高可用性。要创建新节点:
-
在 Cloudflare 仪表板中,前往 Networking(网络) > Mesh。
Go to Mesh ↗ -
选择 Add a node(添加节点)。
-
按照设置向导进行操作。节点创建时会自动启用 HA。
-
复制安装命令并在您的 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 并使用相同的节点令牌进行注册。
-
在 Cloudflare 仪表板中,前往 Networking(网络) > Mesh。
Go to Mesh ↗ -
选择您的 Mesh 节点。
-
选择 Add a replica(添加副本)。
-
对话框会显示安装命令和节点的令牌。
-
在新的 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 --systemsudo 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 --systemsudo warp-cli connector new <TOKEN> && sudo warp-cli connect-
获取节点的令牌:
curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/warp_connector/{node_id}/token" \ -H "Authorization: Bearer {api_token}"响应包含令牌字符串。
-
在新的 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 --systemsudo 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 --systemsudo warp-cli connector new <TOKEN> && sudo warp-cli connect
新副本将处于备用模式,直到活动副本断开连接。
-
在 Cloudflare 仪表板中,前往 Networking(网络) > Mesh。
Go to Mesh ↗ -
选择启用了 HA 的节点。HA 节点在概览表中会显示 HA 徽章。
-
节点详情页面为每个副本显示一个选项卡。每个选项卡显示:
- 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_status(active 或 passive)、连接详情以及它所连接的 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"
}
]
}除了活动副本断开连接时的自动故障转移外,您还可以手动将被动副本提升为活动副本。
-
在 Cloudflare 仪表板中,前往 Networking(网络) > Mesh。
Go to Mesh ↗ -
选择启用了 HA 的节点。
-
选择您要提升的被动副本的选项卡。
-
选择 Promote to active(提升为活动)。
-
在确认对话框中,选择 Promote to active(提升为活动) 以进行确认。
流量将立即重新路由到被提升的副本。之前活动的副本将切换为被动备用状态。
要手动触发故障转移,请发送一个带有您要提升的副本的 client_id 的 PUT 请求:
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)流量,没有客户端的故障转移。