在每台 Linux 服务器上安装一个 Cloudflare Mesh node。每台服务器都会获得一个专用 Mesh IP,因此可以通过 Cloudflare 访问另一台服务器上的服务。两台服务器都不需要公共 IP 地址,也无需向公共互联网公开服务。
此设置用于访问在 node 自身上运行的服务。要改为连接 node 后面的 host,请按照连接两个站点操作。
- 每个站点有一个受支持的 Linux host,具有稳定的本地 IP 和管理员访问权限
- 如果要测试两个方向,请在每台服务器上运行一个监听服务,例如在 TCP 端口
22上运行 SSH - 在将要运行 TCP 测试的服务器上安装 Netcat (
nc) - 两台服务器均可出站访问 Cloudflare One Client IP 和端口
开始之前,请为你的账户设置 Cloudflare Mesh。设置向导会配置设备注册、Mesh IP 分配、已注册设备的可达性和 Gateway 代理。
如果你的账户已使用 Cloudflare One,请验证所需的账户设置。设置向导不会覆盖现有设置。
要在 container 中运行 node,请参阅在 Docker 或 Kubernetes 中运行 Mesh。
-
在 Cloudflare 仪表板中,转到 Networking > Mesh。
前往 Mesh ↗ -
选择 Add participant(添加参与者) > Add node(添加节点)。
-
将 node 命名为
server-a,然后选择 Create node。 -
选择 Linux,然后在第一台服务器上运行显示的安装和注册命令。请妥善保管 node token。
-
确认
server-a在 Mesh 仪表板中显示为 Online。记录其 Mesh IP。
-
在 Networking > Mesh 中,选择 Add participant > Add node。
前往 Mesh ↗ -
将新 node 命名为
server-b,选择 Create node,然后选择 Linux。 -
在第二台服务器上运行新的安装和注册命令。不要重复使用第一个 node token:每台服务器都需要自己的 node 身份。
-
确认
server-b显示为 Online,并记录其 Mesh IP。
当服务在 node 自身上运行时,不需要 CIDR route、router 更改或 IP forwarding。只有 node 为其他 host 路由流量时才需要 IP forwarding。
在每台目标服务器上,确认服务监听 Mesh IP 或所有 interface。仅绑定到单独本地网络 IP 的服务无法接受发往其 Mesh IP 的连接。在 host firewall 中,允许来自另一台服务器 Mesh IP 的所需端口,并检查所有云 firewall 或 security group。将这些规则限定到 Mesh IP,而不是向公共互联网开放端口。
确认 Gateway 代理支持该服务协议,并且所有 Gateway 网络策略均允许该连接。
如果两台服务器都运行 SSH,请使用另一台服务器的 Mesh IP 测试两个方向:
-
在
server-a上测试server-b的 TCP 端口22:nc -vz <SERVER-B-MESH-IP> 22 -
在
server-b上测试server-a的 TCP 端口22:nc -vz <SERVER-A-MESH-IP> 22
将 Mesh IP 占位符替换为仪表板中显示的地址。如果使用其他服务,请替换为其端口。Online 表示 node 已连接到 Cloudflare。服务测试成功表示流量能够到达目标。只有启用 ICMP Gateway 代理时,ping 才有用。
如果测试失败,请参阅排查 Cloudflare Mesh 连接问题。
使用 Gateway 网络策略控制哪些来源可以访问各目标 IP 和端口。对于已注册的客户端设备,可以将网络策略与设备姿态检查结合使用。
在 Gateway 网络日志中查看允许和阻止的连接。客户端设备流量包含已注册用户的身份。Mesh 节点流量使用身份 warp_connector@<your-team-name>.cloudflareaccess.com。
- 通过路由 subnet 连接两个专用网络。
- 通过 Mesh IP 连接两台设备。
- 使用 VPC Network 绑定(binding)将 Workers 连接到 Mesh。