$ ssh clawdbot.space --loading...
$ ssh clawdbot.space --loading...
通过 WSL2 在 Windows 上原生运行 OpenClaw — 完整 Linux 性能,无需双系统。
Windows Subsystem for Linux 2 (WSL2) 在 Windows 上提供真正的 Linux 内核,性能接近原生。这是在 Windows 上运行 OpenClaw 的推荐方式——不需要虚拟机、不需要双系统、没有妥协。本指南将带你在大约 30 分钟内从零到完全运行的 OpenClaw 实例。
wsl --install
wsl --set-default-version 2
wsl --update
安装后重启电脑。首次启动 Ubuntu 时会要求创建用户名和密码。
sudo apt update && sudo apt upgrade -y
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - sudo apt install -y nodejs
node --version && npm --version
npx openclaw@latest
openclaw status
openclaw config set gateway.bind 127.0.0.1
将 OpenClaw 数据存储在 ~/openclaw,不要放在 /mnt/c/。通过 WSL 访问 Windows 文件系统慢 5-10 倍。
在 Windows 主目录创建 .wslconfig 设置内存限制。默认值可能太低。
在 /etc/wsl.conf 中添加 [boot] systemd=true 实现服务管理和 cron 任务。
Windows Terminal 提供标签页、主题和 Unicode 支持。比 cmd.exe 好太多。
[wsl2] memory=4GB processors=2 swap=2GB localhostForwarding=true
WSL2 的 localhost 转发自动工作。从 Windows 访问 http://localhost:18789。
在 WSL2 中使用 Tailscale 实现安全远程访问。或在 Windows 防火墙中设置端口转发。
机器人从 WSL2 直接工作——出站网络自动连通。
Windows 是这个选择最要紧的平台,因为三种方式在「你没登录时它怎么表现」上完全不同。而这通常正是人们真正在意、却最少先去确认的那个属性。
| 方式 | 登录前能运行 | 取舍 |
|---|---|---|
| 原生 PowerShell 安装 | 可以,注册为计划任务 | 最简单。Windows 的路径语义和工具链差异偶尔会让面向 Linux 写的技能出意外。 |
| WSL2 | 需要 linger 加开机任务才行 | Linux 兼容性最好的运行时。不做下面这些额外配置,它会在你关掉 shell 时停掉。 |
| Windows Hub 桌面应用 | 不适用——它就是个桌面应用 | 交互式使用没问题,做常开 Agent 不行。 |
如果你没有特别理由需要一个 Linux 用户空间,就选原生 PowerShell。如果你在照着 Linux 的说明操作、要跑期望 POSIX 路径的工具链、或者想和你的服务器保持同一套配置,就选 WSL2。WSL2 的难点不在安装,在持久化。
OpenClaw 要在 WSL 里作为服务运行,有两件事必须成立:systemd 要启用(老安装里这不是默认值),以及发行版要能在你关掉 shell 之后活下来。
wsl --install # or pin a distro: wsl --install -d Ubuntu-24.04
在一台你会长期用的机器上,指定发行版是值得的。默认值会随时间变化,而假设是 Ubuntu 写出来的说明在别的发行版上行为并不一样。
sudo tee /etc/wsl.conf >/dev/null <<'EOF' [boot] systemd=true EOF
不开这个,`gateway install` 就没有服务管理器可以注册。这是「安装看起来成功了但什么都没留下」最常见的单一原因。
wsl --shutdown
改了 wsl.conf 在发行版重启之前不会有任何作用。从 Windows 侧执行 `wsl --shutdown` 是可靠的做法。
curl -fsSL https://openclaw.ai/install.sh | bash openclaw gateway status
从这一步开始 Linux 的说明可以原样套用——这本来就是选 WSL2 的理由。
这一段是 WSL 特有的,也正是有人反馈「网关过一夜就没了」时通常缺掉的那一段。需要两个机制同时到位:linger 让用户服务在没有登录会话时继续运行,开机任务让发行版本身保持存活。
sudo apt-get install -y dbus-x11 sudo loginctl enable-linger "$(whoami)" openclaw gateway install
`enable-linger` 的作用是允许用户服务在你没登录时继续跑。没有它,systemd 会在你的会话结束的那一刻拆掉你的服务。
# In an ADMINISTRATOR PowerShell on the Windows side: schtasks /create /tn "WSL Boot" ^ /tr "wsl.exe -d Ubuntu --exec dbus-launch true" ^ /sc onstart /ru "$env:USERNAME"
这必须在管理员权限的 PowerShell 里执行。它在开机时、任何人登录之前就把发行版拉起来——这正是让网关在冷启动后依然可达的关键。
# On WSL 2.6.1.0 and newer use `dbus-launch true`, not `/bin/true`. # /bin/true exits immediately and WSL treats the distro as idle, # then terminates it — taking the gateway with it.
这是 WSL 2.6.1.0 及以上版本上一个真实存在的坑。`/bin/true` 会立刻返回,WSL 于是判定发行版处于空闲状态并把它终止掉——结果是开机任务看起来是生效的,而网关照样消失。