【教程】Windows本地配置openclaw!WSL2 + OpenClaw 完整配置指南,从零到能用
- 内容介绍
- 文章标签
- 相关推荐
OK呀各位佬友好,上一篇分享了我的 OpenClaw 记忆系统和人格系统配置(传送门),评论区不少佬友问:你这个环境到底怎么搭的?WSL 里跑 OpenClaw 有什么坑?
所以这篇专门写 WSL2 环境下配置 OpenClaw 的完整流程。我自己是 Windows 笔记本(Acer,16GB RAM),全程在 WSL2 Debian 里跑,稳定用了一周多,没翻过车。
先说结论:WSL2 跑 OpenClaw 完全没问题,甚至比 macOS 还灵活(systemd 守护进程、Xvfb 虚拟显示器这些 Linux 原生的东西用起来很顺手)。唯一的坑是网络代理,下面会详细说。
先说结论,可以跟着我的教程走,不过建议开启WSL之后直接让Claude Code帮你安装
我的环境
| 项目 | 配置 |
|---|---|
| 系统 | Windows 11 + WSL2 (Debian) |
| 硬件 | Acer 笔记本,16GB RAM,长江存储 1TB SSD |
| Node.js | v24.x(通过 nvm 或直接安装) |
| OpenClaw | 2026.2.21-2(npm 全局安装) |
| 代理 | Windows 侧跑代理客户端,WSL 通过 SOCKS5 转发 |
一、WSL2 基础环境
WSL2 的安装看起来简单,但实际上有不少前置条件和容易踩的坑。这里从头说起。
1.1 前置条件检查
系统要求:
- Windows 10 版本 2004(Build 19041)及以上,或 Windows 11
- 64 位系统
- BIOS 里开启了虚拟化(VT-x / AMD-V)
先检查虚拟化是否开启:打开任务管理器 → 性能 → CPU,看右下角"虚拟化"是否显示"已启用"。
如果没开,需要进 BIOS 开启:
- 重启电脑,开机时按 F2 / Del / F10(不同品牌不一样)进入 BIOS
- 找到
Intel Virtualization Technology或SVM Mode,设为 Enabled - 保存退出
1.2 启用 Windows 功能
以管理员身份打开 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
执行完必须重启电脑,不重启后面的步骤会失败。
1.3 更新 WSL 内核 & 设置默认版本
重启后,继续在管理员 PowerShell 里:
# 更新 WSL 到最新版本(包含内核更新)
wsl --update
# 设置默认使用 WSL2(不是 WSL1)
wsl --set-default-version 2
如果
wsl --update报错,可以手动下载内核更新包:
去微软官网搜 “WSL2 Linux kernel update package” 下载安装。
国内网络不好的话,搜"WSL2 内核更新包"也能找到镜像。
1.4 安装 Debian
# 查看可用的发行版
wsl --list --online
# 安装 Debian
wsl --install -d Debian
安装完会自动打开 Debian 终端,设置用户名和密码。
如果 wsl --install 卡住或报错(国内网络问题),可以:
- 去 Microsoft Store 搜 “Debian” 直接安装
- 或者用离线包:
wsl --install -d Debian --web-download
验证安装:
wsl -l -v
# 应该看到:
# NAME STATE VERSION
# Debian Running 2
确保 VERSION 列是 2。如果是 1,执行:
wsl --set-version Debian 2
1.5 首次进入 Debian 后的基础配置
# 更新软件源(建议先换国内镜像,速度快很多)
sudo sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
sudo apt update && sudo apt upgrade -y
# 安装基础工具
sudo apt install -y curl wget git build-essential
1.6 配置 .wslconfig(防止 WSL 被杀)
在 Windows 用户目录下创建 C:\Users\你的用户名\.wslconfig:
[wsl2]
autoMemoryReclaim=disabled
为什么要关闭自动内存回收? Windows 默认会在内存紧张时回收 WSL 的内存,这会导致 OpenClaw 网关进程被杀、WebSocket 断连。关掉这个选项后稳定多了。
改完后重启 WSL:
wsl --shutdown
wsl -d Debian
1.7 启用 systemd
OpenClaw 的网关需要 systemd 来做守护进程。编辑 /etc/wsl.conf:
[boot]
systemd=true
重启 WSL 生效。验证:
systemctl --user status
# 应该能看到 user slice 在跑
二、安装 Node.js 和 OpenClaw
2.1 安装 Node.js
推荐用 nvm 管理版本:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
source ~/.bashrc
nvm install 24
node --version # v24.x
2.2 配置 npm 全局路径(避免 sudo)
mkdir -p ~/.npm-global
npm config set prefix '~/.npm-global'
在 ~/.bashrc 里加:
export PATH="$HOME/.npm-global/bin:$PATH"
然后 source ~/.bashrc。
2.3 安装 OpenClaw
npm install -g openclaw
openclaw --version # 确认安装成功
2.4 初始化配置
openclaw configure
这会启动交互式配置向导,主要设置:
- 模型提供商:填你的 API 地址和 key(支持 OpenAI、Anthropic、自定义兼容接口)
- 网关模式:选
local(本地使用) - 网关端口:默认 18789 就行
配置文件在 ~/.openclaw/openclaw.json。
三、网络代理配置(最大的坑)
WSL2 里的网络环境比较特殊——它有自己的虚拟网卡,不能直接用 Windows 侧的 127.0.0.1 代理。
3.1 找到 Windows 主机 IP
WSL2 访问 Windows 主机的 IP 不是 127.0.0.1,而是网关地址:
# 方法1:从 /etc/resolv.conf 读
cat /etc/resolv.conf | grep nameserver | awk '{print $2}'
# 方法2:直接用固定地址(WSL2 默认)
# 通常是 172.x.x.1 的形式
ip route show default | awk '{print $3}'
假设你的 Windows 代理客户端监听 10808 端口(SOCKS5),那 WSL 里的代理地址就是:
socks5://172.31.0.1:10808
注意: 你的代理客户端需要开启"允许局域网连接",否则 WSL 连不上。
3.2 给 OpenClaw 网关配代理
OpenClaw 网关是 Node.js 进程,需要通过 HTTP 代理访问 API。但 Node.js 的 fetch 不认 SOCKS5 代理,需要用 Privoxy 做协议转换:
sudo apt install privoxy
编辑 /etc/privoxy/config,在末尾加一行:
forward-socks5 / 172.31.0.1:10808 .
这行的意思是:所有请求都通过 SOCKS5 代理转发。
启动 Privoxy:
sudo systemctl enable privoxy
sudo systemctl start privoxy
Privoxy 默认监听 127.0.0.1:8118(HTTP 代理)。
3.3 在 systemd service 里注入代理
编辑 OpenClaw 的 systemd service 文件(~/.config/systemd/user/openclaw-gateway.service),在 [Service] 段加:
Environment="HTTPS_PROXY=http://127.0.0.1:8118"
Environment="HTTP_PROXY=http://127.0.0.1:8118"
Environment="no_proxy=localhost,127.0.0.1,::1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16"
然后重载并重启:
systemctl --user daemon-reload
systemctl --user restart openclaw-gateway
3.4 Git 代理(踩坑警告)
如果你需要 clone GitHub 仓库(比如安装 skill),Git 代理要这样配:
# ✅ 正确
git config --global http.proxy socks5://172.31.0.1:10808
# ❌ 错误 - 会卡死!
git config --global http.proxy socks5h://172.31.0.1:10808
socks5h 和 socks5 的区别是 DNS 解析在哪边做。socks5h 让代理服务器解析 DNS,但某些代理客户端处理不好这个,会直接卡住。用 socks5 就没问题。
四、启动网关并设为守护进程
4.1 首次启动
openclaw gateway start
OpenClaw 会自动创建 systemd user service。验证:
openclaw gateway status
# 应该看到 Runtime: running
4.2 开机自启
systemd user service 默认就是开机自启的(WantedBy=default.target)。但 WSL 有个问题:Windows 重启后 WSL 不会自动启动。
解决方案:在 Windows 侧创建定时任务,每 2 分钟检查 WSL 是否在跑:
- 创建 PowerShell 脚本
C:\Users\你的用户名\scripts\keep-wsl-alive.ps1:
$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 - 勾选"不管用户是否登录都要运行"
这样即使 Windows 重启,WSL 也会在 2 分钟内自动拉起,OpenClaw 网关跟着 systemd 一起启动。
五、浏览器配置(可选但推荐)
OpenClaw 有浏览器控制功能,可以让 AI 帮你操作网页。在 WSL 里需要额外配置。
5.1 安装 Chromium
sudo apt install chromium xvfb
chromium:浏览器本体xvfb:虚拟显示器(WSL 没有真实显示器,需要虚拟的)
5.2 创建 Chromium wrapper 脚本
mkdir -p ~/.local/bin
cat > ~/.local/bin/chromium-proxy << 'EOF'
#!/bin/sh
# Chromium wrapper: proxy + virtual display (Xvfb)
# Uses display :99 to avoid conflicting with WSLg's :0
if ! pgrep -f "Xvfb :99" > /dev/null 2>&1; then
Xvfb :99 -screen 0 1920x1080x24 -ac +extension GLX +render -noreset &
sleep 1
fi
export DISPLAY=:99
exec /usr/bin/chromium --proxy-server="socks5://172.31.0.1:10808" "$@"
EOF
chmod +x ~/.local/bin/chromium-proxy
为什么用 :99 而不是 :0? WSLg 占用了 :0,如果用 :0 会冲突,而且浏览器窗口会弹到 Windows 桌面上(你不想要这个)。用 :99 是纯虚拟的,不会弹窗。
5.3 配置 OpenClaw 使用自定义浏览器
编辑 ~/.openclaw/openclaw.json,加入浏览器配置:
{
"browser": {
"executablePath": "/home/你的用户名/.local/bin/chromium-proxy",
"headless": false,
"profiles": {
"openclaw": {
"cdpPort": 18800,
"color": "#FF4500"
}
}
}
}
5.4 在 systemd service 里加 DISPLAY 环境变量
Environment="DISPLAY=:99"
重载 service 后,OpenClaw 就能控制浏览器了。
六、自定义模型配置
OpenClaw 支持自定义 API 提供商。如果你用的是第三方中转站(比如各种 API 代理),在 openclaw.json 的 models 部分配置:
{
"models": {
"mode": "merge",
"providers": {
"my-provider": {
"baseUrl": "https://your-api-endpoint.com",
"apiKey": "sk-your-api-key",
"api": "anthropic-messages",
"models": [
{
"id": "claude-opus-4-6",
"name": "Claude Opus 4",
"reasoning": false,
"input": ["text", "image"],
"contextWindow": 200000,
"maxTokens": 32000
}
]
}
}
}
}
关键字段说明:
api:API 协议类型,anthropic-messages或openai-chatcontextWindow:上下文窗口大小maxTokens:最大输出 token 数reasoning:是否支持 extended thinking
然后在 agents.defaults.model 里指定默认模型:
{
"agents": {
"defaults": {
"model": {
"primary": "my-provider/claude-opus-4-6"
}
}
}
}
七、访问 Webchat UI
网关启动后,打开浏览器访问:
http://127.0.0.1:18789/
如果你想从 Windows 浏览器访问 WSL 里的网关,直接用 localhost:18789 就行——WSL2 会自动做端口转发。
首次访问需要输入 gateway token(在 openclaw.json 的 gateway.auth.token 里)。
八、完整代理链路图
画个图帮大家理解整个代理链路:
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)
Chromium 浏览器走的是另一条路:
Chromium (--proxy-server 参数)
↓ SOCKS5 直连 172.31.0.1:10808
Windows 代理客户端
↓
互联网
Chromium 可以直接用 SOCKS5,不需要 Privoxy 中转。Node.js 的 fetch 不行,所以网关需要 Privoxy。
九、踩坑汇总
坑1:WSL 自动回收内存
现象: OpenClaw 网关莫名断连,openclaw gateway status 显示进程不在了。
原因: Windows 的 autoMemoryReclaim 功能回收了 WSL 内存。
解决: .wslconfig 里 autoMemoryReclaim=disabled。
坑2:socks5h 卡死
现象: git clone 或 curl 通过代理时永远卡住不动。
原因: socks5h:// 让代理服务器做 DNS 解析,某些代理客户端处理不好。
解决: 统一用 socks5://(本地 DNS 解析)。
坑3:Chromium 弹窗到 Windows 桌面
现象: OpenClaw 启动浏览器后,Windows 桌面上突然弹出一个 Chromium 窗口。
原因: 用了 WSLg 的 :0 显示器。
解决: Xvfb 用 :99,不走 WSLg。
坑4:systemd user service 不启动
现象: WSL 重启后 openclaw gateway status 显示没在跑。
原因: systemd user service 需要用户 session 才能启动,WSL 默认不创建 user session。
解决: 用 loginctl enable-linger 你的用户名 让 user service 在没有登录 session 时也能跑。
sudo loginctl enable-linger $(whoami)
坑5:sudo 每次要输密码
OpenClaw 有时需要执行 sudo 命令(装软件等),每次输密码很烦。
sudo visudo
# 加一行(把 your_username 换成你的用户名):
your_username ALL=(ALL) NOPASSWD: ALL
这个只在 WSL 里配,不要在生产服务器上这么干。
十、验证清单
全部配完后,逐项检查:
# 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/
# 7. 浏览器控制(可选)
openclaw browser start --browser-profile openclaw
openclaw browser status --browser-profile openclaw # running: true
写在最后
WSL2 跑 OpenClaw 的核心就三件事:
- systemd —— 让网关能守护进程运行
- 代理链路 —— Privoxy 做 HTTP→SOCKS5 转换,解决 Node.js 不认 SOCKS5 的问题
- 保活 ——
.wslconfig关内存回收 + Windows 定时任务拉起 WSL
其他都是锦上添花。配好这三样,日常使用就很稳了。
有问题欢迎评论区交流,也可以看看我上一篇关于 OpenClaw 记忆系统和人格系统的配置分享
网友解答:【分享】折腾了一周 OpenClaw,我给 AI 助手搞了一套记忆系统和人格系统,附完整配置思路
--【壹】--:
学习一下
--【贰】--:
前排支持!
--【叁】--:
收藏了,忙完这几天跟着试一下
--【肆】--:
网络设置好像直接mirrored模式就行了(win11),而且现在好像v2rayn很多时候默认端口都是mixed的,似乎不用转换了
--【伍】--:
早买早解脱,不买一直受苦
--【陆】--:
码住学习
--【柒】--:
太强了佬
--【捌】--:
niubi plus
--【玖】--:
感谢佬友
--【拾】--:
感谢教程
--【拾壹】--:
加入书签,开工用公司电脑做实验
--【拾贰】--:
收藏,开工后试一下
--【拾叁】--: 一念:
Chromium 弹窗到 Windows 桌面
我觉得弹出来比较好,要不很多验证啥的过不了~~
另外wsl2的网络用mirror模式会方便很多~
--【拾肆】--:
前排支持
--【拾伍】--:
沃噻,泰裤辣,明天试试,感谢佬
--【拾陆】--:
感谢分享
--【拾柒】--:
给力给力
--【拾捌】--:
学习一下
--【拾玖】--:
支持一下,但是我觉得windows侧直接用tun模式做代理可以省略掉你上面的很多步骤,至少我是这样做的
OK呀各位佬友好,上一篇分享了我的 OpenClaw 记忆系统和人格系统配置(传送门),评论区不少佬友问:你这个环境到底怎么搭的?WSL 里跑 OpenClaw 有什么坑?
所以这篇专门写 WSL2 环境下配置 OpenClaw 的完整流程。我自己是 Windows 笔记本(Acer,16GB RAM),全程在 WSL2 Debian 里跑,稳定用了一周多,没翻过车。
先说结论:WSL2 跑 OpenClaw 完全没问题,甚至比 macOS 还灵活(systemd 守护进程、Xvfb 虚拟显示器这些 Linux 原生的东西用起来很顺手)。唯一的坑是网络代理,下面会详细说。
先说结论,可以跟着我的教程走,不过建议开启WSL之后直接让Claude Code帮你安装
我的环境
| 项目 | 配置 |
|---|---|
| 系统 | Windows 11 + WSL2 (Debian) |
| 硬件 | Acer 笔记本,16GB RAM,长江存储 1TB SSD |
| Node.js | v24.x(通过 nvm 或直接安装) |
| OpenClaw | 2026.2.21-2(npm 全局安装) |
| 代理 | Windows 侧跑代理客户端,WSL 通过 SOCKS5 转发 |
一、WSL2 基础环境
WSL2 的安装看起来简单,但实际上有不少前置条件和容易踩的坑。这里从头说起。
1.1 前置条件检查
系统要求:
- Windows 10 版本 2004(Build 19041)及以上,或 Windows 11
- 64 位系统
- BIOS 里开启了虚拟化(VT-x / AMD-V)
先检查虚拟化是否开启:打开任务管理器 → 性能 → CPU,看右下角"虚拟化"是否显示"已启用"。
如果没开,需要进 BIOS 开启:
- 重启电脑,开机时按 F2 / Del / F10(不同品牌不一样)进入 BIOS
- 找到
Intel Virtualization Technology或SVM Mode,设为 Enabled - 保存退出
1.2 启用 Windows 功能
以管理员身份打开 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
执行完必须重启电脑,不重启后面的步骤会失败。
1.3 更新 WSL 内核 & 设置默认版本
重启后,继续在管理员 PowerShell 里:
# 更新 WSL 到最新版本(包含内核更新)
wsl --update
# 设置默认使用 WSL2(不是 WSL1)
wsl --set-default-version 2
如果
wsl --update报错,可以手动下载内核更新包:
去微软官网搜 “WSL2 Linux kernel update package” 下载安装。
国内网络不好的话,搜"WSL2 内核更新包"也能找到镜像。
1.4 安装 Debian
# 查看可用的发行版
wsl --list --online
# 安装 Debian
wsl --install -d Debian
安装完会自动打开 Debian 终端,设置用户名和密码。
如果 wsl --install 卡住或报错(国内网络问题),可以:
- 去 Microsoft Store 搜 “Debian” 直接安装
- 或者用离线包:
wsl --install -d Debian --web-download
验证安装:
wsl -l -v
# 应该看到:
# NAME STATE VERSION
# Debian Running 2
确保 VERSION 列是 2。如果是 1,执行:
wsl --set-version Debian 2
1.5 首次进入 Debian 后的基础配置
# 更新软件源(建议先换国内镜像,速度快很多)
sudo sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
sudo apt update && sudo apt upgrade -y
# 安装基础工具
sudo apt install -y curl wget git build-essential
1.6 配置 .wslconfig(防止 WSL 被杀)
在 Windows 用户目录下创建 C:\Users\你的用户名\.wslconfig:
[wsl2]
autoMemoryReclaim=disabled
为什么要关闭自动内存回收? Windows 默认会在内存紧张时回收 WSL 的内存,这会导致 OpenClaw 网关进程被杀、WebSocket 断连。关掉这个选项后稳定多了。
改完后重启 WSL:
wsl --shutdown
wsl -d Debian
1.7 启用 systemd
OpenClaw 的网关需要 systemd 来做守护进程。编辑 /etc/wsl.conf:
[boot]
systemd=true
重启 WSL 生效。验证:
systemctl --user status
# 应该能看到 user slice 在跑
二、安装 Node.js 和 OpenClaw
2.1 安装 Node.js
推荐用 nvm 管理版本:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
source ~/.bashrc
nvm install 24
node --version # v24.x
2.2 配置 npm 全局路径(避免 sudo)
mkdir -p ~/.npm-global
npm config set prefix '~/.npm-global'
在 ~/.bashrc 里加:
export PATH="$HOME/.npm-global/bin:$PATH"
然后 source ~/.bashrc。
2.3 安装 OpenClaw
npm install -g openclaw
openclaw --version # 确认安装成功
2.4 初始化配置
openclaw configure
这会启动交互式配置向导,主要设置:
- 模型提供商:填你的 API 地址和 key(支持 OpenAI、Anthropic、自定义兼容接口)
- 网关模式:选
local(本地使用) - 网关端口:默认 18789 就行
配置文件在 ~/.openclaw/openclaw.json。
三、网络代理配置(最大的坑)
WSL2 里的网络环境比较特殊——它有自己的虚拟网卡,不能直接用 Windows 侧的 127.0.0.1 代理。
3.1 找到 Windows 主机 IP
WSL2 访问 Windows 主机的 IP 不是 127.0.0.1,而是网关地址:
# 方法1:从 /etc/resolv.conf 读
cat /etc/resolv.conf | grep nameserver | awk '{print $2}'
# 方法2:直接用固定地址(WSL2 默认)
# 通常是 172.x.x.1 的形式
ip route show default | awk '{print $3}'
假设你的 Windows 代理客户端监听 10808 端口(SOCKS5),那 WSL 里的代理地址就是:
socks5://172.31.0.1:10808
注意: 你的代理客户端需要开启"允许局域网连接",否则 WSL 连不上。
3.2 给 OpenClaw 网关配代理
OpenClaw 网关是 Node.js 进程,需要通过 HTTP 代理访问 API。但 Node.js 的 fetch 不认 SOCKS5 代理,需要用 Privoxy 做协议转换:
sudo apt install privoxy
编辑 /etc/privoxy/config,在末尾加一行:
forward-socks5 / 172.31.0.1:10808 .
这行的意思是:所有请求都通过 SOCKS5 代理转发。
启动 Privoxy:
sudo systemctl enable privoxy
sudo systemctl start privoxy
Privoxy 默认监听 127.0.0.1:8118(HTTP 代理)。
3.3 在 systemd service 里注入代理
编辑 OpenClaw 的 systemd service 文件(~/.config/systemd/user/openclaw-gateway.service),在 [Service] 段加:
Environment="HTTPS_PROXY=http://127.0.0.1:8118"
Environment="HTTP_PROXY=http://127.0.0.1:8118"
Environment="no_proxy=localhost,127.0.0.1,::1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16"
然后重载并重启:
systemctl --user daemon-reload
systemctl --user restart openclaw-gateway
3.4 Git 代理(踩坑警告)
如果你需要 clone GitHub 仓库(比如安装 skill),Git 代理要这样配:
# ✅ 正确
git config --global http.proxy socks5://172.31.0.1:10808
# ❌ 错误 - 会卡死!
git config --global http.proxy socks5h://172.31.0.1:10808
socks5h 和 socks5 的区别是 DNS 解析在哪边做。socks5h 让代理服务器解析 DNS,但某些代理客户端处理不好这个,会直接卡住。用 socks5 就没问题。
四、启动网关并设为守护进程
4.1 首次启动
openclaw gateway start
OpenClaw 会自动创建 systemd user service。验证:
openclaw gateway status
# 应该看到 Runtime: running
4.2 开机自启
systemd user service 默认就是开机自启的(WantedBy=default.target)。但 WSL 有个问题:Windows 重启后 WSL 不会自动启动。
解决方案:在 Windows 侧创建定时任务,每 2 分钟检查 WSL 是否在跑:
- 创建 PowerShell 脚本
C:\Users\你的用户名\scripts\keep-wsl-alive.ps1:
$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 - 勾选"不管用户是否登录都要运行"
这样即使 Windows 重启,WSL 也会在 2 分钟内自动拉起,OpenClaw 网关跟着 systemd 一起启动。
五、浏览器配置(可选但推荐)
OpenClaw 有浏览器控制功能,可以让 AI 帮你操作网页。在 WSL 里需要额外配置。
5.1 安装 Chromium
sudo apt install chromium xvfb
chromium:浏览器本体xvfb:虚拟显示器(WSL 没有真实显示器,需要虚拟的)
5.2 创建 Chromium wrapper 脚本
mkdir -p ~/.local/bin
cat > ~/.local/bin/chromium-proxy << 'EOF'
#!/bin/sh
# Chromium wrapper: proxy + virtual display (Xvfb)
# Uses display :99 to avoid conflicting with WSLg's :0
if ! pgrep -f "Xvfb :99" > /dev/null 2>&1; then
Xvfb :99 -screen 0 1920x1080x24 -ac +extension GLX +render -noreset &
sleep 1
fi
export DISPLAY=:99
exec /usr/bin/chromium --proxy-server="socks5://172.31.0.1:10808" "$@"
EOF
chmod +x ~/.local/bin/chromium-proxy
为什么用 :99 而不是 :0? WSLg 占用了 :0,如果用 :0 会冲突,而且浏览器窗口会弹到 Windows 桌面上(你不想要这个)。用 :99 是纯虚拟的,不会弹窗。
5.3 配置 OpenClaw 使用自定义浏览器
编辑 ~/.openclaw/openclaw.json,加入浏览器配置:
{
"browser": {
"executablePath": "/home/你的用户名/.local/bin/chromium-proxy",
"headless": false,
"profiles": {
"openclaw": {
"cdpPort": 18800,
"color": "#FF4500"
}
}
}
}
5.4 在 systemd service 里加 DISPLAY 环境变量
Environment="DISPLAY=:99"
重载 service 后,OpenClaw 就能控制浏览器了。
六、自定义模型配置
OpenClaw 支持自定义 API 提供商。如果你用的是第三方中转站(比如各种 API 代理),在 openclaw.json 的 models 部分配置:
{
"models": {
"mode": "merge",
"providers": {
"my-provider": {
"baseUrl": "https://your-api-endpoint.com",
"apiKey": "sk-your-api-key",
"api": "anthropic-messages",
"models": [
{
"id": "claude-opus-4-6",
"name": "Claude Opus 4",
"reasoning": false,
"input": ["text", "image"],
"contextWindow": 200000,
"maxTokens": 32000
}
]
}
}
}
}
关键字段说明:
api:API 协议类型,anthropic-messages或openai-chatcontextWindow:上下文窗口大小maxTokens:最大输出 token 数reasoning:是否支持 extended thinking
然后在 agents.defaults.model 里指定默认模型:
{
"agents": {
"defaults": {
"model": {
"primary": "my-provider/claude-opus-4-6"
}
}
}
}
七、访问 Webchat UI
网关启动后,打开浏览器访问:
http://127.0.0.1:18789/
如果你想从 Windows 浏览器访问 WSL 里的网关,直接用 localhost:18789 就行——WSL2 会自动做端口转发。
首次访问需要输入 gateway token(在 openclaw.json 的 gateway.auth.token 里)。
八、完整代理链路图
画个图帮大家理解整个代理链路:
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)
Chromium 浏览器走的是另一条路:
Chromium (--proxy-server 参数)
↓ SOCKS5 直连 172.31.0.1:10808
Windows 代理客户端
↓
互联网
Chromium 可以直接用 SOCKS5,不需要 Privoxy 中转。Node.js 的 fetch 不行,所以网关需要 Privoxy。
九、踩坑汇总
坑1:WSL 自动回收内存
现象: OpenClaw 网关莫名断连,openclaw gateway status 显示进程不在了。
原因: Windows 的 autoMemoryReclaim 功能回收了 WSL 内存。
解决: .wslconfig 里 autoMemoryReclaim=disabled。
坑2:socks5h 卡死
现象: git clone 或 curl 通过代理时永远卡住不动。
原因: socks5h:// 让代理服务器做 DNS 解析,某些代理客户端处理不好。
解决: 统一用 socks5://(本地 DNS 解析)。
坑3:Chromium 弹窗到 Windows 桌面
现象: OpenClaw 启动浏览器后,Windows 桌面上突然弹出一个 Chromium 窗口。
原因: 用了 WSLg 的 :0 显示器。
解决: Xvfb 用 :99,不走 WSLg。
坑4:systemd user service 不启动
现象: WSL 重启后 openclaw gateway status 显示没在跑。
原因: systemd user service 需要用户 session 才能启动,WSL 默认不创建 user session。
解决: 用 loginctl enable-linger 你的用户名 让 user service 在没有登录 session 时也能跑。
sudo loginctl enable-linger $(whoami)
坑5:sudo 每次要输密码
OpenClaw 有时需要执行 sudo 命令(装软件等),每次输密码很烦。
sudo visudo
# 加一行(把 your_username 换成你的用户名):
your_username ALL=(ALL) NOPASSWD: ALL
这个只在 WSL 里配,不要在生产服务器上这么干。
十、验证清单
全部配完后,逐项检查:
# 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/
# 7. 浏览器控制(可选)
openclaw browser start --browser-profile openclaw
openclaw browser status --browser-profile openclaw # running: true
写在最后
WSL2 跑 OpenClaw 的核心就三件事:
- systemd —— 让网关能守护进程运行
- 代理链路 —— Privoxy 做 HTTP→SOCKS5 转换,解决 Node.js 不认 SOCKS5 的问题
- 保活 ——
.wslconfig关内存回收 + Windows 定时任务拉起 WSL
其他都是锦上添花。配好这三样,日常使用就很稳了。
有问题欢迎评论区交流,也可以看看我上一篇关于 OpenClaw 记忆系统和人格系统的配置分享
网友解答:【分享】折腾了一周 OpenClaw,我给 AI 助手搞了一套记忆系统和人格系统,附完整配置思路
--【壹】--:
学习一下
--【贰】--:
前排支持!
--【叁】--:
收藏了,忙完这几天跟着试一下
--【肆】--:
网络设置好像直接mirrored模式就行了(win11),而且现在好像v2rayn很多时候默认端口都是mixed的,似乎不用转换了
--【伍】--:
早买早解脱,不买一直受苦
--【陆】--:
码住学习
--【柒】--:
太强了佬
--【捌】--:
niubi plus
--【玖】--:
感谢佬友
--【拾】--:
感谢教程
--【拾壹】--:
加入书签,开工用公司电脑做实验
--【拾贰】--:
收藏,开工后试一下
--【拾叁】--: 一念:
Chromium 弹窗到 Windows 桌面
我觉得弹出来比较好,要不很多验证啥的过不了~~
另外wsl2的网络用mirror模式会方便很多~
--【拾肆】--:
前排支持
--【拾伍】--:
沃噻,泰裤辣,明天试试,感谢佬
--【拾陆】--:
感谢分享
--【拾柒】--:
给力给力
--【拾捌】--:
学习一下
--【拾玖】--:
支持一下,但是我觉得windows侧直接用tun模式做代理可以省略掉你上面的很多步骤,至少我是这样做的

