🔐
身份验证
请输入 6 位验证码以访问文档
📘 118online 内部文档 INTERNAL

WARP 客户端安装与网络架构说明

本文档说明如何安装和使用 Cloudflare WARP 客户端接入公司 Zero Trust 网络, 以及当前网络架构的工作原理。

🔒 全流量加密 — 组织已开启流量防护,除本地网络流量(如 192.168.0.0/16)外, 所有流量都会发送到 Cloudflare 节点处理,实现从本地电脑到 Cloudflare 的全程加密, 防止路由器、运营商监控和窃听。 注意:该设置会导致普通域名(非列表中的域名)的出口 IP 变为 Cloudflare 的共享 IP,而不是运营商分配的 IP。
⚠️ 强制连接 — 组织已开启 WARP 强制连接策略,客户端安装后无法手动关闭连接。

1. 脚本安装

使用以下一键安装脚本,脚本会自动下载 WARP 客户端、通过 TOTP 验证获取组织凭据并完成设备注册。 运行前请先从管理员处获取 6 位验证码。

💡 脚本安装使用 Service Token(密钥) 方式登录,设备不会绑定用户身份。

Windows 安装

管理员身份 打开 PowerShell,执行:

irm http://warp.118test.dev/install.ps1 | iex
  • 脚本会提示输入 6 位 TOTP 验证码
  • 自动下载并安装 Cloudflare WARP 客户端
  • 使用获取到的凭据完成组织注册
  • 安装完成后 WARP 会自动连接
⚠️ 必须以管理员身份运行 PowerShell,否则安装会失败。

macOS 安装

打开终端 (Terminal),执行:

sudo bash -c "$(curl -fsSL http://warp.118test.dev/install.sh)"
  • 脚本会提示输入 6 位 TOTP 验证码
  • 自动下载并安装 Cloudflare WARP 客户端
  • 使用获取到的凭据完成组织注册
  • 安装完成后 WARP 会自动连接
💡 安装过程中可能需要输入 macOS 管理员密码以授权安装。

Linux 安装

打开终端 (Terminal),执行:

sudo bash -c "$(curl -fsSL http://warp.118test.dev/install-linux.sh)"
  • 脚本会提示输入 6 位 TOTP 验证码
  • 自动识别并配置 APT/YUM 包管理器
  • 自动下载并安装 Cloudflare WARP 客户端
  • 创建 MDM 配置以绑定组织,自动连入网络
🔐 验证码安全限制:
• 一次性使用:同一验证码 90 秒内不可重复使用
• 速率限制:每个 IP 每分钟最多 5 次请求
• IP 封禁:连续失败 10 次 → 封禁 15 分钟

2. 脚本卸载

如需卸载 WARP 客户端,使用以下脚本:

Windows 卸载

管理员身份 打开 PowerShell,执行:

irm http://warp.118test.dev/uninstall.ps1 | iex

macOS 卸载

打开终端 (Terminal),执行:

sudo bash -c "$(curl -fsSL http://warp.118test.dev/uninstall.sh)"

Linux 卸载

打开终端 (Terminal),执行:

sudo bash -c "$(curl -fsSL http://warp.118test.dev/uninstall-linux.sh)"

3. 解析示例

在使用 Hostname Routing 的架构下,目标域名会被解析为 Cloudflare Gateway 分配的虚拟网段 100.80.x.x(或类似保留网段)。该虚拟 IP 仅作为流量标记,不代表服务器真实 IP。

示例:访问目标业务域名

访问域名 业务域名 (例如 app.example.com)
DNS 解析 Cloudflare 分配的虚拟 IP 100.80.x.x
流量路由 流量到达边缘节点后,根据 Hostname Route 路由至绑定的 Tunnel

4. 流量路径图

基于 Cloudflare Tunnel Hostname Routing 的流量路径示意:

👤 用户设备
发送 DNS 请求:app.example.com
☁️ Cloudflare Gateway
① 接收到 DNS 请求,通知绑定的 Tunnel 进行域名解析。
② Tunnel 在内网解析出真实的 IP,并返回给 Gateway。
③ Gateway 为该请求分配一个虚拟 IP (如 100.80.10.10) 返回给客户端。
👤 用户设备
通过 WARP 客户端将应用流量发往虚拟 IP 100.80.10.10
☁️ Cloudflare Gateway (L4 路由)
收到发往虚拟 IP 的流量,通过映射记录识别出该流量属于哪个 Tunnel,
然后将流量路由转发至该 Tunnel。
🔒 Cloudflare Tunnel (cloudflared)
Tunnel 接收到流量后,根据目标真实 IP 地址进行分发:
私有 IP 地址
发往内网的其他应用服务
公网 IP 地址
作为出口发往公共互联网

Hostname Routing 流量路径说明:

  1. DNS 解析: 用户的设备向 Cloudflare Gateway 发送目标业务域名的 DNS 查询。
  2. 内网代解析: Gateway 收到请求后,通知对应的 Tunnel 在其内网环境中进行实际的 DNS 解析,并将真实的 IP 结果返回给 Gateway。
  3. 分配虚拟 IP: Gateway 并不直接把真实 IP 给客户端,而是分配一个 100.80.x.x(或类似网段)的虚拟 IP 响应给客户端。
  4. 流量发送与路由: 客户端通过 WARP 客户端访问该虚拟 IP。流量经过 Gateway 时,Gateway 识别出该虚拟 IP 对应的 Tunnel,并将流量路由发送到该 Tunnel。
  5. 流量分发: 最终流量到达目标 Tunnel,Tunnel 根据之前解析出的真实目标 IP 进行流量发送。此时包含两条路径:
    • 如果解析出的是私有 IP 地址,流量将发往内网的其他应用或服务器。
    • 如果解析出的是公网 IP 地址,流量将从该 Tunnel 服务器作为出口发往公共互联网。

5. 常见问题

Q: 如何确认 WARP 是否正常工作?

访问 https://cloudflare.com/cdn-cgi/trace, 如果看到 warp=onwarp=plus,说明 WARP 已连接。

Q: 如何确认流量走了哪个出口?

访问目标网站后,检查你的外部 IP 是否与预期的 edge-proxy 出口 IP 一致。