2026 年 OpenClaw:从 Docker 安装到生产加固——反向代理、Token、常见报错与远程 Mac 工作流

2026年3月30日 · 约 7 分钟 · MacCompute 技术团队 · 指南教程

本文动笔前已对照 OpenClaw 官方文档Docker安装器网关安全)核对命令与端口;面向要落地 OpenClaw 安装教程Docker 部署反向代理生产环境加固 的工程师,以及希望在 远程 Mac 上稳定跑 Agent/批处理脚本的 MacCompute 类用户。站内:首页手记与指南索引帮助文档

2026 年 OpenClaw 部署背景与典型使用场景

OpenClaw 将「网关 + CLI + 控制界面」绑在一起:你要么在本机走最快迭代(官方建议日常开发用常规安装),要么在 VPS/团队服务器上用 Docker 换隔离与可复现。常见场景包括:内网或零信任网络中的助手网关、与 IM/工单联动的自动化、以及把长耗时任务放到常驻主机(配合下文远程 Mac)。本文是教程型步骤文,不是概念水文;版本细节以仓库与文档更新为准。

环境与前置检查清单(可勾选)

在跑任何脚本前逐项打勾,能避开九成「装完连不上」问题。

  • Docker:Docker Desktop 或 Docker Engine + Compose v2 可用(docker compose version)。
  • 内存与磁盘:本地构建镜像官方写明至少约 2GB RAM(否则 pnpm install 易出现 exit 137);预留镜像、日志与 workspace 空间。
  • 全局 CLI 路径:若不走 Docker,需 Node 24(或文档列出的 22 LTS 兼容版本)与 Git;安装入口为 openclaw.ai 提供的 install.sh / install-cli.sh
  • 公网暴露前:读完官方「网络暴露 / 绑定 / 防火墙」章节再改绑定或开防火墙口;Linux VPS 上跑 Docker 时按文档核对 DOCKER-USER 与宿主机防火墙,避免发布端口或转发规则与预期不一致。
  • 域名与证书:若要做 HTTPS 反代,准备好域名解析与 ACME(Caddy)或 certbot(Nginx)流程。

可复现安装路径:全局 CLI 与 Docker / docker-setup 对比

两条路径可并存于不同环境:开发机 CLI、生产机 Compose。

维度 全局 CLI(install.sh / install-cli.sh) Docker(仓库根 ./docker-setup.sh)
适用 本机最快迭代、日常开发 VPS 隔离、可重复交付、无本地 Node 污染
入口命令(示例) curl -fsSL --proto '=https' --tlsv1.2 https://openclaw.ai/install.sh | bash 克隆官方仓库后 ./docker-setup.sh;可选 export OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest" 跳本地构建
控制界面 按本机网关配置访问(Docker 文档默认示例为 http://127.0.0.1:18789/ 同上;Token 写入 .env,在 Control UI Settings 粘贴
自动化/CI --no-onboard 等非交互参数 docker compose run -T --rm openclaw-cli … 去掉伪 TTY

最小 Docker 复现命令(摘自官方流程):

git clone https://github.com/openclaw/openclaw.git && cd openclaw
export OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest"   # 可选:跳过本地 build
./docker-setup.sh

完成后浏览器打开 http://127.0.0.1:18789/ 完成 Token 配置。需要再次打印 Dashboard 链接时:docker compose run --rm openclaw-cli dashboard --no-open

最小安全配置:监听地址、Token、沙箱与出站

绑定模式:官方强调在配置里使用 gateway.bind 的模式值(lan / loopback / custom / tailnet / auto),而不是把 0.0.0.0localhost 当作绑定别名。Docker 场景下环境变量 OPENCLAW_GATEWAY_BIND 默认 lan,以便宿主机访问发布端口;若改为 loopback,仅容器网络命名空间内直连可靠,宿主机访问发布端口可能失败。

Token 与设备配对:网关 Token 应视为机密;出现 unauthorized 或 WebSocket pairing required 时,用 CLI 拉新链接并按 devices approve 流程批准浏览器。

沙箱(可选):执行 export OPENCLAW_SANDBOX=1 && ./docker-setup.sh 可为 Docker 网关引导沙箱;Agent 沙箱默认 docker.network 为 none(无出站),需要外网时再显式评估风险后放开。公网 VPS 务必阅读官方「Security hardening for network exposure」并处理防火墙与 Docker 链(文档提到 DOCKER-USER 等策略)。

探活(可复制):

curl -fsS http://127.0.0.1:18789/healthz
curl -fsS http://127.0.0.1:18789/readyz

Nginx / Caddy 反向代理与 HTTPS 落地步骤

生产环境建议只把 443 暴露给公网,网关仍监听本机 127.0.0.1:18789(或同机 bridge),由反代终结 TLS 并转发 WebSocket。

Nginx(片段思路): proxy_pass http://127.0.0.1:18789;,并设置 Upgrade / Connection 头以支持 WS;证书用 Let’s Encrypt。具体 server_name 与证书路径按你的发行版文档填写。

Caddy(极简示例):

claw.example.com {
  reverse_proxy 127.0.0.1:18789
}

上线后仍应用 WAF/速率限制、仅允许公司 IP 或 Tailscale 入口,并轮换网关 Token。

问题排查矩阵:常见报错与对策

现象 优先检查 建议动作
构建 exit 137 内存、Swap 加大构建机内存或改用 OPENCLAW_IMAGE 拉官方镜像
宿主机打不开 18789 OPENCLAW_GATEWAY_BIND / loopback Docker 下尝试 lan;按文档用 openclaw-cli config set gateway.bind lan 等修正
CLI 显示 172.x 网关 / 反复 pairing gateway.mode / bind 文档示例:config set gateway.mode localconfig set gateway.bind lan
EACCES 挂载目录 容器内 uid 1000 Linux 宿主机对 bind mount 执行 chown -R 1000:1000(官方示例)
沙箱工具无网络 默认 network none 确认是否故意禁用出站;若业务需要外网,按文档调整并评估暴露面
健康检查失败 容器日志、通道断连 /healthz vs /readyzreadyz 可能在通道未就绪时返回 503

业务实例:在远程 Mac 上串联构建 / 脚本 / 通知

把 OpenClaw 网关或「仅 CLI + 定时任务」放在 7×24 远程 Mac 上,可避免笔记本合盖断连。示例流程(预期:推送一次触发后,远端完成构建日志落盘并发企业微信/Slack Webhook):

  1. 通过 SSH 登录远程 Mac(密钥与 known_hosts 固化,参见 SSH/VNC 清单)。
  2. 安装 Docker Desktop 或 colima,拉仓库执行 ./docker-setup.sh,确认 healthz 返回 200。
  3. launchd 或常驻 shell 包装 docker compose up -d,开机自启网关。
  4. 工作目录放在持久卷或主机 bind(如 OPENCLAW_EXTRA_MOUNTS),Agent 脚本写入 ./artifacts
  5. 在 Agent 流程末步调用 curl Webhook,或在仓库侧 CI 只负责「投递任务」,Mac 侧消费队列。

预期结果:网关进程由 Docker 健康检查守护;任务日志与产物在挂载目录可追溯;公网侧仅暴露反代 443 时攻击面可控。

FAQ 与排错清单

能否不用 Docker 只跑沙箱?
官方说明:Agent 沙箱可用 Docker,但不要求整个网关必须跑在 Docker 里。
openclaw-cli 与 gateway 同 compose 网络安全吗?
文档将其视为共享信任边界;需要更强隔离时从独立主机/容器网络调用 CLI。
上线前最后 3 查?
Token 轮换、反代仅本机回源、防火墙默认拒绝;然后跑一遍 gateway probe 与业务冒烟脚本。

需要节点与网络说明可继续看站内文章《跨区域远程 Mac 选型》;SSH 首次连接见《SSH/VNC 清单》。

总结:2026 年部署 OpenClaw,先选对路径(本机 CLI vs 仓库 docker-setup.sh),把 18789、绑定模式与 Token 当作安全基线,再用 Nginx/Caddy 做 HTTPS 终结。长耗时 Agent、批处理与常驻网关更适合放在可 7×24 的远程 Mac 算力上,避免本地机睡眠与带宽抖动。

快速购买