双端WARP互通方案


1. 双端WARP互通方案

USER:

梳理:两端子网通过 Cloudflare WARP 互通

目标

让 A、B 两个分部的普通设备(不装 WARP 客户端)互相访问对方内网。


核心原理

Node 服务器作为"隧道网关",配合 Cloudflare Mesh 网络把两个局域网连接起来。关键在于:两端的路由器知道"去对面网段要找谁"。


三个配置步骤

步骤一:Cloudflare 后台声明路由

  • 位置:Zero Trust → Networking → Routes → Mesh CIDR
  • A 分部:Connector = A 的 Node,CIDR = A 的子网(如 192.168.1.0/24)
  • B 分部:Connector = B 的 Node,CIDR = B 的子网(如 192.168.2.0/24)

告诉 Cloudflare:这两台 Node 各自负责转发自家网段的流量。


步骤二:Node 服务器关闭 NAT,改为纯路由

目的:让两端设备看到彼此的真实内网 IP(而不是被伪装成 Node 的 IP)。

操作命令
开启 IP 转发sysctl -w net.ipv4.ip_forward=1
清除 NAT 伪装iptables -t nat -F POSTROUTING
允许转发iptables -P FORWARD ACCEPT

⚠️ 此前为 WARP 客户端配置的 MASQUERADE 规则必须清掉,否则回程流量会被错误改写源 IP。


步骤三:两端主路由器添加静态路由(最关键 🔑)

端点目的网段下一跳(Gateway)
A 分部路由器192.168.2.0/24(B 网段)A 分部 Node 的局域网 IP
B 分部路由器192.168.1.0/24(A 网段)B 分部 Node 的局域网 IP

路由器不知道对端子网在哪,只有加上这条路由,流量才会被交给 Node 转发出去。


完整流量路径

TEXT
A 部 PC (192.168.1.5)
  → A 主路由器(查静态路由,指向 A-Node)
  → A-Node(通过 Cloudflare Mesh 加密隧道)
  → B-Node(解密)
  → B 部服务器 (192.168.2.10)
回包:原路对称返回

排障要点

  1. Node 自身防火墙(ufw / firewalld)是否放行?必要时临时关闭测试。
  2. 主路由器是否支持静态路由?光猫/低端路由器可能不支持,此时可改为在单台设备上手动添加路由表。
  3. 确认 NAT 已清除:最常见的失败原因是 MASQUERADE 未清,导致 B 部服务器回包找不到正确路由。
  4. 先在同一网段内 ping Node 网关,确认 Node 可达后,再排查端到端连通性。