在企业级网络安全架构中,Cloudflare Zero Trust (ZTNA) 提供了强大的访问控制能力。通常我们会使用 Cloudflare Tunnel 将服务器端服务发布到 ZTNA 供外部访问;但在某些场景下,我们的 Ubuntu 服务器本身也需要作为“客户端”,去访问其他受 Zero Trust 保护的内网资源(例如跨云数据库同步、内部 API 调用)。
由于 Ubuntu 服务器通常是无图形界面的(Headless),无法直接弹出浏览器完成常规的 SSO 登录认证。本文将详细讲解如何通过“Token 回调法”在无界面的服务器上优雅地完成 WARP 客户端的接入。
⚠️ 极其重要的前置警告(防止 SSH 断连)
如果您的 Ubuntu 是一台远程云服务器(例如通过公网 IP 进行 SSH 登录),请在开始前务必检查并修改您的 Cloudflare Zero Trust 策略!
WARP 启动后会接管服务器的所有网络流量。如果未正确配置拆分隧道(Split Tunnels),您当前的 SSH 连接将被瞬间切断,导致您失去对服务器的控制权。
解决方案:
登录 Cloudflare Zero Trust 仪表板。
进入 Settings -> WARP Client -> Profile settings。
找到 Split Tunnels 设置。确保模式为
Exclude(排除)。点击
Manage,将您当前 SSH 登录所使用的公网 IP,或者服务器所在的管理网段加入排除列表。
🛠️ 第一步:安装 WARP 客户端
我们需要先在 Ubuntu 服务器上添加 Cloudflare 的官方 GPG 密钥和软件源,然后进行安装。
依次在终端执行以下命令:
# 1. 安装必要的依赖
sudo apt-get update
sudo apt-get install -y curl gnupg lsb-release
# 2. 下载并转换官方 GPG 公钥
curl -fsSL https://pkg.cloudflareclient.com/pubkey.gpg | sudo gpg --yes --dearmor --output /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg
# 3. 添加对应的 APT 软件源
echo "deb [signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/cloudflare-client.list
# 4. 更新软件源并安装 WARP 客户端
sudo apt-get update
sudo apt-get install -y cloudflare-warp
🔑 第二步:获取组织的身份认证 Token
由于服务器没有浏览器,我们需要在本地个人电脑(带有图形界面和浏览器)上“借用”授权 Token,并将其发送给服务器。
在您的本地电脑浏览器中,输入您团队的特定认证 URL:
https://<您的团队名称>.cloudflareaccess.com/warp(请将<您的团队名称>替换为您在 Zero Trust 后台设置的 Team Name)按照企业要求完成身份验证(如输入企业邮箱、验证码或通过 Okta/Google Workspace 等 SSO 验证)。
验证成功后,网页会跳转到一个显示 "Success" 并带有 "Open Cloudflare WARP" 蓝色按钮的页面。请不要关闭此页面。
在网页任意空白处右键 -> 选择“检查 (Inspect)”,打开浏览器的开发者工具。
使用元素审查工具,点击那个蓝色的按钮,找到其背后的跳转链接。
提取出完整的长链接,它通常以
com.cloudflare.warp://或https://开头,形如:com.cloudflare.warp://<your-team>.cloudflareaccess.com/auth?token=eyJhbGciOiJSUzI1...(极长的字符串)完整复制这段链接(注意:该 Token 有效期通常只有 1-2 分钟,请抓紧时间进行下一步)。
🚀 第三步:在服务器上完成注册与激活
拿到 Token 后,立刻回到您的 Ubuntu 服务器 SSH 终端。
使用以下命令进行注册(请务必使用英文双引号将您的长 Token 包裹起来):
warp-cli registration token "粘贴您刚刚复制的完整长链接"
(注:如果提示 token 子命令不存在,说明系统安装了旧版 WARP,请改用:warp-cli teams-enroll-token "链接")
如果注册成功,终端将输出 Success。
紧接着,启动 WARP 连接:
warp-cli connect
🔍 第四步:验证连接状态
最后,检查 WARP 客户端的运行状态,以确认服务器已成功加入 ZTNA 网络:
warp-cli status
预期的成功输出:
Status update: Connected
Success
您还可以通过运行 warp-cli account 来确认当前的账户类型是否为 Teams,以及所属的组织名称是否正确。此时,您的 Ubuntu 服务器就已经作为授权设备,安全地接入了 Cloudflare One 的内网架构中,可以顺畅地访问各种受保护的私有资源了。
💡 附录:常用管理命令
断开网络(但不注销设备):
warp-cli disconnect查看分配到的虚拟 IP(CGNAT IP):
ip addr show warp0彻底退出并注销当前设备:
warp-cli registration delete