ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

VMware虚拟机中部署OpenClaw:从零构建隔离环境下的个人AI智能体

VMware虚拟机中部署OpenClaw:从零构建隔离环境下的个人AI智能体 先说明一个背景如果你正打算在自己可控的机器上长期跑一个“个人智能体”OpenClaw 这类框架确实是目前最值得折腾的一批项目之一。但麻烦也恰恰在这里——它不是一个单一的可执行文件而是要跟 Docker、Node.js、Python、Git 打配合才跑得起来随手装在一台日常使用的 Ubuntu 主机上早晚会把系统环境搅得一团糟。我这次换了个思路用 VMware 开一台全新 Ubuntu 虚拟机从裸系统开始把 OpenClaw 的安装、模型接入、通道配置全部走通顺便把实测中踩到的坑和排查思路都记录下来。无论你是第一次接触虚拟机还是装到一半卡在报错里这篇都可以直接照做。1. 为什么我推荐在虚拟机里部署 OpenClaw1.1 隔离环境的价值比想象中大很多人会问直接用一台物理服务器或者就装在日常用的 Ubuntu 上不行吗当然可以但你要想清楚后果。OpenClaw 的安装脚本会检查 Docker、Node.js、Python 这些运行时还会往你的~/.bashrc、~/.openclaw/目录写入大量配置。如果你机器上已经装过其他服务很可能遇到端口冲突、依赖版本覆盖、环境变量互相污染等问题。最难受的是卸载不干净删了之后系统里还留着各种容器镜像、配置文件想恢复原样基本不可能。虚拟机的好处就是“关起门来折腾”。VMware 里开的这台 Ubuntu从网络、磁盘到系统环境都是独立的外面的电脑再怎么用都不受影响。而且虚拟机支持快照Snapshot装系统之前拍一张配置乱了直接回滚到上一个正常状态比手动卸载重装效率高太多。如果你还打算接 Teams、Discord 这类外部通道虚拟机里的网络策略、访问日志也更好管控。一个隔离的部署环境其实就是在给长期运行打底子。1.2 资源分配建议OpenClaw 本身消耗不大但 Docker 容器、Node.js 进程和后续可能跑的 Agent 都会吃资源。我在 16GB 内存的笔记本上给虚拟机分了 6GB 内存、4 核 CPU、80GB 磁盘实测跑两个 Agent 实例外加一个 Teams 通道系统负载很平稳。配置项推荐值说明操作系统Ubuntu 22.04 LTS / 24.04 LTS建议 64 位桌面版操作直观内存4GB 起步6GB 以上更稳低于 4GB 时 Docker 容器容易 OOMCPU2 核起步4 核舒适编译和容器构建时需要多核心磁盘60GB 以上系统 Docker 镜像 Agent 数据会占不少空间网络桥接模式详见 1.3磁盘大小这块要特别提醒Ubuntu 装完大概占 15GB 左右Docker 拉几个镜像再加 OpenClaw 的模型缓存随随便便就 20GB 往上走。如果你喜欢做快照快照文件还会额外占用磁盘空间所以硬盘宁可多分一些免得后期扩容麻烦。1.3 网络模式NAT 还是桥接VMware 虚拟机默认 NAT 模式虚拟机通过宿主机共享 IP 上网。NAT 的好处是安全性高外面访问不进来但坏处是如果以后想让局域网里的手机或其他设备直接访问 OpenClaw 的 Web 界面需要额外做端口转发绕一圈很麻烦。我这次直接用桥接模式。桥接下虚拟机会像一台独立主机一样拿到局域网 IPOpenClaw 启动后同一网络里的设备可以直接访问它的 Web 界面。对于要接 Teams、Discord 这类外部服务的场景桥接模式也少了 NAT 里端口映射那层配置。唯一要注意的是 IP 冲突问题建议在路由器里给虚拟机绑定固定 IP。提示如果你只是临时测试NAT 模式完全可以。但如果你打算把 OpenClaw 当作日常助手长期使用桥接模式省心得多。2. Ubuntu 全新虚拟机 0 基础安装流程2.1 下载官方镜像与 VMware 虚拟机创建先到 Ubuntu 官网下载镜像。这里建议选 LTS长期支持版本我使用的是 Ubuntu 22.04 LTS。官网提供桌面版和服务器版两种虚拟机上跑 OpenClaw 我推荐桌面版理由很简单偶尔要打开浏览器看文档、调试界面有图形界面方便很多。服务器版虽然有轻量优势但对第一次搞虚拟机的人来说图形界面容错率高。下载好 ISO 后打开 VMware Workstation新建虚拟机选择“自定义”这样能自行指定硬件参数而不是被默认值牵着走。在“安装程序光盘映像文件”处指向刚才下载好的 Ubuntu ISO。客户机操作系统选 Linux版本选 Ubuntu 64 位。分配内存、CPU 和磁盘按下文推荐的参数来。完成后先不要急着开机在“虚拟机设置”里把“虚拟化引擎”相关选项勾上给嵌套虚拟化留出余地。有个经常碰到的问题Windows 机器上 VMware 安装 Linux 时报错蓝屏。这个我放到第 5 章详细讲这里先记住一条经验——如果蓝屏先尝试关闭 Windows 的 Hyper-V 和内核隔离或者在 VMware 的设置里关掉“虚拟化 Intel VT-x/EPT”。2.2 Ubuntu 安装过程关注点从 ISO 启动后选择“Install Ubuntu”进入安装流程。语言可以选中文键盘默认即可。让我说几个关键步骤安装类型选“清除整个磁盘并安装 Ubuntu”。虚拟机里的磁盘本来就是全新的这步不用害怕。如果网络环境允许勾选“为硬件安装第三方软件”和“下载更新”省得装完再手动补。创建用户名和密码时建议记牢。注意普通用户和 root 用户是分开的OpenClaw 配置里很多目录都在当前用户家目录下别搞混。分区这里新手建议直接选“使用整个磁盘”让安装器自动分区。自己手动分容易出现 EFI 分区、swap 分区设置不当的情况反而增加出错概率。安装完后重启拔掉安装介质进入系统。2.3 装完先做的三件事进入桌面后先别急着装 OpenClaw先把系统基础环境收拾干净。第一件事是更新软件源和系统包sudo apt update sudo apt upgrade -y第二件事是安装 open-vm-tools。这是 VMware 虚拟机和宿主机之间的集成工具装好后鼠标切换、复制粘贴、分辨率自适应都会正常。没装它的话从宿主机复制命令到虚拟机里是做不到的这也是很多人卡住的原因之一sudo apt install -y open-vm-tools open-vm-tools-desktop第三件事是检查网络连通性ping -c 4 baidu.com网络不通的话后面所有步骤都白搭。桥接模式下如果 ping 不通多半是虚拟机没拿到有效 IP运行ip a查看地址必要时重启网络服务或检查路由器。提示安装过程中如果卡在“检测到多个操作系统”或更新下载阶段很久没反应多半是网络慢别干等直接拔掉网线跳过去装完系统再更新。3. 开发运行时安装Docker、Node.js、Python、Git3.1 先装 Docker EngineOpenClaw 的核心 Agent 运行时是以 Docker 容器形式交付的。容器的好处是依赖全部打包坏处是你得先把 Docker 环境弄好。Ubuntu 系统自带 apt 源里也有 docker.io但版本通常偏旧我建议从 Docker 官方仓库装。用官方一键脚本最快curl -fsSL https://get.docker.com | bash脚本执行完把当前用户加入 docker 组这样不用每次敲 sudosudo usermod -aG docker $USER newgrp docker验证安装docker --version docker run hello-world能显示版本、能跑通 hello-worldDocker 就没问题了。如果你执行 docker 命令遇到权限报错说明没重新登录或者 newgrp 没生效注销重新登录一次即可。3.2 Node.js 环境配置Ubuntu 自带的 Node.js 版本通常旧到没法用OpenClaw 的安装脚本和不少工具对 Node 版本有要求。这里推荐通过 NodeSource 仓库装 Node.js 20 LTScurl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt install -y nodejs node -v npm -v版本号能正常显示就说明安装到位。如果你对版本有强迫症也可以用 nvm 来管理多版本 Node但对虚拟机上跑 OpenClaw 来说系统级安装完全够用。3.3 Python 与 Git 的配置细节Python 这块其实比较简单Ubuntu 22.04 系统自带 Python 3.10OpenClaw 对 Python 版本要求不苛刻直接用系统的就行。有一点必须叮嘱不要因为看着版本旧就去手动升级系统自带的 Python一旦 Python 系统级文件被动过Ubuntu 的很多底层工具都会出问题。要装新版本用pyenv或者虚拟环境隔离着来。Git 安装同样简单sudo apt install -y git git --version装完后记得配置用户名和邮箱。OpenClaw 的一些版本管理、插件拉取操作会用到 Git如果不配置执行相关操作时会报“Please tell me who you are”这类错误git config --global user.name yourname git config --global user.email youexample.com到这里环境依赖就齐了。一条命令确认所有关键工具是否就位python3 --version node -v npm -v git --version docker --version五个版本号都正常显示就可以进入 OpenClaw 本体安装了。4. OpenClaw 安装、模型配置与通道接入4.1 安装脚本与初始化检测环境准备好后执行 OpenClaw 官方安装脚本curl -fsSL https://raw.githubusercontent.com/openclaw/openclaw/main/scripts/install.sh | bash脚本会自动检测 Docker、Node.js、Python 是否存在缺少的依赖会提示安装。安装完成后会得到一个openclaw命令。先不要急着启动运行诊断命令看看环境情况openclaw doctor这个命令会检查 Docker 连接、配置文件目录、依赖版本等信息终端会输出几张勾选状态的清单。如果有标红的项目按照提示修复再继续。我第一次跑的时候 Docker 检测标红原因就是没把当前用户加入 docker 组重新登录即可解决。4.2 模型供应商接入OpenAI 与千问OpenClaw 本身不带大模型它把模型请求转发给你在配置里指定的供应商。所以安装完的第一件事就是把模型 API 的密钥配置进去。以 OpenAI 为例在~/.bashrc里追加export OPENAI_API_KEYsk-你的密钥保存后用source ~/.bashrc刷新再运行 OpenClaw 时就能识别到这个环境变量。如果你用的是国内模型服务比如百炼千问原理一样只是密钥和模型标识不同export DASHSCOPE_API_KEYsk-你的千问密钥配置好密钥后进入 OpenClaw 的设置流程或者直接修改配置文件指定默认模型。OpenClaw 的配置目录在~/.openclaw/每个 Agent 对应一个子目录里面的配置文件记录了模型供应商、模型名称、角色指令等参数。我通常会在~/.bashrc里把主要的环境变量写全确保重启虚拟机后不用重新配置export OPENCLAW_DEFAULT_MODELgpt-4o export OPENCLAW_DEFAULT_AGENTmy-assistant这里有人会犯一个低级错误环境变量写进~/.bashrc后忘记source然后怎么重启都不生效急得团团转。记住修改完环境变量文件必须执行source ~/.bashrc重新加载或者干脆注销一次登录。4.3 通道概念与如何选择 Channel你可能看到很多人在问“OpenClaw agent 怎么选择 channel”这个问题确实关键。通道Channel就是你跟 Agent 之间的入口OpenClaw 支持很多种原生的终端通道、Microsoft Teams 通道、Discord 通道、Slack 通道、Obsidian 笔记通道等。选择通道的原则我给三个建议日常办公用什么就优先接什么。比如公司内部重度用 Teams那 Teams 通道就是你的首选。考虑鉴权复杂度。Teams 的接入需要注册应用、配置 OAuth步骤稍微多Discord 只需要建一个 Bot 和 Token门槛低很多。如果只做本地测试直接用终端通道就够了等交互逻辑跑通后再接外部通道。查看当前可用的通道openclaw channels list接入新通道的命令格式大致是openclaw channels add teams openclaw channels connect teams具体命令以当前版本openclaw channels --help输出为准。接 Teams 时系统会引导你粘贴 Microsoft 应用的 App ID、Client Secret 等参数按提示操作就行。如果你是 Obsidian 用户接 Obsidian 通道后可以直接在自己的笔记库里和 Agent 对话它还会把交互内容同步进笔记双链体系里相当于给你配了一个智能写作助手。社区里用这种方法的人不少。接完通道后推荐先跑一次全链路测试在 Teams 里给机器人发一条消息看 Agent 是否正常回复。这一步能验证模型密钥、通道配置、网络链路是否全部通畅。4.4 固化配置的几个小习惯OpenClaw 配置好后有几个习惯建议从一开始就养成。第一把配置文件和密钥目录做备份。~/.openclaw/目录里是一个 Agent 的全部状态数据包括会话记录、配置信息。定期把它打包存到宿主机或外部存储上当虚拟机的快照反而是常用“后悔药”。有些朋友还不知道OpenClaw 的 Agent 是有“记忆”的它会读取历史会话记录来调整行为开着这个前提其实这也正是服务长期来控制自动化和持续性。万一哪天换机器配置文件打包走新机器解压就完事非常省事。第二默认语言调整。如果你希望 Agent 用中文回答可以在 Agent 配置里写入指令比如“默认使用简体中文与用户交流”或者通过环境变量设置语言选项。我是在 Agent 配置的 instructions 字段里直接写的效果稳定很多避免每次对话都要在 prompt 里强调一遍。第三每个 Agent 单独一套密钥和模型组合。OpenClaw 支持创建多个 Agent分别配置不同的模型和通道。比如一个 Agent 专门处理 Teams 里的工作消息用保守的模型另一个 Agent 用来做创意写作用生成能力更强的模型。这样的隔离在资源占用和调用成本上更可控。5. 高频报错排查与虚拟机性能调优5.1 “session file locked (timeout 60000ms)” 怎么处理这个报错我在配置 Teams 通道后遇到过agent failed before reply: session file locked (timeout 60000ms)第一次看到挺懵的说的直白些就是 OpenClaw 在保存 Agent 会话时要操作会话文件但发现这个文件被锁住了等待 60 秒也没等到解锁于是放弃本次回复。出现这个锁绝大多数情况是上一次 Agent 进程没有正常退出旧进程还占着会话锁或者多个 Agent 实例同时操作同一个会话文件。排查和解决思路先看 OpenClaw 相关进程和容器docker ps -a | grep openclaw ps aux | grep openclaw把所有相关容器停止而不是直接删docker compose -f ~/.openclaw/docker-compose.yml stop然后找到锁文件。OpenClaw 的会话锁一般在~/.openclaw/目录下搜索带.lock后缀的文件find ~/.openclaw -name *.lock -type f确认没有 Agent 进程在运行时把这些锁文件删掉再重新启动服务即可。提示删锁之前一定要确认所有 Agent 进程已经停止。我上次没停干净就删锁结果 Agent 恢复后会话乱了一小段虽然不至于丢数据但也够麻烦的。5.2 环境变量配置错误的典型症状网上搜“ubuntu环境变量配置错误”能搜出一大堆人喊救命。最常见的症状就是刚执行完export PATHxxx后终端直接提示找不到ls、sudo等基础命令甚至什么都干不了。原因很简单你覆盖而不是追加了 PATH。正确的做法一定要保留原有的$PATHexport PATH/自定义目录:$PATH如果你已经把 PATH 覆盖坏了当前终端里还能用哪个命令就赶紧救一下。比如/usr/bin/sudo还可用的话直接用全路径去修改~/.bashrc把错误的 PATH 那一行改回来。排查环境变量配置是否正常最直接的方式echo $PATH ls -la ~/.bashrc grep -n export PATH ~/.bashrc另外很多人配置了环境变量后抱怨 OpenClaw 没读取到十有八九是会话没刷新。新开的终端会重新执行~/.bashrc所以配置完要么source ~/.bashrc要么直接开一个新终端再测试。别在一个旧终端里反复捣鼓。5.3 网络与镜像下载速度慢全新 Ubuntu 虚拟机最容易遇到的问题就是 apt 下载慢、Docker 拉镜像超时。这跟官方源在国内访问速度不理想有直接关系。apt 换源的常规做法备份源文件并替换成国内镜像源sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo sed -i s/archive.ubuntu.com/mirrors.aliyun.com/g /etc/apt/sources.list sudo apt updateDocker 拉取镜像超时则通过配置镜像加速器解决。在/etc/docker/daemon.json中写入{ registry-mirrors: [https://docker.m.daocloud.io] }然后重启 Dockersudo systemctl restart docker如果你用的 Ubuntu 版本比较新apt 源配置改到了/etc/apt/sources.list.d/ubuntu.sources文件里路径可能不同注意区分。使用镜像加速器只是技术优化手段日常使用一切功能都不受影响。5.4 VMware 安装 Linux 蓝屏问题很多同学在虚拟机里装 Ubuntu 时遇到 Windows 蓝屏这个问题和 Ubuntu 镜像关系不大几乎都是 VMware 与 Windows 虚拟化功能冲突导致的。常见原因有两个一是 Windows 开启了 Hyper-V、内核隔离或基于虚拟化的安全VMware 的虚拟化引擎跟它抢 VT-x 硬件资源二是虚拟机设置里强行勾选了“虚拟化 Intel VT-x/EPT”但宿主机不支持或 BIOS 里没开。处理思路Windows 搜索“内核隔离”把内存完整性关闭。在 Windows 功能里关闭 Hyper-V 相关的项。重启电脑后再启动 VMware。如果是 VMware Workstation 较老版本升级到 16/17 版对新版 Windows 兼容更好。注意关闭内核隔离会降低一层系统防护如果只是做本地测试问题不大但如果是企业环境先和 IT 确认一下策略。5.5 虚拟机长期跑 OpenClaw 的性能习惯OpenClaw 不是跑一次就完事的脚本而是长期驻留的服务。虚拟机跑久了容易出现磁盘占用膨胀、日志越堆越多的问题。先说 Docker 日志。容器长时间运行会积累大量 stdout 日志默认还没有大小限制时间一长休眠地占用几个 GB。下面这条命令能看容器日志大小docker ps -aq | xargs -I {} sh -c echo {} docker logs {} --tail 10 2/dev/null /dev/null || true如果想限制日志大小可以在/etc/docker/daemon.json里加上{ log-driver: json-file, log-opts: { max-size: 50m, max-file: 3 } }重启 Docker 后日志达到 50MB 就会自动轮转避免无限膨胀。磁盘空间也要定期检查df -h docker system prune -a虚拟机做快照是 VMware 的救命功能。每次配置大改之前都拍一个快照等于给自己买了一份保险。我现在的习惯是系统装完打一个基础快照OpenClaw 配置好跑通后再打一个“干净状态”的快照。之后随便怎么折腾出错随时回退到这个标准状态。最后把~/.openclaw/目录单独备份到宿主机上。这个目录包含了所有 Agent 的配置、会话记录和通道信息相当于 OpenClaw 的“存档”。备份命令很简单tar -czf openclaw-backup.tar.gz ~/.openclaw/出问题时解压回来就能恢复到之前的状态比重新配置快得多。写在最后。这套流程我完整走下来大约花了一个下午大多数时间都耗在了环境问题和网络问题上OpenClaw 本身的安装反而很顺利。如果让我重来一次我会在装系统打快照这件事上做得更早一些——刚装完纯净系统时就拍一张后续每一步都有回退的余地折腾起来真的能放开手脚。希望这篇教程能帮你少走几段弯路早日把 OpenClaw 跑起来。
返回列表