2026年 OpenClaw Gateway 公网 VPS
18789、WebSocket 反代与鉴权分层排错

安全组与 ufw · 反代 Upgrade · gateway.mode · channels probe · 云上常驻

OpenClaw Gateway VPS 公网与 WebSocket 反代
当你把 OpenClaw Gateway 从「笔记本开着终端」迁到 公网 VPS,最常见的错觉是「进程在就等于可用」:外网 Dashboard 仍可能显示未连接,或 Gateway 显示 running 但消息就是不进来。本文按 18789 与安全组、主机防火墙、反代 WebSocket、Gateway 绑定与鉴权、通道探测与策略 五层拆开表象,附监听策略对照表、可落地的反代骨架、六步排错流水线,并把控制面迁到 云上裸金属 Mac 时的分工边界写清楚,读完可直接并进团队 Runbook。
01

2026 年公网暴露 OpenClaw Gateway 时五层故障各自长什么样

第一层是云厂商安全组与边界 ACL:你在机器内部看到监听正常,但从公网入口进不来,典型是入站规则只开了 22 与 80,没有把 18789 或反代对外端口写进允许列表。第二层是主机防火墙:Ubuntu 的 ufw、CentOS 的 firewalld、以及某些镜像默认 drop 策略,会在安全组放行后仍把包挡在网卡之后。第三层是反代与 WebSocket:Nginx 或 Caddy 若缺少 UpgradeConnection 透传,浏览器侧会表现为握手失败或无限重连,而 Gateway 进程本身仍健康。

第四层是Gateway 绑定与鉴权:当你把监听从回环改到局域网或自定义地址时,官方护栏会要求 token 或等价鉴权;缺了就会「拒绝绑定」或「能绑定但控制面无法完成 RPC 探测」。第五层是通道与策略:Telegram、Discord 或 Webhook 任意一侧的速率限制、配对状态、群组策略与 DM 策略,都会让日志里出现「Gateway 在线但业务侧无感」的现象。

把五层分开后,你就不会在每一个报错上都重装一遍;下一节的表格用来决定你现在到底是在解决网络入口问题,还是在解决控制面配置问题,还是在解决通道产品问题。

01

安全组:从公网 IP 用最小探针验证端口可达,再回退到内网对比。

02

主机防火墙:与安全组规则交叉核对,避免「两层都以为对方会放行」。

03

反代:确认 TLS 终止点与上游协议一致,WebSocket 头是否原样转发。

04

绑定与鉴权:核对 gateway.modegateway.bindgateway.auth 是否同一套假设。

05

通道:channels status --probe 与提供商控制台时间戳对齐。

如果你已经读过站内《OpenClaw 从安装到 Gateway 联机》那篇,可以把本文当作「公网入口与反代专章」:那一篇讲安装与守护进程验收,这一篇讲外网路径与 WebSocket 细节;两篇叠加后再读《全天候稳定运行与云节点方案》,就能把动机、命令行与网络层一次对齐。

02

监听绑定 loopback、局域网与 tailnet 时鉴权与暴露面如何对照

loopback 绑定最小暴露,适合只在同一台机器上用控制面;一旦你希望在另一台笔记本打开 Dashboard,就会被迫把监听扩到非回环地址,此时鉴权不是可选项而是护栏。局域网绑定需要明确哪些网卡与网段可信;tailnet 或零信任隧道场景要把「谁算内网」写成团队共识,否则排错时会在错误层反复横跳。

维度仅回环绑定非回环绑定 + 反代
暴露面最小,外网默认不可达需要安全组、防火墙、TLS 与 token 组合治理
Dashboard 体验需要 SSH 隧道或同机访问可用域名与证书,适合团队共享控制面
排错顺序优先看 Gateway 与 doctor先看端口与反代,再看 Gateway 与 doctor
常见风险误把仅回环当成公网可用地址反代漏 Upgrade 或非 loopback 未配 token
与 VPS 的契合适合临时试验适合把 Gateway 当长期控制面组件

公网排错的第一性原理是:先证明包能到,再证明握手能过,最后才证明业务逻辑在线。

当你把 Gateway 放到 VPS 上却仍旧把重编译与浏览器工具负载堆在同一台机器里,争用会放大成「随机不健康」;把控制面与重负载拆到不同裸金属实例,往往比反复调 JVM 式参数更有效。需要并行与租期组合时,可对照同日发布的《Mac mini M4 买还是租 TCO》一文把预算与里程碑绑在一起评审。

03

Nginx 或 Caddy 反代 OpenClaw Gateway 时 WebSocket Upgrade 透传骨架

下面骨架刻意只保留与 WebSocket 相关的关键指令:核心是 proxy_http_version 1.1UpgradeConnection 头。TLS 终止在反代时,上游可用明文回环;若你改为端到端 TLS,需要把上游协议与证书校验写成另一套清单,不要把两套假设混在同一页 Runbook 里。

Nginx 片段骨架
map $http_upgrade $connection_upgrade {
  default upgrade;
  '' close;
}
server {
  listen 443 ssl;
  location / {
    proxy_pass http://127.0.0.1:18789;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_set_header Host $host;
  }
}

提示:若你在反代层做了 IP 限制或地理封锁,记得把通道提供商的回调入口一并纳入白名单,否则会出现「健康检查永远绿、真实消息永远进不来」的假阳性。

Caddy 的路线是自动证书与更短的站点文件,但 WebSocket 透传原则不变:仍然是 HTTP/1.1 升级语义与正确的 Host 透传。无论你选哪套反代,都建议把「反代后的最终 URL」写进团队文档,避免一半同事访问旧 IP 一半同事访问新域名,导致 OAuth 与回调域名不一致。

04

六步把「外网未连接」从入口一直收敛到通道层

下面顺序刻意把「本机 curl」放在靠后位置:公网问题优先用外网探针验证,避免被内网视角欺骗。把每一步输出粘到工单里,On-call 交接会轻松很多。

01

冻结目标 URL:写下 Dashboard 最终访问的域名、端口与是否经反代,避免混测。

02

从外网探针端口:用独立网络路径验证 443 或 18789 是否可达,与安全组截图对齐。

03

核对主机防火墙:列出 ufw 或 firewalld 规则,确认没有局部拒绝覆盖全局放行。

04

验证 WebSocket:用浏览器网络面板或 curl 手工升级请求观察是否 101。

05

回到 Gateway:执行 openclaw gateway statusopenclaw doctor,确认绑定与 token 假设未被反代层掩盖。

06

验证通道:执行 openclaw channels status --probe,把提供商侧限流与配对状态一并记录。

当 01 到 04 都绿而 05 报红,优先怀疑配置漂移或升级后的默认值变化;当 05 绿而 06 红,别急着重启 Gateway,先把通道当作独立子系统排。

05

三条可写进变更评审的口径与云上常驻分工

A

端口与协议一致性:若公网入口使用 443 终止 TLS,则所有书签、OAuth 回调与 Webhook URL 必须同步改写成同一域名空间,否则会在「局部可用」与「全局不可用」之间来回抖动。

B

探测分层:把「端口可达」「HTTP 200」「WebSocket 101」「Gateway RPC ok」「通道 ready」分成五级信号,禁止用其中一级替代另一级的结论。

C

控制面与算力面隔离:当同机还要跑重负载 IDE 或并行模拟器时,应评估把 Gateway 迁到独立裸金属节点以降低争用,而不是无限增加 swap。

注意:把 Gateway 直接绑在公网且无鉴权是生产事故高发模式;务必按官方护栏配置 token 或等价控制面认证,并把变更记录进审计日志。

把 Gateway 绑在随时可能合盖的笔记本上,会把 TLS、回调域名与令牌刷新绑进不可审计的个人习惯;把重负载与浏览器工具链绑在同一台 VPS 上,则会把「网络看起来没问题」与「进程随机抖动」混成同一个黑盒。相较之下,MESHLAUNCH 的 Mac Mini 云端裸金属租赁提供独占 Apple Silicon、可按日周月弹性下单与多地区切换,更适合把 OpenClaw 控制面当成生产组件长期运行。你可以先打开 租赁价格页 为控制面与构建面各选一档,再在 帮助中心 核对 SSH 与网络要求;动机与大脉络可结合 全天候云节点方案安装与 doctor 排错 两篇一起评审。

常见问题

会,典型冲突是端口占用与两套配置根目录。建议同一主机只保留一套控制面,或在文档里明确端口隔离与数据目录隔离。下单入口见 租赁价格页

先对照官方迁移说明把本地与守护进程配置对齐,再重启服务;更完整的命令链见 安装与 doctor 排错

请检索 帮助中心 的网络与 SSH 说明,把端口与安全组核对写进同一页 Runbook。