为什么Windows用户需要WSL2
OpenClaw是一个开源AI Agent网关,虽然它支持macOS、Linux和Windows平台,但官方强烈推荐Windows用户通过WSL2(Windows Subsystem for Linux 2)运行。WSL2提供了完整的Linux内核支持,能够更好地处理OpenClaw依赖的各种原生模块和网络协议。在原生Windows环境中运行可能遇到路径处理、文件监听和原生模块编译等方面的兼容性问题。
本文将带你从零开始,在Windows上配置WSL2并安装OpenClaw。
系统要求
- Windows 10 版本2004及更高,或Windows 11
- 至少8GB内存(推荐16GB)
- 开启了虚拟化功能(BIOS中启用VT-x/AMD-V)
- 稳定的网络连接
安装WSL2
一键安装(推荐)
以管理员身份打开PowerShell或Windows Terminal,运行:
wsl --install
此命令会自动完成以下操作:启用WSL功能、启用虚拟机平台、下载并安装最新Linux内核、将WSL2设为默认版本、安装Ubuntu发行版。
安装完成后需要重启电脑。
首次启动Ubuntu
重启后,从开始菜单中打开Ubuntu。首次启动会要求你创建一个Linux用户名和密码。设置完成后,你会进入Ubuntu的bash终端。
确认WSL版本为2:
wsl --list --verbose
如果显示VERSION为1,需要转换:
wsl --set-version Ubuntu 2
更新Ubuntu系统
进入WSL2的Ubuntu终端后,首先更新系统:
sudo apt update && sudo apt upgrade -y
安装基础开发工具:
sudo apt install -y build-essential curl git
安装Node.js 22
OpenClaw要求Node.js 22+版本。推荐使用nvm来管理Node.js版本:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
source ~/.bashrc
安装Node.js 22:
nvm install 22
nvm alias default 22
验证安装:
node --version
npm --version
确认Node.js版本为22.x.x。特别提醒:不要使用Bun作为Node.js替代品,因为Bun在处理WhatsApp和Telegram连接时存在已知兼容性问题。
安装OpenClaw
有两种安装方式可供选择。
方式一:npm全局安装
npm install -g openclaw@latest
方式二:官方安装脚本
curl -fsSL https://openclaw.ai/install.sh | bash
安装完成后验证:
openclaw --version
初始化配置
运行OpenClaw的引导程序完成初始化:
openclaw onboard --install-daemon
引导程序会引导你完成以下配置:
- AI模型设置:选择AI提供商(OpenAI、Anthropic、Google等)并输入API密钥
- 聊天平台连接:配置要连接的聊天应用(WhatsApp、Telegram、Discord等)
- 守护进程安装:在WSL2的Ubuntu环境中会配置systemd服务(如果WSL2已启用systemd)
所有配置保存在~/.openclaw/openclaw.json文件中。
启用WSL2的systemd支持
较新版本的WSL2支持systemd,这对OpenClaw的后台服务管理非常重要。检查systemd是否已启用:
systemctl --version
如果命令不可用,需要启用systemd。编辑WSL配置文件:
sudo nano /etc/wsl.conf
添加以下内容:
[boot]
systemd=true
保存后,在PowerShell中重启WSL:
wsl --shutdown
重新打开Ubuntu终端,systemd现在应该可以工作了。
配置systemd服务
如果openclaw onboard --install-daemon没有自动创建systemd服务,可以手动创建:
sudo tee /etc/systemd/system/openclaw.service > /dev/null << 'EOF'
[Unit]
Description=OpenClaw AI Agent Gateway
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=你的用户名
ExecStart=/home/你的用户名/.nvm/versions/node/v22.0.0/bin/openclaw start
Restart=always
RestartSec=5
Environment=HOME=/home/你的用户名
Environment=PATH=/home/你的用户名/.nvm/versions/node/v22.0.0/bin:/usr/bin:/bin
[Install]
WantedBy=multi-user.target
EOF
注意替换用户名和Node.js实际版本路径。启用并启动服务:
sudo systemctl daemon-reload
sudo systemctl enable openclaw
sudo systemctl start openclaw
运行诊断检查
使用内置诊断工具确认一切正常:
openclaw doctor
该命令会检查Node.js版本、配置文件完整性、网络连通性、各平台连接状态等。
从Windows访问OpenClaw
WSL2内运行的服务可以直接通过localhost从Windows浏览器访问。打开浏览器,访问:
http://localhost:3000
即可看到OpenClaw的管理面板。你也可以在WSL2中运行:
openclaw dashboard
WSL2网络配置注意事项
端口转发
默认情况下WSL2会自动将端口映射到Windows主机。如果无法从Windows访问,检查Windows防火墙设置,确保3000端口未被阻止。
外部访问
如果你需要从局域网其他设备访问WSL2中的OpenClaw(例如配置Webhook回调),可能需要额外的端口转发配置:
netsh interface portproxy add v4tov4 listenport=3000 listenaddress=0.0.0.0 connectport=3000 connectaddress=$(wsl hostname -I | awk '{print $1}')
文件系统性能优化
WSL2有两个文件系统:Linux文件系统(/home/)和Windows文件系统(/mnt/c/等)。将OpenClaw的数据保持在Linux文件系统中可获得最佳性能。不要将~/.openclaw目录放在/mnt/下的Windows分区中。
WSL2自动启动
默认情况下WSL2需要手动打开才会启动。可以通过Windows任务计划程序实现自动启动:
在PowerShell中创建计划任务:
$action = New-ScheduledTaskAction -Execute "wsl.exe" -Argument "-d Ubuntu -- bash -c 'sudo systemctl start openclaw'"
$trigger = New-ScheduledTaskTrigger -AtLogon
Register-ScheduledTask -TaskName "StartOpenClaw" -Action $action -Trigger $trigger -Description "Start OpenClaw in WSL2"
常见问题排查
WSL2无法联网
检查DNS配置。编辑/etc/wsl.conf添加:
[network]
generateResolvConf=false
然后手动设置DNS:
sudo rm /etc/resolv.conf
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
内存占用过高
WSL2默认可能占用过多内存。在Windows用户目录下创建.wslconfig文件:
[wsl2]
memory=4GB
swap=2GB
OpenClaw启动失败
确保在Linux文件系统中运行、Node.js版本为22+、网络正常。运行openclaw doctor获取详细诊断信息。
总结
WSL2为Windows用户提供了运行OpenClaw的最佳环境。通过本文的配置,你可以在Windows桌面系统上获得与Linux服务器几乎相同的OpenClaw运行体验,同时享受Windows桌面环境的便利。WSL2的性能接近原生Linux,完全能够满足OpenClaw AI Agent网关的运行需求。