跳转到内容
搜索文档

提示和最佳实践

最后更新 查看 MarkdownAgent 设置

管理 Cloudflare Mesh 部署的操作指南——更新客户端、配置云提供商、与 Cloudflare Tunnel 并行运行以及常见故障排除。

更新 Mesh 节点

更新 Mesh 节点意味着更新 Linux 主机上的 cloudflare-warp 软件包。在更新期间,节点会短暂断开连接,这会中断通过其路由的流量。如果您启用了高可用性,流量将自动故障转移到备用副本。

  1. 检查当前版本:

    warp-cli --version
  2. 更新软件包:

    sudo apt-get update && sudo apt-get install --only-upgrade cloudflare-warp
  1. 检查当前版本:

    warp-cli --version
  2. 更新软件包:

    sudo yum update cloudflare-warp
  1. 验证节点是否已重新连接:

    warp-cli status

    您应该在输出中看到 Status update: Connected

使 IP 转发持久化

IP 转发允许 Mesh 节点充当网关,在网络接口和 Cloudflare 网络之间转发数据包。仅当节点宣告 CIDR 路由 时才需要此操作——如果您仅通过其 Mesh IP 访问该节点,则不需要转发。

较旧的安装可能已使用 sysctl -w 进行 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

您可以使用以下命令验证设置是否处于活动状态:

sysctl net.ipv4.ip_forward net.ipv6.conf.all.forwarding net.ipv6.conf.all.accept_ra

全新安装将自动包含此步骤。

云 VPC 部署

在云 VPC 中部署 Mesh 节点时,您可能需要配置额外的提供商设置,以便节点可以为子网上的其他设备转发流量。

Google Cloud Platform (GCP)

在您安装了 Mesh 节点的 VM 实例上启用 IP 转发

Amazon Web Services (AWS)

Microsoft Azure

在 DNS 服务器上运行 Mesh

Mesh 节点在流量和 DNS 模式下运行,这会将主机上的 DNS 查询重定向到 Cloudflare Gateway。这将与运行在同一台机器上的 DNS 服务(例如 Active Directory DNS、Pi-hole、Unbound、BIND 或 dnsmasq)产生冲突。

如果您的服务器运行了 DNS 服务,请勿在该主机上安装 Mesh 节点。相反,在同一子网上的单独机器上安装节点,并使用 CIDR 路由 使该 DNS 服务器可达。

将 Mesh 与其他 VPN 或 mesh 软件并行运行

Cloudflare One Client 会创建一个虚拟网络接口并管理系统路由表。其他执行相同操作的软件——Tailscale、WireGuard、OpenVPN、Cisco AnyConnect、GlobalProtect、ZScaler、Netskope 或任何传统的 VPN 客户端——将竞争路由的控制权。同时运行它们会导致不可预测的行为:流量可能会流向错误的隧道或完全失败。

如果您正在从其他解决方案迁移到 Cloudflare Mesh:

  1. 卸载或禁用其他客户端(例如 Linux 上的 sudo systemctl stop tailscaled && sudo systemctl disable tailscaled,或在 macOS/Windows 上从系统托盘退出应用程序)。
  2. 重启机器,以便 Cloudflare One Client 的虚拟网络接口在路由表中获得优先权。
  3. 通过运行 warp-cli status 并 ping Mesh IP 来验证连接性。

这适用于 Mesh 节点和客户端设备。

与 Cloudflare Tunnel 并行运行 Mesh

Mesh 节点(warp-cli)和 Cloudflare Tunnelcloudflared)可以运行在同一个 Linux 主机上。当您想要将 Mesh 节点用作私有网络的网关,同时还使用 Cloudflare Tunnel 发布特定应用程序时,这非常有用。

Mesh 节点会捕获出站流量并通过 Cloudflare 进行路由,这可能会阻止 cloudflared 建立其所需的出站连接。要解决此问题,请使用 分流隧道 排除 包含防火墙的隧道 中列出的主机名和 IP。

在 Mesh 和 Cloudflare WAN 之间路由

若要在 Cloudflare Mesh 和 Cloudflare WAN 之间路由流量(例如,从连接 WAN 的站点访问 Mesh 节点,反之亦然),您的账户必须处于 统一路由模式 (Beta)。统一路由为所有连接类型(Cloudflare One Client、Cloudflare Tunnel、IPsec、GRE、CNI)使用单一的路由架构。如果没有它,Mesh 和 WAN 连接将无法交换流量。

将 Workers 连接到 Mesh

Cloudflare Workers 可以使用 VPC 网络绑定(binding)连接到您的 Mesh 网络。绑定到 cf1:network 可以访问您账户中的任何 Mesh 节点、客户端设备或子网路由,而无需指定特定的隧道 UUID。

相同的绑定还处理发往公共互联网目的地的出站流量:请求通过 Cloudflare Gateway 流出,因此会强制执行您现有的 Zero Trust 流量策略,且 Worker 流量会与您的其他流量一起显示在 Gateway DNS、HTTP 和网络日志中。

有关设置说明和示例,请参阅将 Workers 连接到 Cloudflare Mesh

Cloudflare 服务的源 IP

当 Cloudflare 服务(例如 负载均衡 健康检查或 Workers)通过 Mesh 节点发送流量到您的私有网络时,流量来源于 Cloudflare 源 IP 范围(默认 100.64.0.0/12)。您可能需要配置 Cloudflare 源 IP以避免 IP 冲突。

MTU 和数据包分片

Mesh 节点使用封装来路由流量,这给每个数据包增加了开销。这对于两个 Mesh 参与者之间的流量尤为重要,因为数据包可能被封装两次(一次由发送节点封装,另一次由 Cloudflare 在传送到接收端之前封装)。

如果源设备发送的数据包接近最大大小(1,460 字节或更大),双重封装可能会使数据包超过 1,500 字节,从而导致其被丢弃。

建议

  • 将源设备(服务器、摄像头、IoT 设备)上的 MTU 设置为 1,280 字节,以确保封装后的数据包能够容纳。
  • 对于仅限 TCP 的流量,在路由器上应用 MSS 夹紧(clamping),值设为 1,240 字节(1,280 MTU - 20 字节 IP 标头 - 20 字节 TCP 标头)
  • 使用 路径 MTU 发现 (PMTUD) 的现代应用程序通常会自动处理此问题。

这篇文档对您有帮助吗?