macOS · Linux · WSL2 · Docker · launchd · systemd · 可复现核查
要在笔记本、服务器或 WSL2、容器里把 OpenClaw Gateway 跑成「关盖也不断」的开发者,真正卡住的往往不是模型密钥,而是Node 版本在终端与守护进程里不一致、systemd 用户单元没加载环境变量、Docker 里绑定了错误回环地址。本文给出各平台一条通过/不通过判定、官方脚本 / 包管理器 / 源码 / 容器四选一决策表、openclaw onboard 与 --install-daemon 在 macOS launchd 与 Linux systemd 上的核查命令、版本与网关状态与绑定面勾选清单,以及迁到始终在线 Mac 节点前的 Runbook。报错深挖请对照 安装与 Gateway 排障长文;常驻与进程口径见 全天候云端部署;暴露面与白名单见 生产加固清单;算力与下单路径见 租赁价格说明 与 订购页。
OpenClaw 的安装入口在 2026 年已经高度脚本化,但守护进程上下文与交互式 shell 仍然是两个世界:你在 zsh 里 node -v 正确,不代表 launchd 或 systemd 拉起的进程读到同一套 PATH。WSL2 还要叠加 Windows 侧防火墙与 DNS 转发;Docker 则要把卷挂载、用户 ID 与回环监听写进镜像参数,否则 Dashboard 打的开、Webhook 进不来。下面五条缺口在社区工单里重复率最高,写进装机评审比多装一次全局 npm 更能省时间。
Node LTS 与二进制路径漂移:官方文档通常要求较新的 Node LTS;若混用 nvm、fnm 与系统包管理器,守护进程可能回落到旧二进制。判定:在运行服务的同一用户下打印 which node 与版本,并与 doctor 输出交叉核对。
WSL2 与 systemd 组合假设:部分发行版需要显式启用 systemd 或用户 lingering,否则用户级单元不随登录启动。判定:重启 WSL 后不经交互登录,服务是否仍为 active。
Docker 卷与配置真源:把配置只放在容器可写层,升级镜像会一次清空。判定:.env 或配置目录是否挂在命名卷或绑定挂载,并有备份与回滚步骤。
监听地址默认值:开发期 0.0.0.0 看似省事,上线即扩大暴露面。判定:生产检查表是否要求回环或反代终止 TLS,并与生产加固长文一致。
日志与轮转缺席:Gateway 长期写 stdout 而无轮转,会把小磁盘云主机打满。判定:是否指定日志目录、保留天数,以及是否与集中日志方案兼容。
把上述五条勾成「通过/不通过」两列表,再进入下一节的安装路径选择,你会清楚自己是「单机试用」还是「要接通道的生产拓扑」,避免脚本跑通当晚、daemon 第二天早上失联的经典路径。
若团队同时维护 iOS 构建与 Agent 自动化,建议把「Node 真源」「配置真源」「日志目录」三条写进同一页架构图,减少「排障靠记忆」的隐性人力税;这与后续任务链、共享构建池类文档也能共用术语,评审时不必重复解释 PATH 与守护进程的差异。
四种路径对应不同的升级频率、审计要求与回滚成本。脚本最快但不总能满足内网制品库;包管理器利于版本钉扎却受全局 node 影响;源码适合要打补丁的团队;容器适合隔离依赖但要多一层网络与卷策略。没有银弹,只有与变更审批、合规、运维熟练度是否匹配。
| 路径 | 主要优点 | 主要风险 | 更合适的场景 |
|---|---|---|---|
| 官方 curl/ps1 脚本 | 最少手动步骤,贴近上游默认 | 内网需镜像;版本追踪要额外记录 | 个人与五人内小团队快速验证 |
| npm/pnpm/bun 全局装 | 与 JS 工具链一致,易钉版本号 | PATH 与权限在 daemon 下易分叉 | 已有统一 Node 供应链的平台组 |
| 源码构建 | 可打补丁与定制启动参数 | 构建时间与 CI 维护成本高 | 需要 fork 或热修的安全团队 |
| Docker / Podman | 依赖隔离,易横向扩容试验 | 卷、UID、回环与宿主机端口映射复杂 | 多租户试验环境或临时峰值 |
安装成功应以「守护进程冷启动后仍能通过同一套检查命令」为准,而不是以「当前终端会话里跑通一次」为准。
macOS 本地与 Linux 云主机、WSL2、容器四类环境可以并行试跑,但配置真源与密钥注入方式必须统一,否则你会在四处复制 .env 时不可避免地产生漂移。
下列步骤刻意与具体 CI 解耦,只要求交付物可验证:每一步都应有命令输出或单元状态截图写进变更记录。若某步失败,先回到第一节缺口表,再进入 doctor 排障长文 缩小范围。
锁 Node 与包管理器:在目标用户下安装 LTS,禁用会悄悄改 PATH 的 shell 插件;记录 node -v 与 npm -v 或等价工具版本到 Runbook。
执行官方安装入口:类 Unix 可用官方一键脚本思路(以当前文档为准);Windows 优先 WSL2 或文档推荐的 PowerShell 路径,避免混用两套运行时。
跑 onboard 填密钥与模型:把 API Key、工作区路径、默认模型档写进约定配置文件;禁止把秘密写进可被全局读取的临时 shell 历史。
执行 openclaw onboard --install-daemon:观察安装器提示的单元名;macOS 关注 launchctl 列表,Linux 关注 systemctl --user 或系统单元路径是否与文档一致。
冷启动验证:重启操作系统或 wsl --shutdown 后再查服务是否 active,确认不是「登录后才拉起」的假象。
记下回滚点:保留安装前镜像或容器 tag、旧配置目录压缩包;升级失败时能回到上一工作单元,而不是现场手改 plist 或 unit。
openclaw --version openclaw gateway status # macOS 例:查看已加载的守护进程标签(以实际单元名为准) launchctl list | grep -i openclaw || true # Linux 例:用户级 systemd systemctl --user status openclaw-gateway.service || true
提示:具体子命令以服务名称为准,请以你安装的版本文档输出为准;本文强调「核查层级」而非替文档锁死字符串。
Daemon 已 active 只代表进程存在,不代表监听地址、TLS 终止位置、反代头传递正确。把下面表格当发布门禁,逐项勾选后再接外部 Channel;否则会在「能聊天」与「能审计」之间留下灰区。
| 检查项 | 期望 | 常见失败征象 |
|---|---|---|
openclaw --version | 与 Runbook 钉扎版本一致 | PATH 分叉导致新旧混用 |
gateway status | 显示健康或明确错误码 | 配置解析失败却被忽略 |
| 监听接口 | 生产默认回环或由反代注入 | 公网直连 Dashboard |
| 出站 LLM | curl 探测 API 端点可达 | 企业代理未注入 daemon 环境 |
注意:仅当网关与通道都稳定后,再执行生产加固长文中的白名单与技能审计;顺序反了会出现「安全配置未生效但流量已进来」的窗口期。
下面三条不是性能基准,而是立项前核对提示,用于和财务、安全、平台一起对齐期望;请用你自己的监控与工单数据替换区间。
笔记本常受休眠、合盖、系统更新与钥匙串弹窗影响,适合开发不适合作为7×24 Agent 唯一宿主;自建服务器则要摊销运维与异地机柜成本。相较之下,把 Gateway 落在可合同化的云端 Mac Mini上,更容易把「冷启动」「版本」「监听面」写成可验收条款。
常见误区:把「本机能跑」当成「团队每人可复制」;没有统一单元名、环境块与配置真源,排障会退化成私聊里传 env 截图。
若你需要在 iOS/macOS 构建资源与 OpenClaw 自动化之间共享稳定的夜间算力,个人设备与临时借用节点往往难以满足审计与在线率;对希望少运维摩擦、可按区域选择节点、合同周期灵活的团队,VpsMesh 的 Mac Mini 云端租赁通常是更优解:把守护进程与通道策略落在专用主机上,再用站内 帮助中心 与 订购页 对齐接入流程,而不必在笔记本睡眠策略上反复妥协。
要与 Windows 工具链同机协作、频繁切换桌面环境时选 WSL2,并核对内核与 systemd 行为;纯服务器交付优先原生 Linux。远程习惯与连通说明可在 帮助中心 与相关博客交叉阅读。
先对照 安装与 Gateway 排障长文 检查 Node、权限、配置优先级与端口占用,再回到本文核对单元是否冷启动可用。
读完 生产加固与多通道清单 再开公网流量。需要专用节点时在 订购页 选择区域与周期。