2026 OpenClaw 无头云 Mac mini M4 首次安装:安装器、launchd 与 18789 端口冲突
在租用的无头 Mac mini M4 上首次安装 OpenClaw,常见失败来自误用图形化引导、Homebrew 交互卡住、默认网关端口与旧实验服务冲突,或 launchd plist 落在错误的用户作用域。 本文面向仅通过 SSH 管理的云主机:Apple Silicon M4、10 核 CPU、16GB 统一内存、1Gbps 网络。你将获得前置检查清单、安装器与手工 Node 路径对比表、可复现的九步流程(含守护进程)、首装阶段的症状—对策矩阵,以及可贴进工单的 FAQ。安装完成后,若需跟随 semver 升级,请继续阅读 网关升级切换。
粘贴安装脚本前先确认的四件事
- 运行用户:网关跑在主 SSH 用户还是专用自动化账户?不同用户的 launchd 标签不可冲突。
- Node 基线:2026 年安装路径普遍要求 Node 22+,先用
node -v自检。 - 端口占用:文档默认 TCP 18789;共享实验机最常在这里撞车。
- 密钥落点:API Key 在 shell profile、launchd 环境变量还是外部保管库?混用会出现「SSH 里能用、守护进程 401」。
跳转主机转发 agent 前,可先扫一眼 帮助中心 的 SSH 说明。
安装器脚本 vs 手工 Node:共享云 Mac 上的取舍
| 路径 | 适用 | 无头场景注意 | 2026 建议 |
|---|---|---|---|
| 官方 curl 安装 | 希望 CLI+守护一次到位 | 可能触发 Homebrew;需非交互或预装 brew | ZoneVM 新机默认首选 |
| fnm/nvm 手工 Node | 安全要求锁定补丁版本 | launchd 必须引用与 shell 相同的二进制路径 | 金融/合规团队常用 |
| 离线 tarball + 全局 npm | 镜像内网同步 | 升级手工,易在多机漂移 | 配合配置管理使用 |
仅 SSH 场景的九步首装流程
- 登录并快照:记录
sw_vers、uname -m,用lsof -iTCP:18789 -sTCP:LISTEN看端口。 - 准备 Node 22+:若用 fnm,记下将写入 plist 的绝对路径。
- 执行厂商安装器:按上游文档使用适合无人值守的标志位;除非手册要求,避免盲目 sudo。
- 跑 onboarding:通过环境变量注入模型厂商密钥,勿把密钥写进可被 git 追踪的工作区。
- 安装守护进程:使用
--install-daemon一类参数;确认 plist 位于~/Library/LaunchAgents/用户级目录。 - 加载并验证:按文档使用
launchctl启停;用launchctl print看退出码。 - 本机健康检查:先在 localhost 用 curl 探活,再放开更大范围访问。
- 有意识的暴露:若跨区访问,前置 TLS 与白名单,勿把无鉴权面板绑到 0.0.0.0。
- 记录回滚包:对
~/.openclaw(或文档指定的配置根)打 tarball,并在变更单记录 SHA256。
引导阶段若需看一眼浏览器技能,可短时开 VNC,而不是长期打开完整远程桌面。
症状矩阵:首装阶段高频故障
| 现象 | 可能原因 | 处理顺序 |
|---|---|---|
18789 address already in use |
僵尸进程或其它服务占用 | 停冲突任务;若必须共存,同时改配置与 plist 绑定端口 |
| 守护进程起得来,外网健康失败 | 只监听 localhost | 按厂商说明调整监听地址,再从另一台机器 curl |
| 登出后失效 | 以前台 shell 跑网关 | 重装守护并确认开机加载 |
| 模型调用 401 | 密钥只在 shell,不在 launchd | 把 EnvironmentVariables 写进 plist 或改密钥文件路径 |
16GB 统一内存下的并发护栏
浏览器技能与本地嵌入并行时容易顶满内存。若同机还有人跑 Xcode,建议为并行技能设上限并保留约 4GB 余量。10 核 M4 算力通常够用,但内存触 swap 会让 SSH「像死机」——首周浸泡测试时请观察 memory_pressure。
网络与区域:安装阶段也别忽视
首次安装时,Node 压缩包、模型 SDK、浏览器自动化依赖的下载速度仍受云 Mac 区域影响。若 npm 与 git 远端偏亚太,东京侧主机往往比美东更快完成安装——可与 依赖仓就近选区 的测量方法对照。装好以后,Webhook 消费端若在另一大洲,需要 TLS 终结靠近用户或区域反代;1Gbps 网口利于批量制品同步,但无法消除光速 RTT。
- 记录安装耗时与流量:写入内部 runbook。
- 固化 DNS 配置:分裂解析会在重启后让健康检查误报。
- 列出出站域名:一次性交给安全团队放行。
- 双端验证:本机 curl + 开发者笔记本沿生产路径复测。
- 72 小时浸泡:合成探针跑满再标生产。
与运维/安全协同的审计要点
首装验收单里建议单列「谁能在何时读取密钥」:launchd 进程的 euid、plist 文件权限(常见应为 600)、工作区目录是否对同机其他用户可读。若启用系统完整性相关提示,请截屏附在变更单,避免后续排障时争论「当时点了没有」。若使用共享云 Mac,应在变更记录里写明网关监听地址从 127.0.0.1 调整到内网网段的具体 CIDR,以及防火墙放行端口是否仅限跳板机网段。模型厂商的 API 往往有按日调用上限,首周把 429 响应率与重试退避策略写进 on-call 手册,避免把「配额耗尽」误判成安装失败。磁盘方面,浏览器技能缓存与日志默认落在用户目录,定期清理或轮转应纳入同一 runbook,否则 16GB 内存虽未报警,SSD 也可能被 trace 写满影响 launchd 重启速度。
FAQ
- 能多实例吗?端口与 plist 标签必须唯一,避免争用同一工作区路径。
- 要在 tmux 里装吗?建议——SSH 断开不应截断长时间下载。
- 升级有何不同?首装不走迁移逻辑;生产 semver 跳跃请走升级专文。
为何 2026 年仍推荐在 ZoneVM 的 Mac mini M4 上跑 OpenClaw
M4 在常驻 launchd 场景下 idle 功耗低,适合秒级响应的 webhook 技能。10 核与 16GB 统一内存允许网关与轻量 CI 钩子、日志尾随共存,偶尔归档也不抢核心。原生 macOS 让钥匙串与浏览器自动化路径与笔记本一致,缩小环境差。香港、日本、韩国、美国节点可把网关放在用户或注册表更近的一侧;1Gbps 利于大流量同步。通过 定价页 租用 Mac mini M4,可把「黄金 plist + Node 路径」克隆到第二台 staging,九步清单跑通两遍再晋升,首装从玄学变例行演练。