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

实战指南:公网上安全使用OpenClaw Gateway暴露像 OpenClaw 这样有执行能力的 agent 到公网 不要草率地只开放端口 而要借助成熟的 Zero Trust 平台来管理安全边界 本文由叽歪同步助手自动同步而来 原文链接是 https jefftian dev posts zqag 8tg778xwen0d 在公网上优雅地暴露 OpenClaw Gateway Cloudflare Tunnel Zero

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



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

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

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

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

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

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

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

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 登录)

GPT plus 代充 只需 145 └───────▲───────────┘ │ │ HTTPS │ ┌───────┴───────────┐ │ Cloudflare Tunnel │ (反向代理到 localhost) └───────▲───────────┘ │ │ Loopback │ 127.0.0.1:18789 &lt;-- OpenClaw Gateway</code></pre></div><p data-pid="n0xeiNwt">这套架构的核心理念是:</p><ol><li data-pid="ZzbSxEaL"><b>Gateway 只在本机监听</b>(安全边界明确)<br/></li><li data-pid="PfUZ33ZZ"><b>Cloudflare Tunnel 负责公网入口</b><br/></li><li data-pid="xVcLzmUX"><b>Cloudflare Access 做 Zero Trust 登录认证</b><br/></li><li data-pid="iuNFe3FO">只有经过 Access 的请求才能通过 Tunnel 再到 Gateway</li></ol><p data-pid="nWTo2B28">安全路径就像一条“安全栈”:只有通过每层校验的请求才能真正到达终点。</p><hr/><p data-pid="m67BVick">默认配置即可:</p><div class="highlight"><pre><code class="language-text">openclaw gateway start</code></pre></div><p data-pid="Iktxm9Mh">输出应该显示:</p><div class="highlight"><pre><code class="language-text">Gateway: bind=loopback (127.0.0.1), port=18789</code></pre></div><p data-pid="IC8rD5D-">这意味着只有本机能访问。</p><hr/><p class="ztext-empty-paragraph"><br/></p><figure data-size="normal"><img src="https://pic1.zhimg.com/v2-6c72fda270e766ae2d544ea_r.jpg" data-caption="" data-size="normal" data-rawwidth="2656" data-rawheight="1160" data-original-token="v2-cb141abd2bdf7090e5cfc22121" class="origin_image zh-lightbox-thumb" width="2656" data-original="https://pic1.zhimg.com/v2-6c72fda270e766ae2d544ea_r.jpg"/></figure><p class="ztext-empty-paragraph"><br/></p><p data-pid="yaKqbxMW">前往 Zero Trust → Tunnels → 创建一个 Tunnel,指向:</p><div class="highlight"><pre><code class="language-text">localhost:18789</code></pre></div><p data-pid="Zttd4whE">将域名设置为你的公网域名:</p><div class="highlight"><pre><code class="language-text">openclaw.your-domain.net</code></pre></div><p data-pid="BU-ayq9i">这样所有请求都会被 Cloudflare 接管。<br/></p><figure data-size="normal"><img src="https://pic1.zhimg.com/v2-4f3ca9ca91583f6dd9296beb6_r.jpg" data-caption="" data-size="normal" data-rawwidth="2570" data-rawheight="628" data-original-token="v2-47e918f6d75654c426e50cbe54e005c5" class="origin_image zh-lightbox-thumb" width="2570" data-original="https://pic1.zhimg.com/v2-4f3ca9ca91583f6dd9296beb6_r.jpg"/></figure><p class="ztext-empty-paragraph"><br/></p><p data-pid="whdXkaI0">Tip:确认 DNS 成功 CNAME 指向 Cloudflare Tunnel。<br/>Cloudflare 会在后台显示 Tunnel 健康状态是否正常。</p><hr/><p data-pid="5kl2S7PB">在 Zero Trust → Access → Applications 中:</p><ul><li data-pid="wGDI0-ra">添加你的域名 <code>openclaw.your-domain.net</code></li><li data-pid="DjSFPMKF">选择登录策略(比如 Google / GitHub 登录)<br/>我这里对接了 Azure AD、<span class="invisible">http://</span><span class="visible">Authing.cn</span><span class="invisible"></span> 以及 Cloudflare 自带的邮箱验证码登录策略,一共3个:<br/></li></ul><figure data-size="normal"><img src="https://pic1.zhimg.com/v2-7ba11cadff0a46d01d5ea5f4_r.jpg" data-caption="" data-size="normal" data-rawwidth="2732" data-rawheight="1504" data-original-token="v2-46263d5de0fe075314fb287f" class="origin_image zh-lightbox-thumb" width="2732" data-original="https://pic1.zhimg.com/v2-7ba11cadff0a46d01d5ea5f4_r.jpg"/></figure><p class="ztext-empty-paragraph"><br/></p><ul><li data-pid="V6aIqw5s">把访问限制到指定邮件/组<br/>我目前只允许自己一个人使用:</li></ul><figure data-size="normal"><img src="https://pic3.zhimg.com/v2-a1663acdb9607a26ee9e73ad009cb4a4_r.jpg" data-caption="" data-size="normal" data-rawwidth="2358" data-rawheight="1692" data-original-token="v2-ea53a2b03bbf76c31507c8fa" class="origin_image zh-lightbox-thumb" width="2358" data-original="https://pic3.zhimg.com/v2-a1663acdb9607a26ee9e73ad009cb4a4_r.jpg"/></figure><p class="ztext-empty-paragraph"><br/></p><p data-pid="oV1-d4ng">这样,当用户访问这个 URL 时,Cloudflare 会要求登录。</p><hr/><p data-pid="jkkpGnpi">打开你的 <code>~/.openclaw/openclaw.json</code>,添加:</p><div class="highlight"><pre><code class="language-text">{ 

“gateway”: {

&#34;bind&#34;: &#34;loopback&#34;, &#34;trustedProxies&#34;: [&#34;127.0.0.1&#34;] 

} }

解释:

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

完成后重启 Gateway:

GPT plus 代充 只需 145openclaw 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 安全转发,是一个既成熟又实用的方案。

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


小讯
上一篇 2026-03-13 09:09
下一篇 2026-03-13 09:12

相关推荐

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