☰
OpenClaw从零开始(篇二,在Windows11上安装Ubuntu)
2026/10/7 7:50:10 网站建设 项目流程

1. 为什么 OpenClaw 部署前要先在 Windows11 上装好 Ubuntu

OpenClaw 这类需要长期驻留、频繁读写文件、跑后台进程的工具,直接放在 Windows 原生环境里跑,经常会遇到路径分隔符、权限模型、依赖库版本这三类问题。我试过在纯 Windows 下折腾 Node 和 Python 混合依赖,光是编译原生模块就能卡半天。所以更省心的路线是:用 WSL2 在 Windows11 里开一个 Ubuntu 22.04,把 OpenClaw 放进这个 Linux 环境里跑,Windows 这边只负责文件管理和终端入口。

WSL2 全称是 Windows Subsystem for Linux 2,你可以把它理解成 Windows 内置的一个轻量级 Linux 运行空间。它和传统虚拟机不一样,不需要你单独装 VMware 或 VirtualBox,也不用划分独立磁盘分区,启动速度接近原生终端。更关键的是,WSL2 里的 Ubuntu 能直接访问 Windows 的磁盘,比如你的 E 盘在 Ubuntu 里就是/mnt/e,文件互传不用来回拷贝。

这一篇的目标很明确:在 Windows11 上把 WSL2 和 Ubuntu 22.04 装好,并且把安装目录固定到E:\WSL2-Ubuntu,方便后续 OpenClaw 部署时路径统一。整个过程分四步走:启用 Windows 功能、设置 WSL2 为默认版本、下载并解压 Ubuntu 镜像到指定目录、初始化用户并验证网络。每一步我都会给出可以直接复制的 PowerShell 命令,以及执行后应该看到什么结果。

适合谁看:手上是 Windows11、想跑 OpenClaw 但不想装双系统的人;之前装过 WSL 但版本混乱、想重新整理一遍的人;以及需要把 WSL 发行版放到非 C 盘、避免系统盘爆满的人。如果你还没装 OpenClaw,这一篇就是前置环境准备,装完 Ubuntu 再进入下一篇部署。

需要提前确认两件事:第一,Windows11 的版本号要满足 Build 22000 以上,Win+R 输入winver就能看到;第二,你的主板 BIOS 里要开启虚拟化,任务管理器 → 性能 → CPU,看“虚拟化”是否为“已启用”。这两项不满足,后面wsl --set-default-version 2会直接报错。

另外提醒一句,WSL2 的虚拟磁盘文件ext4.vhdx会随着你装东西越来越大,所以从一开始就把发行版放到 E 盘这种空间充裕的分区,比后期迁移省事得多。下面进入具体操作。

2. TaoToken 前置准备:给 OpenClaw 预留模型接入配置

在装 Ubuntu 的同时,建议你顺手把 TaoToken 的接入信息准备好。OpenClaw 部署完成后要调用大模型能力,TaoToken 提供的是兼容 OpenAI 风格的 API 入口,Base URL 固定为https://taotoken.net/api,你只需要在控制台生成一个 API Key,后面在 OpenClaw 的配置文件里填进去就能用。

为什么要在装 Ubuntu 阶段就提这件事?因为 WSL2 里的 Ubuntu 网络是 NAT 模式,默认能访问外网,但如果你后面在 OpenClaw 里配了本地代理变量,反而会导致请求失败。所以我的做法是:先在 Windows 侧把 Key 拿到,记在一个文本文件里,等 Ubuntu 装好、网络验证通过之后,再统一写进 OpenClaw 的配置。这样排障时能分清是环境问题还是 Key 问题。

具体操作路径:打开 TaoToken 控制台,进入 API Keys 页面,点新建,复制生成的 Key。这个 Key 只显示一次,建议直接粘贴到你的密码管理器或者临时记事本。如果你还没决定用哪个模型,可以先在模型对话页面测试一下,确认 Key 能正常返回内容,再去配 OpenClaw。

这里要强调一个容易踩的坑:WSL2 的 Ubuntu 里,localhost指向的是 Ubuntu 自己,不是 Windows 主机。如果你在 Ubuntu 里跑 OpenClaw,它请求https://taotoken.net/api是走 Ubuntu 的网络栈,和 Windows 侧的代理设置无关。所以不要在 Ubuntu 里额外配http_proxy指向 Windows 的代理端口,除非你明确知道自己在做什么。实测下来,直连是最稳的。

如果你打算长期跑 OpenClaw 做编码或 Agent 任务,可以关注一下 Coding Plan,它比按量计费更适合高频调用场景。但这一步不急,先把 Ubuntu 环境跑通,Key 拿到手,后面部署时再决定用哪种计费方式。

还有一点:TaoToken 的接入文档里有完整的请求示例,包括 curl 和 Python 两种写法。你可以在 Ubuntu 装好后,用curl直接测一下 API 连通性,确认返回 200 再继续。这样能把“环境是否就绪”和“Key 是否有效”两个问题分开验证,排障效率高很多。

3. 可复制配置:PowerShell 启用 WSL2 与 Ubuntu 安装到 E 盘

这一节是全文操作最密集的部分,所有命令都可以直接复制。我按顺序分成三块:启用 Windows 功能、设置默认版本、下载并解压 Ubuntu 到E:\WSL2-Ubuntu。每块执行完都有验证动作,不要跳步。

3.1 启用 WSL 和虚拟机平台功能

以管理员身份打开 PowerShell。方法是右键开始菜单,选择“终端(管理员)”或“Windows PowerShell(管理员)”。然后依次执行下面两条命令:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

第一条启用 WSL 功能,第二条启用虚拟机平台。执行完会提示“操作成功完成”,但此时功能还没生效,必须重启电脑。重启前不要急着执行后面的命令,否则wsl --set-default-version 2会报“WSL 2 需要更新其内核组件”。

重启之后,再次以管理员身份打开 PowerShell,执行:

wsl --set-default-version 2

如果提示需要更新内核,去下载wsl_update_x64.msi并双击安装。安装完再执行一次上面的命令,看到“有关与 WSL 2 的主要区别的信息,请访问 https://aka.ms/wsl2”就说明设置成功了。

3.2 下载 Ubuntu 22.04 镜像到指定目录

我选择把发行版放在E:\WSL2-Ubuntu,避免占用 C 盘。先创建目录,再下载镜像:

New-Item -Path "E:\WSL2-Ubuntu" -ItemType Directory -Force Invoke-WebRequest -Uri https://aka.ms/wslubuntu2204 -OutFile "E:\WSL2-Ubuntu\ubuntu2204.appx" -UseBasicParsing

如果Invoke-WebRequest下载慢或者中断,可以手动下载。打开浏览器访问微软官方 WSL 手动安装页面,找到 Ubuntu 22.04 LTS 的下载链接,下载得到一个.AppxBundle文件,把它复制到E:\WSL2-Ubuntu。

3.3 解压并初始化 Ubuntu

假设你拿到的是Ubuntu2204-221101.AppxBundle,操作如下:

第一步,把后缀改成.zip,解压到E:\WSL2-Ubuntu,得到一堆文件。第二步,在里面找到Ubuntu_2204.1.7.0_x64.appx,同样改名为.zip,解压到E:\WSL2-Ubuntu\Ubuntu2204。解压后你会看到ubuntu.exe和install.tar.gz。

第三步,进入E:\WSL2-Ubuntu\Ubuntu2204,双击ubuntu.exe。它会在当前目录生成ext4.vhdx虚拟磁盘,然后提示你输入用户名和密码。这个账号密码自己设,记牢,后面sudo要用。设置完成后,Ubuntu 就装在 E 盘了。

如果你更喜欢命令行方式,也可以在 PowerShell 里执行:

cd E:\WSL2-Ubuntu\Ubuntu2204 .\ubuntu.exe

效果和双击一样。初始化完成后,用wsl -l -v查看,应该能看到 Ubuntu 的 STATE 是 Running,VERSION 是 2。

3.4 wsl.conf 配置片段

为了让 Ubuntu 里的默认用户和挂载行为更符合预期,建议在 Ubuntu 里创建/etc/wsl.conf。先进入 Ubuntu:

wsl

然后在 Ubuntu 终端里执行:

sudo tee /etc/wsl.conf > /dev/null <<'EOF' [user] default=你的用户名 [interop] enabled=true appendWindowsPath=true [automount] enabled=true root=/mnt/ options="metadata,umask=22,fmask=11" EOF

把你的用户名换成你初始化时设的账号。metadata选项让 WSL 能正确记录 Linux 文件权限,后面 OpenClaw 写文件不会出现权限混乱。改完后退出 Ubuntu,在 PowerShell 执行wsl --shutdown,再重新wsl进入,配置生效。

4. 验证请求:wsl -l -v、uname -a 与网络连通性检查

环境装完不能只看“没报错”,要做几项验证,确认 WSL2 版本、内核、用户权限、网络都正常。这些验证动作也是后面 OpenClaw 部署前的基线,如果这里有问题,部署阶段会更难排查。

第一项,在 PowerShell 里查看发行版列表和版本:

wsl -l -v

正常输出类似:

NAME STATE VERSION * Ubuntu Running 2

如果 VERSION 显示 1,说明默认版本没设对,回到 3.1 重新执行wsl --set-default-version 2。如果 STATE 是 Stopped,执行wsl启动即可。

第二项,进入 Ubuntu 查看系统版本和内核:

lsb_release -a uname -a uname -r

lsb_release -a应该显示 Ubuntu 22.04.x LTS。uname -r显示的内核版本通常带microsoft-standard-WSL2字样,比如5.15.90.1-microsoft-standard-WSL2,这就确认是 WSL2 环境而不是 WSL1。

第三项,验证管理员权限和网络:

sudo whoami curl -I https://taotoken.net/api

sudo whoami输入密码后应返回root。curl -I如果返回HTTP/2 200或401,都说明网络通;返回401是因为没带 Key,属于正常。如果卡住或报Could not resolve host,检查 Windows 侧网络和 DNS,可以在 Ubuntu 里执行cat /etc/resolv.conf看 DNS 配置。

第四项,验证 Windows 磁盘挂载:

ls /mnt/e

应该能看到 E 盘的文件列表。如果看不到,检查/etc/wsl.conf里的automount配置,然后wsl --shutdown重启。

第五项,测试 API Key 是否有效。在 Ubuntu 里执行:

curl https://taotoken.net/api/v1/models \ -H "Authorization: Bearer 你的Key"

如果返回模型列表 JSON,说明 Key 和环境都就绪。这一步通过后,你就可以放心进入 OpenClaw 部署了。

5. 本篇常见错排查:401、local proxy failed 与 OAuth 报错

装 WSL2 和配 OpenClaw 的过程中,有几类报错出现频率特别高。我把它们和真实报错信息对照着写,你遇到时可以直接定位。

第一类,wsl --set-default-version 2报“WSL 2 需要更新其内核组件”。这不是命令写错,而是内核更新包没装。去下载wsl_update_x64.msi安装,或者用wsl --update命令更新。装完再执行一次即可。

第二类,wsl -l -v里 VERSION 显示 1。原因是设置默认版本之前就已经装了发行版,旧发行版不会自动升级。执行wsl --set-version Ubuntu 2手动转换,转换过程会花几分钟,期间不要关终端。

第三类,Ubuntu 里curl https://taotoken.net/api报401 Unauthorized。这是没带 Key 的正常返回,不是环境问题。带上Authorization: Bearer 你的Key再请求。如果带了 Key 还是 401,检查 Key 是否复制完整、有没有多余空格。

第四类,报local proxy failed或Connection refused。这通常是因为你在 Ubuntu 里设了http_proxy或https_proxy环境变量,指向了 Windows 侧的代理端口,但 WSL2 的 NAT 网络访问不到那个端口。解决办法是清掉这些变量:

unset http_proxy unset https_proxy unset all_proxy

然后检查~/.bashrc或~/.profile里有没有写死代理,有就注释掉。TaoToken 的 API 直连即可,不需要额外代理。

第五类,OpenClaw 启动时报reading choices或返回 JSON 解析失败。这多半是 Base URL 配错了。确认配置里写的是https://taotoken.net/api,而不是带/v1或其他路径。如果你用的是某个客户端,检查它的 Base URL 字段是否被自动补了后缀。

第六类,OAuth 相关报错,比如OAuth token exchange failed。如果你在 OpenClaw 里配的是需要 OAuth 的模型接入方式,但用的是 API Key 模式,就会冲突。确认你的接入方式是 API Key,而不是 OAuth。TaoToken 的 API Key 模式不需要走 OAuth 流程。

第七类,wsl --shutdown后重新进入,/etc/wsl.conf配置没生效。检查文件路径和格式,[user]、[interop]、[automount]这些段名不能拼错。改完必须wsl --shutdown完全关闭再启动,只exit是不够的。

第八类,Ubuntu 里sudo apt update报 DNS 解析失败。在/etc/resolv.conf里加一行nameserver 8.8.8.8,然后wsl --shutdown重启。如果还是不行,检查 Windows 侧的网络是否正常。

6. 环境就绪后:用 TaoToken 接入 OpenClaw 的下一步

Ubuntu 22.04 在 WSL2 里跑通、wsl -l -v显示 VERSION 2、uname -r带 WSL2 字样、curl能拿到模型列表,这四件事都确认之后,环境准备就算完成了。接下来进入 OpenClaw 部署,你需要把 TaoToken 的 Base URL 和 Key 写进 OpenClaw 的配置文件。

具体来说,OpenClaw 的模型接入配置里,Base URL 填https://taotoken.net/api,API Key 填你在控制台生成的那串,Model ID 填你要用的模型名称。这三个字段缺一不可,尤其是 Model ID,写错了会报模型不存在。如果你不确定用哪个模型,先去模型对话页面试一下,确认能正常返回再填进配置。

对于长期跑编码或 Agent 任务的场景,Coding Plan 比按量计费更划算,你可以在控制台里对比一下用量再决定。如果只是偶尔调用,按量计费就够用。

排障方面,如果 OpenClaw 启动后请求失败,先回到第 5 节对照报错。大部分问题集中在 Base URL 写错、Key 带空格、代理变量没清这三类。接入文档里有完整的配置示例,遇到不确定的字段可以去查。

最后提醒一点:WSL2 的 Ubuntu 关机后不会自动释放内存,如果你发现 Windows 内存占用偏高,在 PowerShell 执行wsl --shutdown即可回收。这个操作不会删除你的数据,下次wsl进入时一切照旧。环境搭好之后,OpenClaw 的部署会顺畅很多,下一篇我们直接进 OpenClaw 的安装和配置。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询