1. 为什么要在 VMware Workstation 里跑 OpenClaw
OpenClaw(龙虾)这类 AI 工具链在本地跑起来,最怕的就是把宿主机环境搞乱:Node 版本冲突、全局依赖互相覆盖、配置文件散落一地。我自己的做法是把它整个塞进 VMware Workstation 的 Ubuntu 虚拟机里,宿主机只留一个 VMware,出问题直接回滚快照,几秒钟回到干净状态。
这篇部署日志面向的是想在本地跑通 AI 工具链的开发者,尤其是习惯 Windows 主力机、又想有个隔离 Linux 环境的人。核心链路是:VMware Workstation 装 Ubuntu,Ubuntu 里装 OpenClaw,再用 TaoToken 统一 Key 把模型通道接上,最后做一次连通性验证。全程命令可复制,配置骨架直接给。
虚拟机你可以理解成用软件模拟出来的一台独立电脑,有自己的 CPU、内存、硬盘和操作系统,跟宿主机隔离。Linux 这边本文用 Ubuntu Desktop,图形界面友好,命令行该有的都有。OpenClaw 是跑在 Node 环境里的工具,所以前置就是 curl、git、nvm、Node 这一串。
需要提前说明的是,虚拟机网络和共享目录这两块是新手最容易卡住的地方,我会单独拆开讲,因为后面 OpenClaw 能不能正常访问外部 API,全看这两步。
2. TaoToken 前置:统一 Key 与 API 通道准备
OpenClaw 本身不绑定某一家模型,它需要一个能对话的 API 通道。我试过在多个工具里分别填不同厂商的 Key,管理起来很烦,后来改成用 TaoToken 做统一入口,一个 Key 走多个模型,配置只维护一份。
TaoToken 在这里的角色是统一 Key 和 API 通道:你在控制台生成一个 API Key,然后在 OpenClaw 的配置里把 base_url 指向它的 API 地址,模型名按需切换。这样虚拟机里只需要存一个 Key,换模型不用改一堆环境变量。
具体动作分三步。第一步,打开控制台生成 Key:
- 控制台入口:https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite
- API Key 管理:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite
第二步,记下 API 基础地址,后面配置里要用:
- API 地址:https://taotoken.net/api
第三步,如果你后面要长期跑编码类任务或者 Agent,可以了解下 Coding Plan,额度模型跟按量不一样:
- Coding Plan:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite
注意:Key 只存在虚拟机里,别提交到 git。建议在 Ubuntu 里用环境变量或者单独的配置文件保存,配置文件加进 .gitignore。
接入文档在这里,配置字段对不上时以文档为准:
- 接入文档:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite
3. VMware Workstation 与 Ubuntu 落地配置
3.1 虚拟机创建关键参数
VMware Workstation 在 Broadcom 官网下载,需要先注册账号再搜 download,过程有点绕,耐心点。下载前记得点进协议浏览一下,否则同意按钮不亮。安装一路 Next 即可。
创建新虚拟机时,我只说几个真正影响后续使用的参数:
| 参数 | 建议值 | 说明 |
|---|---|---|
| 客户机系统 | Ubuntu 64 位 | 与镜像对应 |
| 内存 | ≥ 8GB | OpenClaw + Node 编译吃内存 |
| 处理器 | 2–4 核 | 宿主机允许就多给 |
| 磁盘 | 40GB 起 | 后期可扩,扩前先快照 |
| 网络 | NAT 或桥接 | 见 3.2 |
Ubuntu 镜像从官网下载桌面版即可。安装过程静待完成,VMware Tools 一般会自动装好,剪贴板共享和分辨率自适应都靠它。
3.2 网络模式怎么选
这是第一个坑。NAT 模式下虚拟机能访问外网,宿主机也能访问虚拟机,但局域网其他机器访问不到虚拟机;桥接模式下虚拟机相当于局域网里一台独立设备,有独立 IP。
如果你只是让 OpenClaw 访问外部 API,NAT 就够了,最省事。如果你还要从宿主机浏览器访问虚拟机里跑的服务,NAT 也能通过端口转发实现。我一般先用 NAT,确认能通再考虑桥接。
验证网络是否通,进 Ubuntu 后直接:
ping -c 3 taotoken.net curl -I https://taotoken.net/api第一条看 DNS 和出网,第二条看 HTTPS 是否可达。如果 ping 不通域名但能 ping 通 IP,多半是 DNS 问题,检查/etc/resolv.conf。
3.3 共享目录配置
宿主机和虚拟机传文件,用 VMware 的共享文件夹最方便。在虚拟机设置里启用共享文件夹,指向宿主机一个目录,比如D:\vm-share。然后在 Ubuntu 里挂载:
sudo mkdir -p /mnt/hgfs/share sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other ls /mnt/hgfs如果vmhgfs-fuse提示找不到,说明 VMware Tools 没装全,重新安装 open-vm-tools:
sudo apt update sudo apt install -y open-vm-tools open-vm-tools-desktop挂载成功后,/mnt/hgfs/share里就能看到宿主机的文件。把下载好的安装脚本、配置文件放这里,虚拟机里直接读,省得来回拖拽。
4. OpenClaw 安装与 settings.json 骨架
4.1 前置依赖安装
进 Ubuntu 终端,先更新源再装基础工具:
sudo apt update sudo apt install -y curl git装 nvm 管理 Node 版本,避免系统自带 Node 太旧:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash source ~/.bashrc如果这条 curl 拉不下来,多半是网络问题,可以换用共享目录里提前下好的脚本本地执行。装完验证:
nvm --version接着装指定版本 Node:
nvm ls-remote | grep v20 nvm install 20.11.0 nvm use 20.11.0 node -vnode -v输出v20.11.0就对了。
4.2 安装 OpenClaw
官方一键脚本:
curl -fsSL https://openclaw.ai/install.sh | bash装完检查命令是否可用:
openclaw --version如果提示 command not found,通常是 PATH 没刷新,source ~/.bashrc或者重开终端。
4.3 settings.json 配置骨架
OpenClaw 的配置一般放在用户目录下的配置文件夹里,具体路径以openclaw --help或接入文档为准。下面是一个接入 TaoToken 统一 Key 的骨架,字段名按你实际版本微调:
{ "provider": { "base_url": "https://taotoken.net/api", "api_key": "sk-你的TaoToken密钥", "model": "claude-3-5-sonnet", "timeout": 60 }, "workspace": "/home/yourname/openclaw-workspace", "log_level": "info" }几个要点:base_url填 TaoToken 的 API 地址,不要带多余路径;api_key用控制台生成的那串;model按你实际要用的模型名填,换模型只改这一行。如果你更习惯 TOML 风格,等价骨架如下:
[provider] base_url = "https://taotoken.net/api" api_key = "sk-你的TaoToken密钥" model = "claude-3-5-sonnet" timeout = 60 [workspace] path = "/home/yourname/openclaw-workspace"注意:配置文件里的 Key 是明文,虚拟机虽然隔离,也建议把文件权限收紧:
chmod 600 settings.json。
5. 连通性验证与成功结果
配置写完,先做一次最小验证,确认 Key 和通道都通。OpenClaw 一般有自检或者对话命令,按你版本执行,比如:
openclaw chat "你好,回复一句话确认连通"如果命令名不同,用openclaw --help看子命令。预期结果是终端里返回模型的一句话回复,没有报 401 或超时。
想单独验证 API 通道,可以直接 curl:
curl https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer sk-你的TaoToken密钥" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-3-5-sonnet", "messages": [{"role": "user", "content": "ping"}] }'返回 JSON 里带choices字段就说明通道正常。这一步能过,OpenClaw 里基本不会因为 Key 问题失败。
验证模型对话效果,可以直接在网页端试:
- 模型对话:https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=chat&utm_campaign=rewrite
成功结果长这样:终端返回模型回复,日志里没有401 Unauthorized、没有ECONNREFUSED、没有timeout。到这一步,虚拟机里的 OpenClaw 就算跑通了。
6. 本篇常见错排查
6.1 curl 安装脚本拉不下来
现象:curl: (7) Failed to connect或长时间卡住。原因通常是虚拟机网络没通,或者 DNS 解析失败。先在 Ubuntu 里ping taotoken.net,不通就回到 3.2 检查网络模式。NAT 模式下确认 VMware 的 NAT 服务在宿主机上正常运行。
6.2 nvm 装完 node 命令找不到
现象:nvm install成功,但新开终端node -v报 command not found。原因是 nvm 的初始化脚本没写进 shell 配置。检查~/.bashrc末尾有没有 nvm 相关几行,没有就手动补上再source ~/.bashrc。
6.3 OpenClaw 报 401 或鉴权失败
现象:对话命令返回鉴权错误。先确认api_key没有多余空格或换行,再确认base_url是https://taotoken.net/api而不是别的路径。Key 失效就去控制台重新生成:
- API Keys:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite
6.4 共享目录里看不到文件
现象:/mnt/hgfs为空。先确认虚拟机设置里共享文件夹已启用并指向了宿主机目录,再确认 open-vm-tools 装好。挂载命令要带-o allow_other,否则普通用户读不到。
6.5 模型名填错导致 404
现象:返回model not found。不同通道支持的模型名不一样,别凭记忆填。以接入文档里的模型列表为准:
- 接入文档:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite
排障时如果怀疑是接入层问题,优先看 API Keys 和接入文档两块,基本能覆盖九成配置错误。
7. 把 Key 统一之后的工作流
虚拟机跑通只是第一步。真正省事的地方在于,后面你再装别的 AI 工具,不管是编码助手还是 Agent 框架,都复用同一个 TaoToken Key 和同一个 base_url,不用每换一个工具就重新配一遍厂商密钥。长期跑编码类任务的话,Coding Plan 的额度模型比按量更适合高频调用:
- Coding Plan:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite
如果你用的是 Claude Code 这类工具,接入方式在文档里有单独说明:
- Claude Code 接入:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=claudecode&utm_campaign=rewrite
虚拟机这边记得养成习惯:装完 OpenClaw、配好 Key、验证通过之后,立刻打一个快照。后面不管怎么折腾,出问题回滚就行。共享目录里放一份配置文件备份,重装虚拟机时直接拷回来,几分钟就能恢复整套环境。