0

OpenClaw WSL2 部署与开机自启完整配置指南

2026.05.27 | youres | 11次围观

为什么选择在 WSL2 上部署 OpenClaw

作为一名长期使用 Windows 进行开发的程序员,我深刻体会到在原生 Windows 环境下运行 Node.js 服务的痛点:路径分隔符问题、文件系统性能差、缺少 systemd 支持。经过多次尝试和踩坑,我发现 WSL2 (Windows Subsystem for Linux 2) 是目前在 Windows 电脑上运行 OpenClaw 的最佳方案。

WSL2 提供了完整的 Linux 内核,文件系统性能接近原生 Linux,而且可以与 Windows 文件系统无缝集成。更重要的是,WSL2 支持 systemd,这意味着我们可以配置 OpenClaw 在 WSL2 启动时自动运行,真正实现 24/7 不间断的 AI 助手服务。

第一步:安装和配置 WSL2

首先确保你的 Windows 版本支持 WSL2。对于 Windows 10 用户,需要版本 2004 或更高版本;Windows 11 用户则无需担心。以管理员身份打开 PowerShell 并执行以下命令:

wsl --install -d Ubuntu-22.04

这个命令会自动启用所需的 Windows 功能,下载 Ubuntu 22.04 LTS 镜像,并设置为默认 WSL 发行版。安装完成后,重启电脑使更改生效。

重启后,首次启动 Ubuntu 会要求进行初始配置,包括创建用户账户和密码。这里有个小技巧:建议使用简短的用户名和密码,因为在 WSL 中你经常需要输入密码来执行 sudo 命令。

第二步:优化 WSL2 性能

默认情况下,WSL2 会使用动态内存分配,这在某些情况下可能导致性能问题。我们可以通过创建 %USERPROFILE%.wslconfig 文件来优化 WSL2 的性能:

[wsl2]
memory=4GB
processors=2
swap=2GB
localhostForwarding=true

这个配置限制了 WSL2 使用最多 4GB 内存和 2 个 CPU 核心,同时启用了 localhost 转发,这样 Windows 上的浏览器可以直接访问 WSL2 中运行的服务。创建配置文件后,执行 wsl --shutdown 重启 WSL2 使配置生效。

第三步:在 WSL2 中安装 Node.js 和 OpenClaw

进入 Ubuntu 终端后,我们首先需要安装 Node.js。我强烈推荐使用 Node Version Manager (nvm) 来安装和管理 Node.js 版本:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
nvm install 22
nvm use 22
nvm alias default 22

安装完成后,验证 Node.js 和 npm 是否正确安装:

node --version
npm --version

接下来全局安装 OpenClaw:

npm install -g openclaw

这个过程可能需要几分钟时间,取决于你的网络速度。安装完成后,我们可以通过 openclaw --version 来验证安装是否成功。

第四步:初始化 OpenClaw 工作区

创建一个专用目录用于存放 OpenClaw 工作区,并初始化配置:

mkdir -p ~/openclaw-workspace
cd ~/openclaw-workspace
openclaw init

初始化过程中,OpenClaw 会引导你选择 AI 模型提供商、输入 API 密钥等。对于国内用户,我建议使用阿里云百炼平台提供的通义千问模型,因为访问速度快且价格合理。

第五步:配置 systemd 服务实现开机自启

这是整个配置中最关键的部分。WSL2 默认不会启动 systemd,我们需要手动启用它。编辑 /etc/wsl.conf 文件:

sudo nano /etc/wsl.conf

在文件中添加以下内容:

[boot]
systemd=true

保存并退出编辑器(Ctrl+O, Enter, Ctrl+X)。然后关闭 WSL2(在 PowerShell 中执行 wsl --shutdown)并重新启动 Ubuntu。

验证 systemd 是否成功启动:

systemctl --version

如果显示 systemd 版本信息,说明配置成功。接下来创建 OpenClaw 的 systemd 服务文件:

sudo nano /etc/systemd/system/openclaw.service

在服务文件中添加以下内容:

[Unit]
Description=OpenClaw AI Assistant
After=network.target

[Service]
Type=simple
User=你的用户名
WorkingDirectory=/home/你的用户名/openclaw-workspace
ExecStart=/home/你的用户名/.nvm/versions/node/v22.x.x/bin/node /home/你的用户名/.nvm/versions/node/v22.x.x/lib/node_modules/openclaw/dist/index.js
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

注意:你需要将"你的用户名"替换为实际的 WSL2 用户名,并使用 which nodenpm root -g 命令来确定正确的 Node.js 和 OpenClaw 路径。

保存文件后,重新加载 systemd 配置并启用服务:

sudo systemctl daemon-reload
sudo systemctl enable openclaw.service
sudo systemctl start openclaw.service

检查服务状态:

sudo systemctl status openclaw.service

第六步:配置 Windows 启动 WSL2

虽然我们配置了 WSL2 内的 systemd 服务,但 WSL2 本身不会在 Windows 启动时自动运行。我们需要创建一个 Windows 启动任务来自动启动 WSL2。

创建一个 PowerShell 脚本 C:start_openclaw.ps1

Start-Process "wsl" -ArgumentList "-d Ubuntu-22.04", "-u root", "systemctl start openclaw"

然后打开 Windows 任务计划程序,创建一个基本任务:

  • 触发器:启动时
  • 操作:启动程序
  • 程序/脚本:powershell.exe
  • 参数:-ExecutionPolicy Bypass -File C:start_openclaw.ps1
  • 选择"使用最高权限运行"

常见问题与解决方案

问题1:WSL2 网络访问慢
解决方案:在 %USERPROFILE%.wslconfig 中添加 networkingMode=NAT,然后执行 wsl --shutdown 重启 WSL2。

问题2:systemd 服务启动失败
解决方案:检查服务文件中的路径是否正确,使用 journalctl -u openclaw.service 查看详细错误日志。

问题3:Windows 无法访问 WSL2 中的 OpenClaw
解决方案:确保 localhostForwarding=true.wslconfig 中已设置,并检查 Windows 防火墙是否阻止了相关端口。

性能优化建议

优化项 建议配置 说明
WSL2 内存限制 4-8GB 避免占用过多系统资源
CPU 核心数 2-4 核 根据物理 CPU 核心数调整
swap 空间 2-4GB 防止内存不足导致服务崩溃
Node.js 版本 22.x LTS 长期支持版本,稳定性好

总结

通过 WSL2 运行 OpenClaw 是一个兼顾性能和便利性的方案。虽然初始配置相对复杂,但一旦配置完成,你就可以享受接近原生 Linux 的性能,同时保留 Windows 作为日常操作系统的便利性。自动启动配置确保了你的 AI 助手能够 24/7 不间断运行,真正实现了"设置一次,长期运行"的目标。

如果你在配置过程中遇到任何问题,建议查看系统日志获取详细错误信息。OpenClaw 的日志通常位于工作区目录的 logs/ 子目录中,而 systemd 的日志可以通过 journalctl -u openclaw.service 查看。

版权声明

本文仅代表个人观点。
本文系AI辅助作者原创,未经许可,转载请保留原文链接。

发表评论
883文章数 0评论数
作者其它文章