拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

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

在 WSL2 Ubuntu 上部署 OpenClaw:用 nvm 管理 node.js 并接入 TaoToken 的完整配置

在 WSL2 Ubuntu 上部署 OpenClaw:用 nvm 管理 node.js 并接入 TaoToken 的完整配置 1. 为什么 Windows 用户装 OpenClaw 绕不开 WSL2OpenClaw 是一个跑在终端里的 AI Agent 运行框架能接大模型、挂技能包、连飞书机器人把「对话」变成「能动手干活」。它官方推荐在 Linux 环境运行原生 Windows 直接装会踩一堆路径和权限的坑所以 Windows 10/11 用户最省心的路径就是 WSL2 Ubuntu。WSL2 本质是 Windows 里跑的一个轻量 Linux 子系统文件系统、进程、网络都跟真 Linux 几乎一致OpenClaw 在里面跑跟在服务器上跑没区别。这篇面向的是「Windows 上想一次跑通 OpenClaw」的人你已经装了或准备装 WSL2 Ubuntu会用一点命令行但被 node.js 版本、nvm 环境变量、依赖冲突卡住过。我会把 nvm 装 node.js 22、OpenClaw 安装、config.toml 与 settings.json 骨架、以及接入 TaoToken 统一 Key 通道的完整流程走一遍最后做一次 API 连通性验证。目标很明确一次跑通不反复重装。先说清楚一个前提OpenClaw 需要 node.js 22.x 或更高版本低于这个版本会在安装依赖时直接报 engine 不匹配。所以 node.js 的版本管理是整条链路的地基nvm 就是用来干这个的。2. 前置准备WSL2 Ubuntu 与 nvm 环境2.1 确认 WSL2 与 Ubuntu 就位在 PowerShell 里先看当前 WSL 状态wsl -v wsl -l -v如果还没装用下面命令装 Ubuntu 22.04wsl --install -d Ubuntu-22.04 wsl --set-default-version 2C 盘空间紧张的话安装可能报错。这时候可以从 Ubuntu 官方镜像站下载 rootfs tar 手动导入到 D 盘mkdir D:\WSL\Ubuntu wsl --import MyUbuntu D:\WSL\Ubuntu2204 D:\WSL\Ubuntu\ubuntu-jammy-wsl-amd64-ubuntu22.04lts.rootfs.tar.gz --version 2 wsl -l -v wsl -d MyUbuntu导入后首次进入是 root 用户。不要用 root 跑 OpenClaw权限太高任何被执行的指令都拿到系统最高权限插件或技能包有漏洞会直接波及整个系统。建一个普通用户useradd -m -s /bin/bash yourname passwd yourname usermod -aG sudo yourname id yourname su - yourname再写/etc/wsl.conf让 WSL 默认以这个用户登录nano /etc/wsl.conf内容[user] defaultyourname保存后退出 Ubuntu在 Windows 侧强制关机再重启wsl --terminate MyUbuntu wsl -d MyUbuntu2.2 用 nvm 装 node.js 22nvm 是 node.js 的版本管理器装它之后切换版本不用动系统目录。安装脚本curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash如果这条命令卡住多半是网络到 GitHub 不稳可以换用镜像源或稍后重试不要中途 CtrlC 留下半截文件。装完加载环境变量export NVM_DIR$HOME/.nvm [ -s $NVM_DIR/nvm.sh ] \. $NVM_DIR/nvm.sh [ -s $NVM_DIR/bash_completion ] \. $NVM_DIR/bash_completion nvm -v为了让新开的终端也自动加载把上面三行追加到~/.bashrc末尾。然后用国内镜像装 node.js 22NVM_NODEJS_ORG_MIRRORhttps://npmmirror.com/mirrors/node nvm install 22 nvm use 22 node --version npm --versionnode --version输出 v22.x 就对了。这里有个常见坑nvm use 22只在当前 shell 生效新开终端如果没设默认版本会回到系统 node。执行nvm alias default 22固定下来。3. 安装 OpenClaw 并接入 TaoToken 统一 Key 通道3.1 安装 OpenClaw一键脚本curl -fsSL https://openclaw.ai/install.sh | bash openclaw --version安装过程会问几个交互问题快速启动还是手动调整、模型提供者过滤器、默认模型、对话工具、搜索引擎、技能包、额外依赖、地图访问、机器人孵化。第一次装建议先快速启动非核心功能一路跳过后面再补。跑完后浏览器打开http://localhost:18789能看到界面就说明基础安装完成。此时界面可能显示离线需要配置网关令牌cat ~/.openclaw/openclaw.json | grep token把拿到的 token 粘到网关令牌框里即可。3.2 为什么用 TaoToken 统一 Key 通道OpenClaw 支持多家模型提供者但每接一家就要维护一套 apiKey、baseUrl、模型列表换模型时改配置容易写错。TaoToken 提供统一的 Key 通道把不同模型的接入收敛到一个 baseUrl 和一把 Key 上配置只写一次后面换模型只改模型 id。官网入口在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 端点是 https://taotoken.net/api 。在 OpenClaw 里配置模型提供者用openclaw config set写 JSON 骨架。下面这份是接入 TaoToken 通道的示例把你的TaoToken Key换成你在控制台生成的 Keyopenclaw config set models.providers.taotoken { api: openai-completions, apiKey: 你的TaoToken Key, baseUrl: https://taotoken.net/api, models: [ { id: claude-sonnet-4-5, name: Claude Sonnet 4.5 }, { id: gpt-4o, name: GPT-4o } ] }模型 id 按你实际要用的填TaoToken 控制台里能看到可用模型清单。写完重启网关openclaw gateway restart3.3 config.toml 与 settings.json 可复制骨架OpenClaw 的配置分两处~/.openclaw/openclaw.json是主配置config.toml用于部分运行时参数。下面给一份可直接改的config.toml骨架[gateway] host 127.0.0.1 port 18789 [models] default taotoken/claude-sonnet-4-5 [models.providers.taotoken] api openai-completions baseUrl https://taotoken.net/apisettings.json骨架放在项目或用户配置目录按 OpenClaw 读取顺序{ model: taotoken/claude-sonnet-4-5, temperature: 0.7, maxTokens: 4096, providers: { taotoken: { apiKeyEnv: TAOTOKEN_API_KEY } } }把 Key 放环境变量比写死在文件里安全。在~/.bashrc里加export TAOTOKEN_API_KEY你的TaoToken Key然后source ~/.bashrc。注意openclaw config set写的 JSON 和config.toml不要同时定义同一个 provider否则以加载顺序靠后的为准容易排查半天。4. 验证请求一次 API 连通性动作配置写完别急着开对话先做一次最小连通性验证。用 curl 直接打 TaoToken 的 API 端点确认 Key 和网络都通curl -s https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ -H Content-Type: application/json \ -d { model: claude-sonnet-4-5, messages: [{role: user, content: ping}], max_tokens: 16 }返回里带choices字段和一段回复内容就说明 Key 通道打通了。如果返回 401是 Key 不对或没带上返回 404检查 baseUrl 是不是写成了https://taotoken.net/api而不是带/v1的路径具体以文档为准。curl 通了之后回到 OpenClaw 侧验证openclaw gateway restart openclaw logs --follow在浏览器http://localhost:18789发一句「你好」日志里能看到请求发出和模型返回。这一步成功说明 OpenClaw 到 TaoToken 的链路完整。5. 本篇常见错排查5.1 node 版本不匹配报错关键词engine或Unsupported engine。原因是当前 shell 用的不是 22.x。执行node --version确认不对就nvm use 22并nvm alias default 22。新开终端不生效多半是~/.bashrc里没加载 nvm。5.2 nvm 命令找不到nvm: command not found。说明NVM_DIR和nvm.sh没加载。检查~/.bashrc是否包含那三行source ~/.bashrc后重试。安装脚本中途失败也会导致~/.nvm目录不完整删掉重装。5.3 网关离线 / 令牌无效浏览器显示离线先cat ~/.openclaw/openclaw.json | grep token拿 token确认粘贴时没带空格。改完配置必须openclaw gateway restart否则不生效。5.4 插件重复安装我试过在配飞书时遇到「已安装两个飞书插件」的报错。排查openclaw plugins list openclaw plugins --help openclaw plugins uninstall feishu openclaw gateway restart openclaw plugins list删掉重复的保留内置那个重启后列表只剩一个就正常了。5.5 配置改了不生效openclaw config set和手动编辑openclaw.json混用时容易互相覆盖。改完统一openclaw gateway restart再用openclaw config get确认值写进去了。不熟悉 JSON 的话别直接 nano 编辑主配置写错不会自动备份。6. 后续怎么走按场景选入口链路跑通后接下来看你主要拿 OpenClaw 干什么。如果只是验证模型能不能通、想快速对话测试直接进模型对话页面试几句https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。如果你要把 OpenClaw 当长期编码或 Agent 底座跑多轮任务、挂技能包建议看 Coding Plan把用量和模型调度规划好https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。Key 的管理和生成在控制台https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API Keys 页面单独入口https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。接入参数和字段说明以文档为准https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。如果你用的是 Claude Code 这类 Anthropic 系工具接入方式参考https://taotoken.net/claude-code-anthropic?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。最后提醒一句WSL2 里跑 OpenClaw配置改动后重启网关这一步别省很多「改了没反应」都是漏了openclaw gateway restart。把 curl 连通性验证当成每次改配置后的固定动作能省掉大量排查时间。
返回列表