阳子
阳子
发布于 2026-05-29 / 0 阅读
0
0

如何将 Ubuntu 服务器作为客户端接入 Cloudflare Zero Trust (ZTNA)

在企业级网络安全架构中,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 连接将被瞬间切断,导致您失去对服务器的控制权

解决方案:

  1. 登录 Cloudflare Zero Trust 仪表板。

  2. 进入 Settings -> WARP Client -> Profile settings

  3. 找到 Split Tunnels 设置。确保模式为 Exclude(排除)。

  4. 点击 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,并将其发送给服务器。

  1. 在您的本地电脑浏览器中,输入您团队的特定认证 URL:

    https://<您的团队名称>.cloudflareaccess.com/warp (请将 <您的团队名称> 替换为您在 Zero Trust 后台设置的 Team Name)

  2. 按照企业要求完成身份验证(如输入企业邮箱、验证码或通过 Okta/Google Workspace 等 SSO 验证)。

  3. 验证成功后,网页会跳转到一个显示 "Success" 并带有 "Open Cloudflare WARP" 蓝色按钮的页面。请不要关闭此页面

  4. 在网页任意空白处右键 -> 选择“检查 (Inspect)”,打开浏览器的开发者工具。

  5. 使用元素审查工具,点击那个蓝色的按钮,找到其背后的跳转链接。

  6. 提取出完整的长链接,它通常以 com.cloudflare.warp://https:// 开头,形如: com.cloudflare.warp://<your-team>.cloudflareaccess.com/auth?token=eyJhbGciOiJSUzI1...(极长的字符串)

  7. 完整复制这段链接(注意:该 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


评论