前置条件

  • Windows 10/11,已启用 WSL2
  • 有 OpenClaw Gateway 运行中
  • Gateway token 已获取

第一步:卸载旧 Ubuntu(如需重装)

PowerShell 中执行:

wsl --unregister Ubuntu

第二步:安装 Ubuntu

PowerShell 中执行:

wsl --install Ubuntu

安装完成后设置用户名和密码。

第三步:配置镜像网络模式

解决 WSL2 无法使用 Windows localhost 代理的问题。

PowerShell 中执行:

Set-Content -Path "$env:USERPROFILE\.wslconfig" -Value "[wsl2]`nnetworkingMode=mirrored`nvmIdleTimeout=-1"
  • networkingMode=mirrored:WSL 与 Windows 共享网络栈,代理直接能用
  • vmIdleTimeout=-1:WSL 不会因空闲自动关闭

然后重启 WSL 使配置生效:

wsl --shutdown

第四步:安装 Node.js

WSL 中执行:

curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install nodejs -y

验证:

node -v && npm -v
⚠️ 包名是 nodejs 不是 nodeapt install node 会报错。

第五步:安装 OpenClaw

WSL 中执行:

sudo npm install -g openclaw

第六步:手动运行并配对

WSL 中执行:

OPENCLAW_GATEWAY_TOKEN=<你的gateway_token> openclaw node run --host <gateway地址> --port 443 --tls --display-name "Work"

参数说明:

  • --host:Gateway 地址
  • --port 443:端口
  • --tls:443 端口必须加
  • --display-name:节点显示名称
  • OPENCLAW_GATEWAY_TOKEN:Gateway 认证 token(必须传)

确认连接成功后 Ctrl+C 停掉,继续配置自启。

第七步:创建 systemd 自启服务

7.1 配置 wsl.conf

WSL 中执行:

sudo tee /etc/wsl.conf << 'EOF'
[boot]
systemd=true

[automount]
enabled=true
options="metadata,umask=22,fmask=11"
mountFsTab=true
EOF

然后在 PowerShell 重启 WSL:

wsl --shutdown

7.2 创建 service 文件

WSL 中执行:

mkdir -p ~/.config/systemd/user

cat > ~/.config/systemd/user/openclaw-node.service << EOF
[Unit]
Description=OpenClaw Node
After=network-online.target
Wants=network-online.target

[Service]
ExecStartPre=/bin/bash -c 'until [ -d /mnt/c/Users ]; do sleep 1; done'
ExecStart=/usr/bin/openclaw node run --host <gateway地址> --port 443 --tls --display-name "Work"
Environment=OPENCLAW_GATEWAY_TOKEN=<你的gateway_token>
Restart=always
RestartSec=5

[Install]
WantedBy=default.target
EOF

关键点:

  • ExecStartPre:等待 Windows 盘符挂载完成后再启动,否则 /mnt/c /mnt/d 等路径不可用
  • Restart=always:进程异常退出自动重启

7.3 启用并启动服务

systemctl --user daemon-reload
systemctl --user enable openclaw-node.service
systemctl --user start openclaw-node.service

7.4 检查状态

systemctl --user status openclaw-node.service

应该显示 active (running)

第八步:设置 WSL 开机自启(Windows 计划任务)

WSL 关掉终端后可能退出,需要用 VBS 脚本后台常驻。

8.1 创建 VBS 脚本

PowerShell 中执行:

Set-Content -Path "$env:USERPROFILE\start-wsl.vbs" -Value 'CreateObject("Wscript.Shell").Run "wsl -d Ubuntu", 0, False'

VBS 脚本会静默启动 WSL,不会弹出终端窗口。

8.2 创建计划任务

PowerShell 中执行:

schtasks /create /tn "WSL Ubuntu AutoStart" /tr "wscript.exe \`"$env:USERPROFILE\start-wsl.vbs\`"" /sc onlogon /rl highest /f

用户登录后自动运行 VBS 脚本,静默启动 WSL + systemd 服务。

8.3 验证计划任务

schtasks /query /tn "WSL Ubuntu AutoStart"

状态应显示 Ready


常见问题排查

问题原因解决方案
apt install node 报错包名不对apt install nodejs
WSL 下载慢/代理不生效NAT 模式不支持 localhost 代理配置 networkingMode=mirrored
gateway token missing没传 tokenOPENCLAW_GATEWAY_TOKEN=xxx
gateway token mismatchtoken 写错了检查 service 文件里的 token
systemd 服务里 /mnt/c 不存在服务启动时 Windows 盘符还没挂载ExecStartPre 等待挂载
WSL 关终端就退出没有活跃会话.vbs 脚本后台常驻 + 计划任务
服务频繁重启 start-limit-hit启动失败太多次systemctl --user reset-failed 再启动

最终效果

  • ✅ Windows 开机 → 计划任务自动运行 VBS → 静默启动 WSL
  • ✅ WSL 启动 → systemd 自动拉起 openclaw-node 服务
  • ✅ 服务等待 Windows 盘符挂载 → 连接 Gateway → 节点上线
  • ✅ 关闭终端不影响 WSL 和节点运行
  • ✅ 文件读写权限正常,/mnt/c /mnt/d 等均可访问
最后修改:2026 年 05 月 19 日
如果觉得我的文章对你有用,请随意赞赏