WSL2 安装 OpenClaw(Windows)

OpenClaw 官方文档 建议通过WSL2(推荐Ubuntu)在Windows上使用。CLI + Gateway在Linux内运行,这样可以保持了运行时的一致性,并使工具能够兼容(Node/Bun/pnpm,Linux二进制文件,技能)。原生Windows可能遇到一些棘手的情况。WSL2为您提供完整的Linux体验------一个安装命令:wsl --install

截止发文日,原生Windows配套应用程序还在计划中。

当让,你最好对计算机,特别是 Ubuntu 有一定了解再尝试通过wsl安装。

这在调用本机浏览器时也比较麻烦。

1. Install (WSL2)

1.1安装发行版

如果你已经安装,可以忽略这一步

ps 复制代码
wsl --install

此命令将启用运行WSL和安装Linux的Ubuntu发行版所需的功能。

参考文档 Install WSL| Microsoft Learn.

安装完毕之后,打开 ubuntu,你需要为新的发行版设定用户名和密码。

如果太久不用,密码忘记了

通过下面命令, 换成你要重置密码的发行版名称。

sh 复制代码
wsl -d <DistroName> -u root

登陆之后,重置 的密码。

sh 复制代码
passwd <username> 

1.2启动 systemd

sh 复制代码
sudo tee /etc/wsl.conf >/dev/null <<'EOF'
[boot]
systemd=true
EOF

1.3 重启 wsl

在 Powershell中

sh 复制代码
wsl --shutdown

重新进入wsl

sh 复制代码
systemctl --user status

2. 安装 OpenClaw

sh 复制代码
curl -fsSL https://openclaw.ai/install.sh | bash

3. 安装为服务

sh 复制代码
openclaw onboard --install-daemon

检查服务状态

sh 复制代码
openclaw gateway status

4. 配置在 Windows 登录前自动启动

可选,如果你想让这个服务在登录电脑之前就能用,服务器比较需要这个功能。

在 wsl 中运行

sh 复制代码
sudo loginctl enable-linger "$(whoami)"
openclaw gateway install

在 Windows Powershell中执行

将下面命令中的换成你的发行版。

sh 复制代码
schtasks /create /tn "WSL Boot" /tr "wsl.exe -d <DistroName> --exec /bin/true" /sc onstart /ru SYSTEM

检查登录前启动是否配置成功

在wsl中运行

sh 复制代码
systemctl --user is-enabled openclaw-gateway
systemctl --user status openclaw-gateway --no-pager

5. 将wsl中的服务暴露给外部网络

还是服务器需要的功能。

WSL有自己的虚拟网络。如果另一台机器需要访问在WSL内运行的服务(SSH、本地TTS服务器或网关),您必须将Windows端口转发到当前的WSL IP。WSL IP在重新启动后会发生变化,因此您可能需要刷新转发规则。

添加映射

用管理员模式启动 Powershell:

sh 复制代码
$Distro = "Ubuntu-24.04"
$ListenPort = 18000
$TargetPort = 18789

$WslIp = (wsl -d $Distro -- hostname -I).Trim().Split(" ")[0]
if (-not $WslIp) { throw "WSL IP not found." }

netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=$ListenPort `
  connectaddress=$WslIp connectport=$TargetPort

添加防火墙允许规则

只需要开一次

sh 复制代码
New-NetFirewallRule -DisplayName "WSL SSH $ListenPort" -Direction Inbound `
  -Protocol TCP -LocalPort $ListenPort -Action Allow

在WSL重启后,刷新端口代理

sh 复制代码
netsh interface portproxy delete v4tov4 listenport=$ListenPort listenaddress=0.0.0.0 | Out-Null
netsh interface portproxy add v4tov4 listenport=$ListenPort listenaddress=0.0.0.0 `
  connectaddress=$WslIp connectport=$TargetPort | Out-Null
相关推荐
java_logo4 小时前
SiYuan 思源笔记 Docker 部署终极指南:Windows+Linux 双平台
windows·笔记·docker·思源笔记·思源笔记部署·docker部署思源笔记·思源笔记文档
测试员周周6 小时前
【AI测试系统】第1篇:LangGraph 实战:用 State Graph 搭建 AI测试流水线(4 步编排 + RAG 增强 + 完整代码)
linux·windows·python·功能测试·microsoft·单元测试·多轮对话
祖国的好青年6 小时前
VS Code 搭建 React Native 开发环境(Windows 实战指南)
android·windows·react native·react.js
love530love6 小时前
Python 3.12 解决 MediaPipe “no attribute ‘solutions‘” 终极方案:基于全版本硬核实测的避坑指南
开发语言·人工智能·windows·python·comfyui·mediapipe·solutions
YJlio7 小时前
Windows Internals 读书笔记 10.3.3:Task Scheduler 架构详解
人工智能·windows·笔记·python·学习·chatgpt·架构
微软技术分享8 小时前
Windows平台下CUDA安装及llama.cpp使用教程
windows·llama
CHANG_THE_WORLD8 小时前
<Fluent Python > 2. 第二章:序列的数组
网络·windows·python
独自破碎E8 小时前
解决 Windows 虚拟内存迁移失败的全过程实录
windows
L1624768 小时前
临时拉高 CPU 利用率(防缩容)操作全总结(linux和windows系统)
linux·运维·windows
AI玫瑰助手8 小时前
Python基础:数据类型的转换(int/str/list等互转)
windows·python·list