实战指南:公网上安全使用OpenClaw Gateway

实战指南:公网上安全使用OpenClaw Gateway

暴露像 OpenClaw 这样有执行能力的 agent 到公网,不要草率地只开放端口,而要借助成熟的 Zero Trust 平台来管理安全边界。

本文由叽歪同步助手自动同步而来,原文链接是: jefftian.dev/posts/zqag 。🐾 在openclaw 配置公网上优雅地暴露 OpenClaw Gateway(Cloudflare Tunnel + Zero Trust)

作者:哈德韦 · 程序员 · 技术博文 | 2026 年

本文将以真实工程场景出发,带你理解如何把一个只监听本机的 OpenClaw Gateway 安全地暴露到互联网,借助 Cloudflare Tunnel 和 Access 做 Zero Trust 保护,同时避免常见坑与安全误区。


今天在树莓派上安装了 OpenClaw,其支持的 Channel,没有一个是我平时在用的,有点小遗憾。我后面可能会开始研究和使用飞书,这样就能方便地随时随地鞭策自己的个人小助手了。不过,OpenClaw 有一个带界面的 Gateway,用浏览器就能使用,所以我暂时也不着急去研究飞书等其他的 Channel 了,就先用浏览器吧!

不过,要做到随时随地鞭策,就需要将它暴露在公网才行。我看到它内置了 tailscale 的支持,不过,我这次也没有使用它,我直接用了 Cloudflare Tunnel + Zero Trust ,最终实现了自己想要的效果。

实战指南:公网上安全使用OpenClaw Gateway

当然,只有认证通过才能进入以上界面,我直接使用了默认的 Cloudflare ZeroTrust 样式,长这样:

实战指南:公网上安全使用OpenClaw Gateway

OpenClaw 的设计哲学是安全优先:

  • 默认只监听 127.0.0.1:18789,不对公网开放。
  • Gateway 默认要求 认证(token/password) 才允许 WebSocket 连接。
  • 如果简单把端口放到公网,就像把家门钥匙贴在门上:外人只需一份日志就能控制你的 agent。 :contentReference[oaicite:0]{index=0}

OpenClaw 官方建议:

“Keep the Gateway loopback-only unless you’re sure you need remote exposure.” :contentReference[oaicite:1]{index=1}

“不暴露端口,反向代理 + Tunnel + Zero Trust”才是现代做法。


痛点 传统做法 风险 更佳方案
Gateway 只监听本地 修改 bind=0.0.0.0 开放公网端口风险大 保持 loopback + Tunnel
需要远程访问 SSH + 端口转发 复杂、不稳定 Cloudflare Tunnel
需要身份认证 单纯 token token 可能泄露 Cloudflare Access + trusted proxy
安全策略 Gateway auth 缺乏 Zero Trust Cloudflare Zero Trust + auth

┌───────────────────┐ Client ---->│ Cloudflare Access │ (OAuth / SSO 登录) └───────▲───────────┘ │ │ HTTPS │ ┌───────┴───────────┐ │ Cloudflare Tunnel │ (反向代理到 localhost) └───────▲───────────┘ │ │ Loopback │ 127.0.0.1:18789 <-- OpenClaw Gateway

这套架构的核心理念是:

  1. Gateway 只在本机监听(安全边界明确)
  2. Cloudflare Tunnel 负责公网入口
  3. Cloudflare Access 做 Zero Trust 登录认证
  4. 只有经过 Access 的请求才能通过 Tunnel 再到 Gateway

安全路径就像一条“安全栈”:只有通过每层校验的请求才能真正到达终点。


默认配置即可:

openclaw gateway start

输出应该显示:

Gateway: bind=loopback (127.0.0.1), port=18789

这意味着只有本机能访问。


实战指南:公网上安全使用OpenClaw Gateway

前往 Zero Trust → Tunnels → 创建一个 Tunnel,指向:

localhost:18789

将域名设置为你的公网域名:

openclaw.your-domain.net
实战指南:公网上安全使用OpenClaw Gateway

在 Zero Trust → Access → Applications 中:

  • 添加你的域名 openclaw.your-domain.net
  • 选择登录策略(比如 Google / GitHub 登录)
    我这里对接了 Azure AD、Authing.cn 以及 Cloudflare 自带的邮箱验证码登录策略,一共3个:
实战指南:公网上安全使用OpenClaw Gateway
  • 把访问限制到指定邮件/组
    我目前只允许自己一个人使用:
实战指南:公网上安全使用OpenClaw Gateway

这样,当用户访问这个 URL 时,Cloudflare 会要求登录。


打开你的 ~/.openclaw/openclaw.json,添加:

{ "gateway": { "bind": "loopback", "trustedProxies": ["127.0.0.1"] } }

解释:

  • trustedProxies: 只信任来自本机的代理

完成后重启 Gateway:

openclaw gateway restart

所以去掉 token 后 Gateway 会无法启动。


  • 请确保 Gateway 绑定为 loopback,不要使用 0.0.0.0 监听。
  • 使用 Cloudflare Access 做强认证,而不要简单依赖 token。
  • 如果非要让代理把客户端 IP 传给 Gateway,务必配置 trustedProxies
  • 避免直接将 OpenClaw Gateway 端口暴露给公网。

步骤 关键点
① 启动 Gateway 绑定本地、不要对公网开放基本端口
② 建立 Tunnel 将公网域名到本机端口的安全隧道
③ 设 Zero Trust 登录/策略控制
④ 网关信任代理 通过 trusted proxy 传递身份
⑤ 安全审计 定期检查 config + audit

暴露像 OpenClaw 这样有执行能力的 agent 到公网,不要草率地只开放端口,而要借助成熟的 Zero Trust 平台来管理安全边界。Cloudflare 提供了全球流量入口 + Access 认证 + Tunnel 安全转发,是一个既成熟又实用的方案。

有问题欢迎留言,我们一起把这个博客做成开放式实践指南。


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:Ai探索者,转载请注明出处:https://javaforall.net/254993.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月13日 下午12:31
下一篇 2026年3月13日 下午12:32


相关推荐

关注全栈程序员社区公众号