核心用法
本技能提供一套完整的方案,用于在 VPS 上安全暴露 OpenClaw Gateway WebUI。核心架构为Cloudflare Tunnel(cloudflared)+ Cloudflare Zero Trust Access,实现"零公网 IP 暴露"的安全远程访问。
部署流程:
1. 可选清理:若曾使用 Tailscale Serve,可先执行 sudo tailscale serve reset 清理
2. 安装 Tunnel:通过 Cloudflare Zero Trust 创建 Tunnel,获取 token,在 VPS 安装 cloudflared 并注册为系统服务
3. DNS 切换:使用配套脚本(cf_dns.py、dns_point_hostname_to_tunnel.sh)自动将子域名指向 Tunnel 的 CNAME(<tunnel-uuid>.cfargotunnel.com),支持 A/AAAA/CNAME 记录的自动清理与重建
4. 服务绑定:在 Cloudflare 控制台将公网域名映射到本地服务(http://127.0.0.1:18789)
5. 访问控制:创建 Access Application,配置"Allow 特定邮箱 + Block 所有人"的双层策略
显著优点:
- 零公网暴露:源站无需公网 IP,流量经 Cloudflare 边缘网络加密传输
- 最小权限原则:仅需
Zone:DNS:Edit+Zone:Zone:Read权限的 API Token,降低凭证泄露风险 - 自动化友好:提供 Python 脚本和 Bash 工具,支持程序化 DNS 管理
- 与 Tailscale 兼容:可选清理 Tailscale Serve,便于方案迁移
潜在局限:
- 依赖 Cloudflare 生态:需拥有 Cloudflare 托管的域名和 Zero Trust 订阅(免费版有功能限制)
- 隧道单点:cloudflared 服务若崩溃,服务即中断,建议配置 systemd 自动重启
- 延迟敏感场景:流量需绕行 Cloudflare 边缘节点,对延迟极敏感的场景可能不适用
适合人群:
- 拥有 VPS 但无公网 IP 或不愿暴露源站 IP 的用户
- 需要为团队/个人提供安全远程访问 OpenClaw WebUI 的管理员
- 追求"零信任"架构、希望最小化攻击面的安全敏感用户
常规风险:
- Token 泄露:
CLOUDFLARE_API_TOKEN若被窃取,攻击者可篡改 DNS 记录;建议限制 Token 作用域并定期轮换 - Access 配置错误:若误将"Block Everyone"置于"Allow"之前或策略逻辑错误,可能导致合法用户被拒或非法访问
- 本地服务监听范围:OpenClaw WebUI 应仅监听
127.0.0.1,避免直接暴露于0.0.0.0导致绕过 Tunnel 的直接访问 - DNS 传播延迟:切换记录后可能存在短暂不可用窗口