Gateway 导读

远程接入:分清谁跑代理、谁连进来

这一页讲的是如何让 Gateway 跑在一台常开机器上,其他设备通过 SSH 隧道或 tailnet 连过去。最该先看“Start Here”里的两条线:操作端走 SSH 隧道,节点端走 WebSocket。容易搞错的是——Gateway 绑定的是 loopback,必须手动转发端口才能远程访问,不是配个 IP 就能直连。

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

远程接入:分清谁跑代理、谁连进来

这一页讲的是如何让 Gateway 跑在一台常开机器上,其他设备通过 SSH 隧道或 tailnet 连过去。最该先看“Start Here”里的两条线:操作端走 SSH 隧道,节点端走 WebSocket。容易搞错的是——Gateway 绑定的是 loopback,必须手动转发端口才能远程访问,不是配个 IP 就能直连。

原文共 21 节,先看 Start Here 路径:/gateway/remote 查看官方原文

核心想法

🏢 Agent 住在哪台机器上,那台机器就是“家”

官方一直在强调这个画面:Gateway host 才是 agent 真正住着的地方。你的笔记本、手机、网页都只是去远程摸它。

🏠

Gateway host

像总机房所在的主屋,里面存会话、认证资料、通道状态。

💻

你的电脑

像一只遥控器,不一定是 agent 真正住的地方。

📱

节点设备

像外面的手脚和感官,依旧得回到这间主屋听令。

📌

一句话

远程访问的重点不是“多装一个”,而是“稳稳连回唯一那一个”。

三种常见住法

🛖 官方举的三个场景,其实就是三种“谁在家,谁在外面”的生活方式

这段很像生活场景说明,不是纯技术条目。

1. 永久在线的尾网主机

像把总机房放在 VPS 或家里小服务器上,让它日夜值班。你的笔记本睡了,家里总机房还醒着。

2. 家里台式机跑 Gateway,笔记本远控

像家里的主屋一直亮着灯,你出门在外用一只遥控器摸回去。

3. 笔记本自己跑 Gateway,再给别处远控

像你把主屋搬到笔记本里,但偶尔还想让其他机器临时接进来。

🎈 记一句

场景在变,唯一不变的是“真正的状态和会话只由那一个 Gateway 持有”。

命令翻译

🕳 ssh -N -L 18789:127.0.0.1:18789 user@host 到底在现场做了什么?

这行命令很多人会背,但不一定真懂。其实画面非常具体。

ssh -N -L 18789:127.0.0.1:18789 user@host

像你从自己脚下挖了一条小隧道,通到远处主机的本地小门口。你眼前这边的 127.0.0.1:18789,其实已经被这条隧道悄悄接到了远方那边。

-L

像告诉施工队:“在我这边开一个本地入口,通往远处那扇门。”

-N

像说“这次不进去开壳子、不聊天,只负责把隧道撑住”。

后面发生什么

隧道撑好后,openclaw healthopenclaw status --deep 这些动作,看起来像在摸本地门,其实摸到的是远程总机房。

远程默认配置

🗂 gateway.mode: "remote" 像“以后默认就走那条隧道回家”

如果你每次都要摸远程主机,官方允许你把远程地址和令牌记进配置里。

🌉

gateway.remote.url

像在通讯录里记住“以后默认回哪扇门”。

🔑

gateway.remote.token

像顺手把那扇远程门要用的门卡也记下来。

⚠️

--url 例外

官方特别提醒:你手动传 --url 时,CLI 不会替你偷偷套用配置里的隐式凭证。该显式带 token/password 就要显式带。

📌

一句话

能记默认值就记默认值,但手动改门牌时,也要自己记得带门卡。

安全规则

🔒 官方的态度很明确:总机房最好还是尽量只开在 loopback 里

这页最想传达的安全习惯,其实就这一句。

Loopback + SSH / Tailscale Serve

像总机房平时不把大门朝街上敞开,而是只在家里开个内门,再靠隧道或专线进去。

Non-loopback 必须带认证

如果门真的要开到外面,就必须带 token 或 password,不能裸奔。

TLS fingerprint

像你不只认门牌号,还认门上的独特指纹,防止有人在路上假冒那扇门。

🎈 记一句

远程的正确默认不是“把门打开”,而是“门尽量还关在家里,只通过可信隧道摸进去”。

最后总结

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

Remote access 就像人不在家,但通过 SSH 隧道或尾网专线摸回唯一那间总机房;重点不是再开一个 Gateway,而是安全地连回那一个。

如果你已经能连回去,但就是不知道哪儿坏了,下一页就去 /gateway/troubleshooting