ARTICLE DETAIL

资讯详情

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

OpenClaw 在 Windows 上的完整安装教程:WSL2 + Ubuntu + systemd 一次跑通

OpenClaw 在 Windows 上的完整安装教程:WSL2 + Ubuntu + systemd 一次跑通 1. 为什么 OpenClaw 在 Windows 上要先装 WSL2 才能跑通OpenClaw 是一个把 CLI 和 Gateway 拆开运行的智能体工具链官方推荐在 Linux 环境下运行Windows 上最省心的路径就是 WSL2 加 Ubuntu。你如果直接在原生 Windows 里折腾Node、Bun、pnpm 的版本管理会打架Linux 二进制文件也跑不起来技能包加载时经常报路径错误。WSL2 相当于在 Windows 里开了一台轻量级 Linux 虚拟机内核是真的 Linuxsystemd 也能开OpenClaw 的 Gateway 服务就能像在服务器上一样托管。我试过在 Windows 11 上从零走一遍整个链路是装 WSL2 → 装 Ubuntu 24.04 → 开 systemd → 装 OpenClaw → 装 Gateway 服务 → 验证开机自启。每一步都有坑尤其是 systemd 默认不开、WSL 的 IP 每次重启会变这两件事后面会给出可复制的命令和配置。这篇文章适合谁第一次在 Windows 上部署 OpenClaw 的开发者手里有一台 Windows 10 2004 或 Windows 11 的机器想让它开机自动跑起来而不是每次手动敲命令。你不需要提前会 Linux但需要会用管理员权限打开 PowerShell。先说清楚一个前提WSL2 的 Ubuntu 里跑 OpenClawCLI 和 Gateway 都在 Linux 侧Windows 侧只负责提供虚拟化环境和端口转发。这样工具链一致后续升级、迁移到云服务器也顺。下面从 WSL2 安装开始一步步来。2. 安装 WSL2 与 Ubuntu 24.04 的完整命令2.1 一条命令装好 WSL2 和默认 Ubuntu以管理员身份打开 PowerShell执行wsl --install这条命令会启用虚拟机平台、安装 WSL2 内核、拉取默认 Ubuntu 发行版。如果你想要指定版本先看可用列表wsl --list --online然后安装 Ubuntu 24.04wsl --install -d Ubuntu-24.04装完后 Windows 会提示重启重启是必须的否则虚拟化组件没加载。2.2 首次启动 Ubuntu 的初始化重启后从开始菜单启动 Ubuntu系统会让你创建 Linux 用户名和密码。这个账号是 Ubuntu 里的普通用户后面sudo用它。密码输入时不显示正常现象。进入终端后先更新一次sudo apt update sudo apt upgrade -y2.3 确认 WSL 版本是 2回到 PowerShell 检查wsl -l -v输出里 VERSION 列应该是 2。如果是 1执行wsl --set-version Ubuntu-24.04 22.4 启用 systemdOpenClaw 的 Gateway 依赖 systemd 做服务托管WSL 默认不开。在 Ubuntu 终端里写入配置sudo tee /etc/wsl.conf /dev/null EOF [boot] systemdtrue EOF然后回 PowerShell 彻底关闭 WSLwsl --shutdown重新打开 Ubuntu验证systemctl --user status能看到服务列表输出就说明 systemd 起来了。如果报 System has not been booted with systemd检查/etc/wsl.conf内容是否正确并且确认执行过wsl --shutdown。2.5 装 Node 与 pnpmOpenClaw 依赖 Node 和 pnpm。用 NodeSource 装 Node 20curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt install -y nodejs sudo corepack enable corepack prepare pnpmlatest --activate验证node -v pnpm -v到这里 WSL2 Ubuntu systemd 的前置环境就齐了。这一步是整个链路里最容易卡住的地方systemd 没开的话后面 Gateway 服务装不上。3. 配置 OpenClaw 与 Gateway 服务单元文件3.1 克隆并构建 OpenClaw在 Ubuntu 终端里git clone https://github.com/openclaw/openclaw.git cd openclaw pnpm install pnpm ui:build pnpm buildpnpm ui:build首次会拉 UI 依赖耐心等。构建完成后初始化配置openclaw onboard按交互提示走完会生成配置文件。3.2 安装 Gateway 服务推荐用 onboard 直接带 daemonopenclaw onboard --install-daemon也可以单独装openclaw gateway install装完后 systemd 用户级服务单元会落在~/.config/systemd/user/openclaw-gateway.service。你可以打开看一眼确认 ExecStart 指向的路径正确cat ~/.config/systemd/user/openclaw-gateway.service3.3 让服务开机自启用户级服务要允许 linger否则 WSL 启动时不会自动拉起sudo loginctl enable-linger $USER systemctl --user enable openclaw-gateway systemctl --user start openclaw-gateway3.4 接入模型服务Base URL Key Model ID 三件套OpenClaw 的 Gateway 需要指向一个可访问的模型服务。如果你用 TaoToken 作为模型接入层配置里要写全三件套。在 OpenClaw 的配置文件中通常是~/.openclaw/config.json或 onboard 生成的路径按下面结构填{ gateway: { baseUrl: https://taotoken.net/api, apiKey: sk-你的Key, model: claude-sonnet-4-20250514 } }Base URL 用https://taotoken.net/apiKey 在控制台创建Model ID 按你实际要用的模型填。三件套缺一个都会在请求时报 401 或 model not found。如果你用 Claude Code 或 Cline 这类工具配置思路一样Base URL 填https://taotoken.net/apiKey 填创建的密钥Model ID 填对应模型。Cline 的 MCP 配置里也是这三项别只填 Key 漏了 Base URL。3.5 局域网访问的端口转发可选WSL2 有独立虚拟网络其他设备要访问 WSL 里的服务需要在 Windows 侧做端口转发。以管理员 PowerShell 执行$Distro Ubuntu-24.04 $ListenPort 2222 $TargetPort 22 $WslIp (wsl -d $Distro -- hostname -I).Trim().Split( )[0] netsh interface portproxy add v4tov4 listenaddress0.0.0.0 listenport$ListenPort connectaddress$WslIp connectport$TargetPort New-NetFirewallRule -DisplayName WSL SSH $ListenPort -Direction Inbound -Protocol TCP -LocalPort $ListenPort -Action AllowWSL 每次重启 IP 会变所以转发规则要刷新。可以写个脚本登录时跑一次netsh interface portproxy delete v4tov4 listenport$ListenPort listenaddress0.0.0.0 | Out-Null $WslIp (wsl -d $Distro -- hostname -I).Trim().Split( )[0] netsh interface portproxy add v4tov4 listenport$ListenPort listenaddress0.0.0.0 connectaddress$WslIp connectport$TargetPort | Out-Null远程节点连 Gateway 时URL 不能写127.0.0.1要写 Windows 主机的局域网 IP。4. 验证请求与开机自启是否真的生效4.1 检查服务状态openclaw status --all systemctl --user status openclaw-gatewayactive (running)就对了。看日志journalctl --user -u openclaw-gateway -f4.2 发一个真实请求验证模型接入用 curl 打一次模型接口确认 Base URL、Key、Model ID 三件套生效curl -s https://taotoken.net/api/v1/messages \ -H Authorization: Bearer sk-你的Key \ -H Content-Type: application/json \ -d { model: claude-sonnet-4-20250514, max_tokens: 64, messages: [{role: user, content: ping}] }返回里有content字段就说明链路通了。如果返回 401检查 Key返回 model not found检查 Model ID 拼写。4.3 验证开机自启在 PowerShell 里彻底关掉 WSLwsl --shutdown等几秒重新打开 Ubuntu直接查systemctl --user status openclaw-gateway如果服务自动是 running说明 linger 和 enable 都生效了。没起来的话检查loginctl show-user $USER | grep Linger是否为 yes。4.4 验证 Gateway 对外可达在 Windows 浏览器或另一台机器上访问 Gateway 的地址。如果走端口转发用http://Windows主机IP:端口。本地验证可以用curl -s http://127.0.0.1:你的Gateway端口/health返回健康状态即通。5. 本篇常见报错排查401、local proxy failed、reading choices、OAuth5.1 401 Unauthorized最常见。原因通常是 Key 没填、Key 过期、或者 Base URL 写成了首页而不是 API 地址。检查配置里baseUrl是不是https://taotoken.net/apiKey 是不是控制台新建的。如果用的是 Claude Code 或 Codex 的 auth.json确认字段名对得上别把 Key 塞错位置。5.2 local proxy failed这个报错一般出现在 Gateway 启动时说明它尝试连本地代理但连不上。检查两点一是配置里的 Base URL 是不是指向了一个不可达的本地地址二是 WSL 的网络能不能出网。在 Ubuntu 里curl -I https://taotoken.net/api看是否通。如果 WSL 的 DNS 有问题编辑/etc/resolv.conf或重启 WSL。5.3 reading choices 相关报错这类报错通常是模型返回格式和客户端预期不一致。检查 Model ID 是否写对有些模型名带日期后缀少一段就解析失败。另外确认请求体里messages结构正确别把 system 和 user 角色混了。5.4 OAuth 报错如果你用 Claude Code 的 OAuth 流程报错多半是回调地址或 token 交换失败。确认 Base URL 和 Key 配置正确OAuth 场景下也要保证三件套齐全。Codex 的 auth.json 里同样要写全 Base URL、Key、Model ID缺一不可。5.5 systemd 服务起不来先跑诊断openclaw doctor再看日志定位journalctl --user -u openclaw-gateway -n 100 --no-pager常见原因是 ExecStart 路径不对或者 Node 版本不满足。确认which node和 service 文件里的路径一致。5.6 端口转发不工作确认防火墙规则已加WSL IP 取的是当前值。用netsh interface portproxy show all看规则用wsl -- hostname -I看 IP。IP 变了就刷新规则。6. 把 OpenClaw 长期跑起来接入与排障入口OpenClaw 在 Windows 上跑通的关键就三件事WSL2 装对、systemd 开对、三件套填对。WSL2 提供 Linux 运行时systemd 托管 Gateway 服务Base URL Key Model ID 保证模型请求能出去。这三块任何一块出问题表现都是服务起不来或请求 401。如果你在配置模型接入时需要创建 Key 或查看接入文档可以从这里进创建 API Keyhttps://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentopenclaw_windows_wsl2接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentopenclaw_windows_wsl2模型对话验证https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentopenclaw_windows_wsl2如果你打算长期跑编码类 AgentCoding Plan 更合适Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentopenclaw_windows_wsl2最后给一个实用技巧把 WSL 的端口转发刷新脚本做成 Windows 计划任务登录时自动跑省得每次重启手动敲。OpenClaw 的 Gateway 服务本身用 systemd 托管配合 linger 就能开机自启整套链路稳定后基本不用管。
返回列表