一、为什么选择 WSL2 + OpenClaw?
在 Windows 上运行 OpenClaw(AI 助手),WSL2 是最推荐的方案。相比纯 Windows 环境,WSL2 有这些优势:
- ✅ 原生 Linux 环境,依赖兼容更好
- ✅ 支持 systemd,守护进程更稳定
- ✅ 内存管理更灵活(可配置)
- ✅ 与 Windows 共存,切换无压力
💡 适用场景:Windows 11 + WSL2 (Debian)
二、启用 Windows 功能
以管理员身份打开 PowerShell,依次执行:
powershell
# 启用"适用于 Linux 的 Windows 子系统"
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# 启用"虚拟机平台"(WSL2 需要)
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
⚠️ 执行完必须重启电脑!
三、更新 WSL 内核并设置默认版本
重启后,在 管理员 PowerShell 里执行:
powershell
# 更新 WSL 到最新版本
wsl --update
# 设置默认使用 WSL2
wsl --set-default-version 2
四、安装 Debian
powershell
# 查看可用的发行版
wsl --list --online
# 安装 Debian
wsl --install -d Debian
💡 安装完会自动打开 Debian 终端,设置用户名和密码。
⚠️ 如果安装卡住或报错(国内网络问题),可以去 Microsoft Store 搜 "Debian" 直接安装
验证安装
bash
wsl -l -v
# 应该看到 VERSION 是 2
🔧 如果不是,执行:
bash
wsl --set-version Debian 2
五、Debian 基础配置
5.1 换国内镜像源(推荐)
bash
sudo sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
sudo apt update && sudo apt upgrade -y
5.2 安装基础工具
bash
sudo apt install -y curl wget git build-essential
六、配置 .wslconfig(防止 WSL 被杀)
在 Windows 用户目录下创建 C:\Users\你的用户名\.wslconfig:
ini
# Settings apply across all Linux distros running on WSL 2
[wsl2]
memory=2GB
swap=2GB
localhostforwarding=true
[experimental]
autoMemoryReclaim=disabled # 启用自动内存回收功能
❓ 为什么要关闭自动内存回收?
Windows 默认会在内存紧张时回收 WSL 的内存,这会导致 OpenClaw 网关进程被杀、WebSocket 断连。
🔄 改完后重启 WSL:
powershell
wsl --shutdown
wsl -d Debian
七、启用 systemd
OpenClaw 的网关需要 systemd 来做守护进程。
编辑 /etc/wsl.conf:
ini
[boot]
systemd=true
🔄 重启 WSL 生效。验证:
bash
systemctl --user status
八、安装 Node.js
推荐用 nvm 管理版本:
bash
# 安装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
source ~/.bashrc
# 安装 Node.js 24.x
nvm install 24
node --version # 应该是 v24.x
九、配置 npm 全局路径(避免 sudo)
bash
mkdir -p ~/.npm-global
npm config set prefix '~/.npm-global'
在 ~/.bashrc 里加:
bash
export PATH="$HOME/.npm-global/bin:$PATH"
然后执行:
bash
source ~/.bashrc
十、安装 OpenClaw
bash
npm install -g openclaw
openclaw --version # 确认安装成功
十一、初始化配置
bash
openclaw configure
这会启动交互式配置向导,主要设置:
- 模型提供商:填你的 API 地址和 key
- 网关模式:选 local
- 网关端口:默认 18789
配置文件在 ~/.openclaw/openclaw.json。 接下来我就给我我的操作步骤: 1.准备自己的账号和API API 地址和 key,我用的是硅基流动,使用的模型Id是 Pro/MiniMaxAI/MiniMax-M2.5,去创建一个密钥,后面需要用到
选择Custome-Provider,如果是其他的另选之后回车就好,填入API供应商的API地址,硅基流动的是 https://api.siliconflow.cn/v1,然后选择Paste API Key now,填入生成的密钥,如图:
接下来可以继续配置安装Skills,OpenClaw默认自带的Skill 按A直接全选,否则,自行选择想要的按 空格键一个个选,,我这边直接选择全选,选完继续回车进入下一步等待安装即可,如下:

十二、网络代理配置(⚡ 重点!)
🌐 WSL2 里的网络环境比较特殊 ------ 它有自己的虚拟网卡,不能直接用 Windows 侧的 127.0.0.1 代理。
12.1 找到 Windows 主机 IP
bash
# 方法1:从 /etc/resolv.conf 读
cat /etc/resolv.conf | grep nameserver | awk '{print $2}'
# 方法2:直接用固定地址
ip route show default | awk '{print $3}'
📍 假设你的 Windows 代理客户端监听 10808 端口(SOCKS5),那 WSL 里的代理地址通常是:
arduinosocks5://172.31.0.1:10808⚠️ 你的代理客户端需要开启 "允许局域网连接"
12.2 安装 Privoxy(HTTP→SOCKS5 转换)
💡 Node.js 的 fetch 不认 SOCKS5 代理,需要用 Privoxy 做协议转换:
bash
sudo apt install privoxy
编辑 /etc/privoxy/config,在末尾加一行:
erlang
forward-socks5 / 172.31.0.1:10808 .
启动 Privoxy:
bash
sudo systemctl enable privoxy
sudo systemctl start privoxy
📍 Privoxy 默认监听
127.0.0.1:8118(HTTP 代理)。
12.3 配置 Git 代理
bash
# ✅ 正确
git config --global http.proxy socks5://172.31.0.1:10808
# ❌ 错误 - 会卡死!
git config --global http.proxy socks5h://172.31.0.1:10808
十三、启动网关并设为守护进程
13.1 首次启动
bash
openclaw gateway start
13.2 验证运行
bash
openclaw gateway status
# 应该看到 Runtime: running
13.3 开机自启
🔧 systemd user service 默认就是开机自启的。但 WSL 有个问题:Windows 重启后 WSL 不会自动启动。
解决方案:创建 Windows 定时任务
- 在
C:\Users\你的用户名\scripts\目录下创建keep-wsl-alive.ps1:
powershell
$running = wsl -l --running 2>$null | Select-String "Debian"
if (-not $running) {
wsl -d Debian -- sh -c "nohup sleep infinity &"
}
- 打开 Windows 任务计划程序,创建任务:
- 触发器:每 2 分钟重复
- 操作:
powershell.exe -ExecutionPolicy Bypass -File C:\Users\你的用户名\scripts\keep-wsl-alive.ps1 - 勾选 "不管用户是否登录都要运行"
十四、启用 user session(避免 systemd 不启动)
bash
sudo loginctl enable-linger $(whoami)
十五、配置 sudo 免密(可选)
⚠️ 如果需要经常执行 sudo 命令:
bash
sudo visudo
# 加一行(把 your_username 换成你的用户名):
your_username ALL=(ALL) NOPASSWD: ALL
🔒 安全提示: 这个只在 WSL 里配,不要在生产服务器上这么干!
十六、访问 Webchat UI
🌐 网关启动后,打开浏览器访问:,如果网关概览没有连接上,可以输入Token再进行连接 直接执行
openclaw dashboard --no-open得到带Token的链接,去浏览器进行访问链接就好
arduino
http://127.0.0.1:18789/
🔑 首次访问需要输入 gateway token(在 openclaw.json 的 gateway.auth.token 里)。
十七、验证清单
全部配完后,逐项检查:
bash
# 1. WSL2 + systemd
systemctl --user status
# 2. Node.js
node --version # v24.x
# 3. OpenClaw
openclaw --version # 2026.2.x
# 4. 网关运行
openclaw gateway status # Runtime: running
# 5. 代理链路
curl -x http://127.0.0.1:8118 https://api.anthropic.com
# 6. Webchat UI
# 浏览器打开 http://localhost:18789/
十八、常见问题汇总
| ❓ 问题 | ⚡ 原因 | 🔧 解决方案 |
|---|---|---|
| 网关莫名断连 | Windows autoMemoryReclaim 回收内存 | .wslconfig 里设 autoMemoryReclaim=disabled |
| git clone 卡死 | socks5h 让代理服务器解析 DNS | 改用 socks5:// |
| Chromium 弹窗到 Windows 桌面 | 用了 WSLg 的 :0 显示器 | Xvfb 用 :99 |
| systemd service 不启动 | 需要 user session | 用 loginctl enable-linger |
十九、完整代理链路图
ini
OpenClaw Gateway (Node.js)
↓ HTTP_PROXY=127.0.0.1:8118
Privoxy (HTTP→SOCKS5 转换)
↓ forward-socks5 172.31.0.1:10808
Windows 代理客户端 (v2rayN/Clash 等)
↓ SOCKS5
代理服务器
↓
互联网 (Anthropic API / OpenAI API)
🎯 核心要点
搞定了!其实核心就三件事:
- ✅ systemd ------ 让网关能守护进程运行
- ✅ 代理链路 ------ Privoxy 做 HTTP→SOCKS5 转换
- ✅ 保活 ------ .wslconfig 关内存回收 + Windows 定时任务拉起 WSL
🎉 祝你在 WSL2 上玩得开心!如果有问题,欢迎在评论区交流~