Gateway 导读

Gateway 是唯一主人,别让第二个进程抢 WhatsApp 会话

所有流量都经过 Gateway 这个长进程,它独占 WhatsApp Web 会话——一台主机只跑一个 Gateway,否则会掉线。先配好 `gateway.auth` 和 `canvasHost`,非回环访问必须用 token 或 trusted-proxy,别裸奔。

先讲这一页到底在解决什么

Gateway 是唯一主人,别让第二个进程抢 WhatsApp 会话

所有流量都经过 Gateway 这个长进程,它独占 WhatsApp Web 会话——一台主机只跑一个 Gateway,否则会掉线。先配好 `gateway.auth` 和 `canvasHost`,非回环访问必须用 token 或 trusted-proxy,别裸奔。

原文共 2 节,先看 Start Here 路径:/gateway/network-model 查看官方原文

第一眼

🏢 一台主 Gateway,就是这栋楼里默认唯一的总机房

官方这一页一开头就讲得很硬核,但翻成人话很好懂:大多数操作都穿过 Gateway 这间总机房。

🏠

One Gateway per host

默认建议一台机器只放一个主总机房。尤其 WhatsApp Web 会话,不能随便让两个值班员一起抢同一串钥匙。

🧵

长跑进程

它不是“来一下就走”的小脚本,而是长期值班的大进程。

🌉

WS control plane

CLI、网页、App、节点,都是沿着 WebSocket 这条桥和总机房说话。

📌

一句话

Gateway 是楼心脏,不是边上的一个小插件。

走路规则

🔁 默认先走 loopback,就像“先走家里的内廊”

官方很强调 loopback first,这其实是在告诉你:先走最短、最私密、最不容易被别人碰到的那条小路。

ws://127.0.0.1:18789

像家里内廊直通总机房。平时在同一台机器上,先走这条。

默认也会生成 token

哪怕是家里内廊,官方现在也倾向于先给你准备门卡,省得以后搬到更远的门口时再临时补。

--bind tailnet --token ...

一旦门不只开在家里,就必须带门卡。走 tailnet 时官方明确要求 token。

🎈 记一句

门开得越远,门卡就越不能省。

节点与远程

📱 节点像分布在外面的手脚,但它们都要沿路回到总机房

iOS、Android、网页节点都不是各自单飞。它们最终都是回到 Gateway 这间总机房汇合。

📱

Nodes

像分散在外面的手脚和感官,但真正调度还是回到中枢。

🏠

LAN

像同一屋檐下的走廊,最直接。

🛰

Tailnet / SSH

像铺到远处的专线和暗门。远程访问时最常走这两条。

🧯

Legacy TCP bridge 已退场

官方明说老旧 TCP 小桥不再是主路,别再往那边绕。

同端口这件事

🖼 Canvas host 和 Gateway 共用同一扇门,就像总机房里顺手开了两个窗口

这部分如果只看路径会有点冷,换成画面更容易记。

/__openclaw__/canvas/

像总机房门边的一个画布窗口。

/__openclaw__/a2ui/

像同一扇门边另一个控制窗口。

同一端口

官方明确说这些窗口都挂在 Gateway 同一个 HTTP 门牌上,不是另外再开一栋楼。

超出 loopback 就要受 auth 保护

门一旦不只开在家里内廊,这些窗口也要一起带门禁,不能裸着对外。

最后总结

🎈 把这页压成一句最短的话

Network Model 讲的就是这栋楼的路怎么走:Gateway 是总机房,平时先走本地内廊,走远路就上 tailnet 或 SSH,节点和网页窗口都还是回到这间总机房汇合。

如果你想继续看“这些路上的消息到底按什么协议握手说话”,下一页就去 /gateway/protocol