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 分钟
• 一次性使用:同一验证码 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
发送 DNS 请求:app.example.com
▼
☁️ Cloudflare Gateway
① 接收到 DNS 请求,通知绑定的 Tunnel 进行域名解析。
② Tunnel 在内网解析出真实的 IP,并返回给 Gateway。
③ Gateway 为该请求分配一个虚拟 IP (如
② Tunnel 在内网解析出真实的 IP,并返回给 Gateway。
③ Gateway 为该请求分配一个虚拟 IP (如
100.80.10.10) 返回给客户端。
▼
👤 用户设备
通过 WARP 客户端将应用流量发往虚拟 IP
通过 WARP 客户端将应用流量发往虚拟 IP
100.80.10.10▼
☁️ Cloudflare Gateway (L4 路由)
收到发往虚拟 IP 的流量,通过映射记录识别出该流量属于哪个 Tunnel,
然后将流量路由转发至该 Tunnel。
然后将流量路由转发至该 Tunnel。
▼
🔒 Cloudflare Tunnel (cloudflared)
Tunnel 接收到流量后,根据目标真实 IP 地址进行分发:
▼
私有 IP 地址
发往内网的其他应用服务
发往内网的其他应用服务
公网 IP 地址
作为出口发往公共互联网
作为出口发往公共互联网
Hostname Routing 流量路径说明:
- DNS 解析: 用户的设备向 Cloudflare Gateway 发送目标业务域名的 DNS 查询。
- 内网代解析: Gateway 收到请求后,通知对应的 Tunnel 在其内网环境中进行实际的 DNS 解析,并将真实的 IP 结果返回给 Gateway。
- 分配虚拟 IP: Gateway 并不直接把真实 IP 给客户端,而是分配一个
100.80.x.x(或类似网段)的虚拟 IP 响应给客户端。 - 流量发送与路由: 客户端通过 WARP 客户端访问该虚拟 IP。流量经过 Gateway 时,Gateway 识别出该虚拟 IP 对应的 Tunnel,并将流量路由发送到该 Tunnel。
- 流量分发: 最终流量到达目标 Tunnel,Tunnel 根据之前解析出的真实目标 IP 进行流量发送。此时包含两条路径:
- 如果解析出的是私有 IP 地址,流量将发往内网的其他应用或服务器。
- 如果解析出的是公网 IP 地址,流量将从该 Tunnel 服务器作为出口发往公共互联网。
5. 常见问题
Q: 如何确认 WARP 是否正常工作?
访问 https://cloudflare.com/cdn-cgi/trace,
如果看到 warp=on 或 warp=plus,说明 WARP 已连接。
Q: 如何确认流量走了哪个出口?
访问目标网站后,检查你的外部 IP 是否与预期的 edge-proxy 出口 IP 一致。