Mesh 节点是在无界面模式下运行 Cloudflare One Client(cloudflare-warp 软件包)的 Linux 服务器。该节点会以自己的 Mesh IP 加入您的 Mesh。它还可以将流量路由到其后方的私有子网。
使用本指南在 Linux 主机上直接安装 Mesh 节点。若要在主机上不安装软件包的情况下运行 Mesh 节点,请参阅在 Docker / Kubernetes 中运行 Mesh。
Mesh 节点支持以下 Linux 发行版和硬件:
| OS 版本 | RHEL 9 1、RHEL 10、Debian 12、Debian 13、Fedora 43、Fedora 44、Ubuntu 22.04 LTS、Ubuntu 24.04 LTS、Ubuntu 26.04 LTS |
| 处理器 | AMD64 / x86-64 或 ARM64 / AArch64 |
| vCPU | 最低 3 个,推荐 4 个 |
| 无桌面环境的 RAM | 最低 1 GB,推荐 2 GB(例如 Ubuntu Server) |
| 带桌面环境的 RAM | 最低 4 GB,推荐 8 GB(例如 Ubuntu GNOME) |
| 磁盘空间 | 最低 250 MiB,推荐 500 MiB |
| 网络接口类型 | Wi-Fi 或 LAN |
| MTU | 建议 1381 字节 2 |
-
在 RHEL 9 及更高版本上,安装
cloudflare-warp之前,请启用 Extra Packages for Enterprise Linux (EPEL) ↗ 仓库。EPEL 提供 client UI 所需的依赖项。有关 RHEL 命令,请参阅 EPEL 快速入门 ↗。 ↩
Cloudflare One Client 版本 2026.6.822.0 及更高版本在 RHEL 9 和 RHEL 10 上支持 Cloudflare Mesh。有关支持日期,请参阅支持生命周期。
在安装客户端之前,请先创建 Mesh 节点并获取其 token。
-
在 Cloudflare 仪表板中,前往 Networking(网络) > Mesh。
前往 Mesh ↗ -
选择 Add participant(添加参与者) > Add node(添加节点)。
-
输入节点的名称(例如,
web-server或staging-db)。 -
选择 Create node(创建节点)。
-
选择 Debian / Ubuntu 或 RHEL。仪表板会显示 node 的安装和注册命令。注册命令包含 node token。
使用具有 Cloudflare One Connectors Write 或 Cloudflare One Connector: WARP Write 权限的 API token,创建节点并获取其连接器 token:
set -euo pipefail
NODE_RESPONSE=$(
curl --fail-with-body --silent --show-error \
"https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/warp_connector" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--header "Content-Type: application/json" \
--data '{"name":"web-server"}'
)
jq -e '.success == true and (.result.id | type == "string")' \
<<< "$NODE_RESPONSE" > /dev/null
NODE_ID=$(jq -r '.result.id' <<< "$NODE_RESPONSE")
TOKEN_RESPONSE=$(
curl --fail-with-body --silent --show-error \
"https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/warp_connector/$NODE_ID/token" \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
)
MESH_NODE_TOKEN=$(jq -er \
'select(.success == true) | .result | select(type == "string" and length > 0)' \
<<< "$TOKEN_RESPONSE")请先安装 jq,然后在运行命令之前设置 ACCOUNT_ID 和 CLOUDFLARE_API_TOKEN。命令会在发生 HTTP 或 API 错误时停止。请在命令返回零且设置 NODE_ID 和 MESH_NODE_TOKEN 后再继续。如果创建节点后 token 获取失败,仅使用现有 NODE_ID 重试 token 请求。不要重新执行节点创建请求。
如果这是您的首个 Mesh 节点,请配置必需的账户设置。仪表板向导会为新账户完成这些配置。
从 Cloudflare 软件包仓库安装 cloudflare-warp 软件包。请选择对应发行版的章节。
-
添加 Cloudflare 软件包签名密钥:
curl -fsSL https://pkg.cloudflareclient.com/pubkey.gpg | sudo gpg --yes --dearmor -o /usr/share/keyrings/cloudflare-warp-archive-keyring.gpgapt使用此密钥验证软件包来自 Cloudflare。 -
添加 Cloudflare 仓库:
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$VERSION_CODENAME变量会解析为您的发行版代号(例如noble或trixie)。这将选择适用于您发行版的软件包构建。 -
安装软件包:
sudo apt-get update && sudo apt-get install -y cloudflare-warp
-
启用 Extra Packages for Enterprise Linux (EPEL) ↗ 仓库。EPEL 提供 RHEL 9 及更高版本上的 Cloudflare One Client 所需依赖项。EPEL 软件包可能依赖 CodeReady Builder (CRB) 仓库,因此请先启用 CRB。
默认 RHEL 仓库中不包含
epel-release软件包。启用 CodeReady Builder,然后为你的 RHEL 版本安装 EPEL release 软件包:sudo subscription-manager repos --enable codeready-builder-for-rhel-$(rpm -E %rhel)-$(arch)-rpms && sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-$(rpm -E %rhel).noarch.rpmsubscription-manager命令要求 host 已注册到 Red Hat Subscription Management。在使用 Red Hat Update Infrastructure (RHUI) 的 pay-as-you-go 云镜像上,CodeReady Builder 仓库的名称不同。请参阅云提供商文档启用该仓库,然后运行dnf install命令。在 Rocky Linux 和 AlmaLinux 等兼容 RHEL 的发行版上,默认仓库中包含
epel-release。启用 CRB,然后安装它:sudo dnf config-manager --set-enabled crb && sudo dnf install -y epel-release -
添加 Cloudflare 仓库:
curl -fsSL https://pkg.cloudflareclient.com/cloudflare-warp-ascii.repo | sudo tee /etc/yum.repos.d/cloudflare-warp.repo仓库文件会将
dnf指向适用于你的 RHEL 版本的软件包 build 和 Cloudflare signing key。 -
安装软件包:
sudo dnf install -y cloudflare-warp
要将主机注册为 Mesh 节点并连接,请运行以下命令。将 <MESH_NODE_TOKEN> 替换为前提条件中的节点 token。
sudo warp-cli --accept-tos connector new <MESH_NODE_TOKEN> && sudo warp-cli --accept-tos connect此命令会运行两个 warp-cli 子命令:
| 命令 | 用途 |
|---|---|
connector new |
将主机注册为该 token 所标识的 Mesh 节点。它不会注册用户设备。 |
connect |
将节点连接到 Cloudflare。客户端会在重启后自动重新连接。 |
--accept-tos 标志 |
无需交互式提示即接受 Cloudflare One Client 服务条款。 |
如果您在多台主机上使用同一 token,每台主机都会作为同一节点的副本加入。更多信息请参阅高可用性。
-
在节点上检查连接状态:
warp-cli statusStatus update: Connected -
在 Cloudflare 仪表板中,前往 Networking(网络) > Mesh。确认节点显示为 Online,并记下其 Mesh IP。
-
从已注册的客户端设备测试节点上的服务。例如,测试 SSH:
nc -vz <MESH_IP> 22Connected(已连接) 状态并不能证明对等端可以访问该节点。请验证您计划使用的应用协议。
IP 转发可让节点在 Mesh 与其本地网络之间传递数据包。仅当节点将宣告 CIDR 路由,以使其后方的子网可访问时,才需要开启。仅通过节点自身的 Mesh IP 访问该节点时不需要开启。您可以随时开启,无论是在连接节点之前还是之后。
要开启转发并在重启后保持生效,请运行:
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此命令会将三项内核设置写入 /etc/sysctl.d/ 中的文件,然后重新加载所有设置:
| 设置 | 用途 |
|---|---|
net.ipv4.ip_forward = 1 |
在接口之间转发 IPv4 数据包。 |
net.ipv6.conf.all.forwarding = 1 |
在接口之间转发 IPv6 数据包。 |
net.ipv6.conf.all.accept_ra = 2 |
在开启转发后继续接受 IPv6 路由器通告。若不设置,主机可能会丢失 IPv6 路由。 |
99-zzz- 前缀会使该文件最后加载,因此 /etc/sysctl.d/ 中的其他文件无法覆盖它。
如果主机运行在云 VPC 中,您可能还需要提供商设置,例如在 AWS 上关闭源/目标检查。更多信息请参阅云 VPC 部署。
| 命令 | 用途 |
|---|---|
warp-cli status |
显示当前连接状态。 |
warp-cli connect |
重新连接节点。 |
warp-cli disconnect |
断开节点连接但不取消注册。 |
warp-cli --version |
显示已安装的客户端版本。 |
更新客户端会使节点短暂断开。如果您运行了高可用性副本,流量会故障转移到备用节点。
sudo apt-get update && sudo apt-get install --only-upgrade -y cloudflare-warpsudo dnf upgrade -y cloudflare-warp更新后,运行 warp-cli status 以确认节点已重新连接。
客户端作为 warp-svc systemd 服务运行。要查看最近的服务日志,请运行:
sudo journalctl -u warp-svc --since "15 minutes ago"要为 Cloudflare 支持收集完整诊断包,请运行 warp-diag。更多信息请参阅诊断日志。
-
在主机上删除注册:
sudo warp-cli registration delete -
卸载软件包:
sudo apt-get remove -y cloudflare-warpsudo dnf remove -y cloudflare-warp -
(可选)如果您为此节点开启了 IP 转发,请移除该设置:
sudo rm /etc/sysctl.d/99-zzz-cloudflare-warp-connector.conf && sudo sysctl --system -
在 Cloudflare 仪表板中,前往 Networking(网络) > Mesh 并删除该节点。如果其他副本仍在使用该节点,请跳过此步骤。
在节点上运行 warp-cli status。如果状态不是 Connected:
- 运行
warp-cli connect。 - 确认防火墙允许 Cloudflare One Client 端口和 IP。
- 查看服务日志。
确认您使用 Mesh 节点 token 运行了 warp-cli connector new。如果该主机之前已作为用户设备注册,请运行 sudo warp-cli registration delete,然后使用节点 token 重新注册。
确认已开启 IP 转发:
sysctl net.ipv4.ip_forward net.ipv6.conf.all.forwarding两个值都必须为 1。然后确认目标网络可以将回程流量路由到 Mesh IP 范围(100.96.0.0/12)。更多信息请参阅回程流量路由。
运行 dnf repolist,确认已启用 EPEL 和 CodeReady Builder(Rocky Linux 和 AlmaLinux 上为 crb)。有关详细信息,请参阅 EPEL 快速入门指南 ↗。
对于一般的客户端问题,请参阅对 Cloudflare One Client 进行故障排除。