serve
像只给自家尾网成员开的接驳车。Gateway 还待在 127.0.0.1,但尾网里的人能走 HTTPS 进来。
Gateway 导读
OpenClaw 能自动配置 Tailscale Serve(仅 tailnet)或 Funnel(公网 HTTPS),让网关始终绑定在 loopback,由 Tailscale 处理 HTTPS 和路由。选 Serve 模式时,控制台和 WebSocket 可以免 token 直接用 Tailscale 身份头认证,但 API 端点仍走普通共享密钥认证——注意这个信任假设,如果宿主机上可能运行不可信代码,记得关掉 allowTailscale 强制用 token。
先讲这一页到底在解决什么
OpenClaw 能自动配置 Tailscale Serve(仅 tailnet)或 Funnel(公网 HTTPS),让网关始终绑定在 loopback,由 Tailscale 处理 HTTPS 和路由。选 Serve 模式时,控制台和 WebSocket 可以免 token 直接用 Tailscale 身份头认证,但 API 端点仍走普通共享密钥认证——注意这个信任假设,如果宿主机上可能运行不可信代码,记得关掉 allowTailscale 强制用 token。
第一步
别一看到 Tailscale 就想着“能远程了”。先分清你到底是给谁开门。
serve像只给自家尾网成员开的接驳车。Gateway 还待在 127.0.0.1,但尾网里的人能走 HTTPS 进来。
funnel像把一个展台开到公网门口。风险更高,所以官方强制你至少带共享密码。
off默认就是关着。没有自动 Tailscale 接驳。
serve 是尾网专用接驳车,funnel 是公开展台。
第二步
用了 Tailscale,不等于就完全不要认证。官方很仔细地区分了不同场景。
gateway.auth.mode: "token"像进门时还要出示共享令牌。是最常见那种“有票才能进”。
gateway.auth.mode: "password"像大门口还要说暗号。特别是公网 Funnel,官方要求必须这样更稳。
gateway.auth.allowTailscale: true像门卫会信任 Tailscale 发来的身份牌。对 Control UI 和 WebSocket 来说,尾网身份头就能当一部分通行证。
官方特别提醒:HTTP API 这些门还是要 token 或 password。也就是说,Tailscale 身份头不是万能通行证。
第三步
这是最像官方推荐主路的用法。Gateway 自己不跑到外面去,还是待在 loopback。
gateway: { bind: "loopback", tailscale: { mode: "serve" } }像说:“大门继续锁在家里,但请 Tailscale 帮我在尾网里做一个安全前台。”
官方给的意思是:之后你可以走 MagicDNS 那个 HTTPS 地址进来,而不是非要死盯本机地址。
因为 HTTPS、路由、身份头这些外层工作,都交给 Tailscale。Gateway 本体不用硬撑在公网门口。
第四步
这不是 Serve/Funnel,而是另一种更直接的路。
bind: "tailnet"像不再通过接驳车中转,而是直接把门开在 Tailscale 那条街上。
官方示例里直接写了 token,因为这时候不是借 Serve 的那套包装壳了。
你开成 tailnet 以后,本机 127.0.0.1 那条路就不是原来那种用法了。不要还拿旧地址去试。
第五步
只要看到 Funnel,就自动把安全警惕心拉高一档。
tailscale: { mode: "funnel" }像告诉 Tailscale:“把这个入口公开出去。”
auth: { mode: "password" }像官方直接要求你在公开展台前再加一层口令门,不允许裸奔。
因为一旦到公网,你面对的就不只是自家尾网成员。官方宁愿你麻烦一点,也不让你图省事把整扇门敞开。
官方还顺手提醒你,优先用环境变量,不要把密码直接抄在磁盘账本上。
第六步
这两条命令不用背参数学问,把它们看成“现场开关模式”就行。
openclaw gateway --tailscale serve像对司机说:“今天开尾网专线接驳车。”
openclaw gateway --tailscale funnel --auth password像说:“今天开公开展台,但一定把口令门也立上。”
resetOnExit像演出散场后,要不要把临时搭的展台和路标顺手拆掉。
命令不是玄学,就是在切换接驳模式。
第七步
官方最后列了一堆前提,别嫌烦。这些通常就是为什么你照抄却跑不起来的根源。
得先有 Tailscale CLI,而且它已经登录。HTTPS、MagicDNS 这些基础设施也得就位。
版本、端口、节点属性、macOS 应用形态都有限制。它不是“随便一台机器都能开公开展台”。
如果 Gateway 和浏览器不在同一台机器,官方更建议用 node host 代理浏览器动作,不要把 Funnel 当万能遥控器。
最后总结
最舒服的主路通常是 serve:Gateway 继续缩在本地回环口,Tailscale 帮你做安全接驳。funnel 是公开展台,只适合你真的知道自己在把什么暴露到外面时再开。
如果你下一步还是要继续抠字段,那就回配置参考页;如果你准备实际远程连上控制台,就从 Serve 模式先试。