团队希望 OpenClaw 网关在笔记本合盖、家庭宽带上跳时仍在线——把进程放到 租用的远程 Mac(💻 7×24 金属机)上,再用 Tailscale 做零信任接入,是 2026 年很常见的组合。本文按 docs.openclaw.ai/gateway、remote、tailscale 核对 gateway.bind 与鉴权默认值:默认 loopback、tailnet 内优先 Serve、确需公网再开 Funnel,子网路由只宣告最小前缀,并用 tailnet ACL 与 OPENCLAW_GATEWAY_TOKEN 轮换把爆炸半径压住。安装与加固基线可叠读《Docker 部署与生产加固》;出站与技能面收敛见《沙箱与出站白名单》。
为何用租用 Mac 承载网关(转化语境)
网关更像轻量服务而非临时 CLI:它需要稳定监听、可审计的登录边界,以及供应商侧电源与散热。把网关从个人电脑迁到 MacCompute 类远程 Mac,你可以把 Tailscale 与 launchd/Docker 常驻策略一次性写死,避免「演示时误杀进程」这类隐性成本。首次 SSH 与 VNC 仍建议按《SSH/VNC 首次连接清单》固化密钥与端口习惯。
痛点与边界(编号)
- 可达性错觉:能 ping Tailscale IP,不等于能打到 127.0.0.1:18789 上的网关——中间缺 Serve 或 SSH 端口转发时,WebSocket/控制面会一直挂起。
- 暴露面叠加:子网路由把 RFC1918「拉进」tailnet,若 ACL 过宽,网关一旦被突破,横向移动面会突然变大。
- 凭据漂移:--url 与自动化脚本在轮换后不同步,会表现为间歇性 401/挑战失败,易被误判为「网络问题」。
与 docs.openclaw.ai 对照:绑定与最小权限
下表便于你对安全评审「一句话对齐官方预期」,并在供应商托管机上落地。
| 主题 | 官方预期 | 租用 Mac 实践 |
|---|---|---|
| gateway.bind | 默认 loopback;更宽绑定须配合 token/password。 | 保持 loopback;用 Serve、SSH -L 或同机反代承接,避免在共享机房 LAN 上裸露 18789。 |
| Tailscale Serve | tailnet 内 HTTPS;可选 allowTailscale 身份头。 | API 路由仍显式带 token;不可信负载同机时慎开身份头捷径。 |
| Funnel | 要求 password 模式等前置条件(HTTPS、MagicDNS、funnel 能力节点)。 | 仅短窗口启用;密码走环境变量,避免世界可读配置文件。 |
| 远程 CLI | --url 必须配 --token 或 --password。 | CI 与笔记本在轮换后统一更新;隧道「通」但鉴权可能仍过期。 |
子网路由、Serve 与 Funnel 怎么选
子网路由用于「tailnet 内的机器要访问只在内网里的注册表/旧 HTTP 服务」:在宣告路由的 Mac 上开转发、管理台审批最窄前缀,并先测裸 IP 回程再依赖 MagicDNS。
Serve是默认答案:网关进程仍在 loopback,Tailscale 做 TLS 终结,适合日常远程团队。
Funnel面向「对方进不了 tailnet」的供应商或外包;把监控与 teardown 写进变更单,避免长期公网悬挂。
命令级备忘(上线请改为配置文件与 systemd/launchd):
# 仅 tailnet(网关保持 loopback)
openclaw gateway --tailscale serve
# 公网(须 password 与策略评审)
openclaw gateway --tailscale funnel --auth password
ACL 收敛与 OPENCLAW_GATEWAY_TOKEN 轮换
先画连接图再写 ACL:谁可以连 Serve 入口、哪些 tag 代表 CI、网关主机允许访问哪些上游。默认拒绝其余流量;子网路由按组授权,而不是「全公司一条宽规则」。可与 OpenClaw 侧技能出站限制联动,避免新开 RFC1918 走廊后被误用。
轮换节奏建议与机器维护窗对齐:生成新 OPENCLAW_GATEWAY_TOKEN,更新远端环境并重启网关,跑 openclaw gateway status 与 openclaw channels status --probe,再更新所有客户端与流水线,最后作废旧密钥。可引用锚点:监听 127.0.0.1:18789;健康检查 /healthz、/readyz;环境变量 OPENCLAW_GATEWAY_TOKEN 与 OPENCLAW_GATEWAY_PASSWORD。
HowTo:最小可复现步骤
- 在租用 Mac 上登录 Tailscale,确认版本、主机名与 MagicDNS 策略。
- 按官方路径安装 OpenClaw(CLI 或 Docker),先本地验证 openclaw gateway status。
- 保持 loopback 绑定 + token,仅在 SSH 会话内确认控制面可达。
- 启用 Serve,从第二台 tailnet 设备验证 UI/WebSocket,勿先开 Funnel。
- 确有内网依赖再宣告子网路由,ACL 收紧到操作组。
- 可选:短周期 Funnel + password,记录负责人与关闭时间。
- 按季度或事件驱动轮换网关令牌,并保留变更记录。
连通性 FAQ(常见误判)
Tailscale ping 通但 WebSocket/控制面超时。多半是未把 18789 转发到 loopback 上的进程——补 Serve 或 ssh -L 后再看服务端 gateway status。
持续 unauthorized。查 --url 是否缺 --token,以及轮换后是否一端仍用旧令牌。
Funnel 启不来。核对 password 模式、funnel 标签、HTTPS、MagicDNS 与端口限制。
子网已批仍丢包。查 sysctl 转发、本机防火墙、ACL 是否同时允许「走路由」与「访问目标端口」。