在 macOS 虚拟机中运行 OpenClaw(沙箱化)

推荐方案(适合大多数人)

  • 小型 Linux VPS:用于 7×24 运行 Gateway,成本低。参见 VPS 托管
  • 专用硬件(Mac mini 或 Linux 主机):如果你想完全掌控,并需要家庭 IP 来做浏览器自动化。很多网站会屏蔽数据中心 IP,所以本地浏览往往效果更好。
  • 混合方案:把 Gateway 放在便宜的 VPS 上,需要浏览器/界面自动化时再把你的 Mac 作为 Node 连接上去。参见 NodesGateway 远程模式

只有在你明确需要 macOS 独有功能(iMessage/BlueBubbles)或想与日常使用的 Mac 严格隔离时,才用 macOS 虚拟机。

macOS 虚拟机方案

在 Apple Silicon Mac 上运行本地虚拟机(Lume)

Lume 在你现有的 Apple Silicon Mac 上运行沙箱化的 macOS 虚拟机,里面跑 OpenClaw。

这样你可以:

  • 在隔离环境中运行完整的 macOS(主机保持干净)
  • 通过 BlueBubbles 支持 iMessage(Linux/Windows 上做不到)
  • 通过克隆虚拟机实现快速重置
  • 无需额外硬件或云服务费用

云端 Mac 服务商

如果你想在云端用 macOS,托管 Mac 服务商也可以:

  • MacStadium(托管 Mac)
  • 其他托管 Mac 服务商也行,按照他们的虚拟机 + SSH 文档操作即可

拿到 macOS 虚拟机的 SSH 访问权限后,直接跳到下面的步骤 6。


快速上手(Lume,适合有经验的用户)

  1. 安装 Lume
  2. lume create openclaw --os macos --ipsw latest
  3. 完成设置助理,启用远程登录(SSH)
  4. lume run openclaw --no-display
  5. SSH 进去,安装 OpenClaw,配置 Channel
  6. 完成

准备工作(Lume)

  • Apple Silicon Mac(M1/M2/M3/M4)
  • 主机系统为 macOS Sequoia 或更高版本
  • 每个虚拟机约 60 GB 可用磁盘空间
  • 约 20 分钟

1) 安装 Lume

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/lume/scripts/install.sh)"

如果 ~/.local/bin 不在你的 PATH 里:

echo 'export PATH="$PATH:$HOME/.local/bin"' >> ~/.zshrc && source ~/.zshrc

验证安装:

lume --version

文档:Lume 安装指南


2) 创建 macOS 虚拟机

lume create openclaw --os macos --ipsw latest

这会下载 macOS 并创建虚拟机。VNC 窗口会自动打开。

注意:下载时间取决于你的网速,可能需要等一会儿。


3) 完成设置助理

在 VNC 窗口中:

  1. 选择语言和地区
  2. 跳过 Apple ID(如果后面想用 iMessage 就登录)
  3. 创建用户账户(记住用户名和密码)
  4. 跳过所有可选功能

设置完成后,启用 SSH:

  1. 打开”系统设置” → “通用” → “共享”
  2. 启用”远程登录”

4) 获取虚拟机的 IP 地址

lume get openclaw

找到 IP 地址(通常是 192.168.64.x)。


5) SSH 连接到虚拟机

ssh [email protected]

youruser 替换成你创建的账户名,IP 替换成你虚拟机的 IP。


6) 安装 OpenClaw

在虚拟机里:

npm install -g openclaw@latest
openclaw onboard --install-daemon

按照引导提示设置你的模型提供商(Anthropic、OpenAI 等)。


7) 配置 Channel

编辑配置文件:

nano ~/.openclaw/openclaw.json

添加你的 Channel:

{
  "channels": {
    "whatsapp": {
      "dmPolicy": "allowlist",
      "allowFrom": ["+15551234567"]
    },
    "telegram": {
      "botToken": "YOUR_BOT_TOKEN"
    }
  }
}

然后登录 WhatsApp(扫描二维码):

openclaw channels login

8) 无界面运行虚拟机

停止虚拟机,然后以无界面模式重启:

lume stop openclaw
lume run openclaw --no-display

虚拟机会在后台运行。OpenClaw 的 Daemon 会保持 Gateway 运行。

检查状态:

ssh [email protected] "openclaw status"

额外福利:iMessage 集成

这是在 macOS 上运行的杀手级功能。用 BlueBubbles 给 OpenClaw 添加 iMessage 支持。

在虚拟机里:

  1. 从 bluebubbles.app 下载 BlueBubbles
  2. 用你的 Apple ID 登录
  3. 启用 Web API 并设置密码
  4. 把 BlueBubbles 的 Webhook 指向你的 Gateway(例如:https://your-gateway-host:3000/bluebubbles-webhook?password=<password>

添加到你的 OpenClaw 配置:

{
  "channels": {
    "bluebubbles": {
      "serverUrl": "http://localhost:1234",
      "password": "your-api-password",
      "webhookPath": "/bluebubbles-webhook"
    }
  }
}

重启 Gateway。现在你的 Agent 可以收发 iMessage 了。

完整设置详情:BlueBubbles Channel


保存黄金镜像

在进一步定制之前,先给干净状态做个快照:

lume stop openclaw
lume clone openclaw openclaw-golden

随时重置:

lume stop openclaw && lume delete openclaw
lume clone openclaw-golden openclaw
lume run openclaw --no-display

7×24 运行

保持虚拟机持续运行的方法:

  • 保持 Mac 接通电源
  • 在”系统设置” → “节能”中禁用睡眠
  • 必要时使用 caffeinate 命令

如果想真正的 7×24 运行,考虑用专用的 Mac mini 或小型 VPS。参见 VPS 托管


故障排除

问题解决方案
无法 SSH 连接虚拟机检查虚拟机的”系统设置”中是否启用了”远程登录”
虚拟机 IP 不显示等待虚拟机完全启动,再次运行 lume get openclaw
找不到 Lume 命令~/.local/bin 添加到你的 PATH
WhatsApp 二维码扫不上确保运行 openclaw channels login 时是登录到虚拟机里(不是主机)

相关文档