本文将保姆级演示如何在 Windows 下安装 Ubuntu、配置镜像网络,并完整部署 OpenClaw 框架。
一、WSL 安装 Ubuntu 与网络配置指南
1. 安装 Ubuntu 并验证状态
查询 WSL 版本和运行状态 在 PowerShell 中执行以下命令,检查系统内置的 WSL 版本与运行状态:
wsl --status
wsl --version

如果提示如下命令行显示无效,那就需要运行以下命令更新:
wsl --update

预期输出示例:
WSL 版本: 2.0.xxxx.0
内核版本: 5.15.xxxx
WSLg 版本: 1.0.xxxx
MSRDC 版本: 1.3.xxxx
Direct3D 版本: 1.611.xxxx
DXCore 版本: 10.0.xxxx
Windows 版本: 10.0.22631.xxxx
确认当前 WSL 版本为 2.0 以上。
安装 Ubuntu 以管理员身份打开 Windows PowerShell,执行以下命令开始安装:
# 查询 WSL 可支持的系统列表
wsl --list --online
# 安装 Ubuntu 系统
wsl --install Ubuntu

查看列表中确认存在Ubuntu和Ubuntu-24.04
# 安装 Ubuntu 系统
wsl --install Ubuntu
# 安装特定的ubuntu(两个命令二选一)
wsl --install -d Ubuntu-24.04
首次安装会执行安装Windows可选组件
接着再执行就进入安装过程,下载会比较慢,根据网络情况

安装过程会提示创建 UNIX 用户名和密码:
Installing, this may take a few minutes...
Please create a default UNIX user account. The username and password must not match your Windows username.
New UNIX username: xmsumi
New password:
Retype password:

此账户拥有 sudo 权限,是后续执行安装操作的核心身份。
安装成后会直接启动Ubuntu,如果没有就通过命令启动
# 启动Ubuntu
ubuntu
更新软件包索引
# 更新系统包索引并升级
sudo apt update && sudo apt upgrade -y

安装常用工具
# 安装常用工具
sudo apt install -y curl wget git

2. WSL 网络配置
理解 WSL 网络架构对于 OpenClaw 的局域网访问和 VPN 兼容性至关重要。
WSL 2 有两种主要模式:NAT 模式(默认)和镜像模式(推荐)
镜像模式可使 WSL 直接使用 Windows 宿主机的网络接口,也就是可以在同一个局域网中,这样方便WUI访问。
网络架构示意图:
Windows 主机
│
├── WSL 2 虚拟机(镜像模式)
│ │
│ └── eth0:与宿主机共享同一局域网 IP
│
└── 物理网络 / Internet
配置步骤:
创建配置文件: 在 Windows 文件资源管理器中导航至 C:\Users\<你的用户名>\。若不存在 .wslconfig 文件,则新建一个(注意文件名以 . 开头)。
编辑配置: 用记事本打开该文件,填入以下内容:
[wsl2]
# 启用镜像网络模式
networkingMode=mirrored
# 启用 DNS 隧道,避免 VPN 环境下的 DNS 解析问题
dnsTunneling=true
# 自动使用 Windows 的 HTTP 代理设置
autoProxy=true
# 启用防火墙集成
firewall=true
[experimental]
# 自动回收闲置内存
autoMemoryReclaim=gradual
# 允许从 WSL 访问 localhost 等回环地址
hostAddressLoopback=true
保存成功后,在 Windows 终端中执行以下命令以应用配置:
wsl --shutdown
等待约 8 秒钟以确保虚拟机彻底关闭,然后重新启动 Ubuntu
进入 WSL 后,运行 ip addr show,若配置成功,你将看到与 Windows 宿主机同网段的 IP 地址。

或者直接ping一下本机IP

3.配置防火墙规则
OpenClaw 网关使用的 18789 端口,需要在 WSL 中运行服务并开放端口
在 Windows PowerShell(管理员)中创建入站规则:
# 创建入站规则,允许指定端口
New-NetFirewallRule -DisplayName "OpenClaw-Service" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 18789
若未来需要删除该防火墙规则,可以使用以下命令(将
{Name}替换为上一步查询到的 Name 字段):Remove-NetFirewallRule -Name "{Name}"

# 查看已创建的规则
Get-NetFirewallRule -DisplayName "OpenClaw-Service" | Format-Table

二、安装 OpenClaw 并配置模型 API
推荐使用官方脚本安装 通过运行官方提供的一键安装脚本进行快速部署:
curl -fsSL https://openclaw.ai/install.sh | bash


进入配置流程,是否授权「Yes」

模型这里跳过「Skip for now」,后面教大家如何手动配置

选择「All providers」

网关端口,就是后面浏览器访问会用的端口号http://127.0.0.1:18789默认填18789

这里选LAN (0.0.0.0),方便内网访问

这里建议自己设置token,如果不设置后面会需要自己去获取token

访问控制面板 启动 Web 控制面板,用于后续的图形化管理与交互:
openclaw dashboard

重启 Gateway
openclaw gateway restart
openclaw gateway status
访问 Web UI
根据你的局域网 IP,访问地址为:http://<你的局域网IP>:18789/
也可以直接带token访问http://127.0.0.1:18789/#token=xmsumi
安装浏览器扩展(可选) 如需通过 OpenClaw 控制浏览器行为,可安装官方浏览器扩展:
openclaw browser extension install
系统将引导您完成 Google Chrome 浏览器扩展的安装流程。
三、配置模型
现在各大厂商的套餐都涨价了,所以我还是比较推荐阿里云百炼Coding Plan,因为千问系列模型确实是市面上比较能打的,多种模型适合各种任务Qwen3.5-Plus、Qwen3-Max、Qwen3-Coder-Next、Qwen3-Coder-Plus;
套餐链接:
没有优惠,而且是限量供应,每天每天9:30补货
开通成功后先进入「订阅套餐」- 「点击生成」专属API key

复制成功后,准备好加到配置文件中

推荐手动在文件里配置,也可以直接在Web UI界面配置
文件位置一般在\\wsl.localhost\Ubuntu-24.04\home\<你的系统名称>\.openclaw\openclaw.json
或者直接在Web UI的配置,切换至「Raw」,找到下面内容

"models": {
"mode": "merge",
"providers": {
"bailian": {
"baseUrl": "https://coding.dashscope.aliyuncs.com/v1",
"apiKey": "__OPENCLAW_REDACTED__",
"api": "openai-completions",
"models": [
{
"id": "qwen3.5-plus",
"name": "qwen3.5-plus",
"api": "openai-completions",
"reasoning": false,
"input": [
"text",
"image"
],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 1000000,
"maxTokens": 65536
},
{
"id": "qwen3-max-2026-01-23",
"name": "qwen3-max-2026-01-23",
"api": "openai-completions",
"reasoning": false,
"input": [
"text"
],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 262144,
"maxTokens": 65536
},
{
"id": "qwen3-coder-next",
"name": "qwen3-coder-next",
"api": "openai-completions",
"reasoning": false,
"input": [
"text"
],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 262144,
"maxTokens": 65536
},
{
"id": "qwen3-coder-plus",
"name": "qwen3-coder-plus",
"api": "openai-completions",
"reasoning": false,
"input": [
"text"
],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 1000000,
"maxTokens": 65536
},
{
"id": "MiniMax-M2.5",
"name": "MiniMax-M2.5",
"api": "openai-completions",
"reasoning": false,
"input": [
"text"
],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 1000000,
"maxTokens": 65536
},
{
"id": "glm-5",
"name": "glm-5",
"api": "openai-completions",
"reasoning": false,
"input": [
"text"
],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 202752,
"maxTokens": 16384
},
{
"id": "glm-4.7",
"name": "glm-4.7",
"api": "openai-completions",
"reasoning": false,
"input": [
"text"
],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 202752,
"maxTokens": 16384
},
{
"id": "kimi-k2.5",
"name": "kimi-k2.5",
"api": "openai-completions",
"reasoning": false,
"input": [
"text",
"image"
],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 262144,
"maxTokens": 32768
}
]
}
}
},
"agents": {
"defaults": {
"model": {
"primary": "bailian/qwen3-max-2026-01-23"
},
"models": {
"bailian/qwen3.5-plus": {},
"bailian/qwen3-max-2026-01-23": {},
"bailian/qwen3-coder-next": {},
"bailian/qwen3-coder-plus": {},
"bailian/MiniMax-M2.5": {},
"bailian/glm-5": {},
"bailian/glm-4.7": {},
"bailian/kimi-k2.5": {}
},
"workspace": "/home/_OPENCLAW_REDACTED_/.openclaw/workspace",
"compaction": {
"mode": "safeguard"
},
"maxConcurrent": 4,
"subagents": {
"maxConcurrent": 8
}
}
},
如何切换给Agent切换模型,找到代理 - Agent - Primary model (default) 直接下拉切换

四、常见问题
Q1: Gateway 启动失败
解决方案:
cat ~/.openclaw/openclaw.json | jq
tail -f ~/.openclaw/logs/gateway.log
cp ~/.openclaw/openclaw.json.backup ~/.openclaw/openclaw.json
openclaw gateway restart
Q2: 局域网无法访问
解决方案:
sudo ufw status
sudo ufw allow 18789/tcp
openclaw gateway status
grep '"bind"' ~/.openclaw/openclaw.json
Q3: 模型未显示在列表中
解决方案:
-
检查 JSON 语法是否正确
-
确认 provider 名称与模型引用一致
-
确认 API key 有效且有访问权限
-
重启 Gateway:
openclaw gateway restart
Q4: 认证失败 (HTTP 401)
解决方案:
-
验证 API key 格式是否正确
-
确认 API key 未过期
-
检查 API key 是否有访问所用 API 的权限
Q5: 镜像模式不生效
解决方案:
-
确认已执行
wsl --shutdown并等待 8 秒后重新启动 -
检查
.wslconfig文件路径是否正确 -
确认 WSL 版本为 2.0 以上
-
更新 WSL 内核:
wsl --update
Q6: 防火墙规则创建失败
问题表现:运行 New-NetFirewallHyperVRule 或 Set-NetFirewallHyperVVMSetting 时报错。
解决方案:
确认以管理员身份运行 PowerShell
检查 Hyper-V 服务是否正在运行
VMCreatorId 错误
:如果使用 Hyper-V 防火墙命令报错,可能是因为硬编码的 GUID 不存在于当前系统。请改用标准防火墙命令:
# 推荐:使用标准防火墙命令(适用于 WSL2)
New-NetFirewallRule -DisplayName "OpenClaw-Service" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 18789
动态获取 VMCreatorId
(仅当需要使用 Hyper-V 防火墙时):
# 获取系统所有 VM 创建者
Get-NetFirewallHyperVVMCreator
# 使用动态获取的 GUID 配置
Get-NetFirewallHyperVVMCreator | ForEach-Object {
Set-NetFirewallHyperVVMSetting -Name $_.Name -DefaultInboundAction Allow
}
五、卸载 Ubuntu (附加)
如果你在折腾过程中需要重置环境,可以通过以下命令快速卸载并注销当前的 Ubuntu 实例:
# 查询要卸载的版本名称
wsl --list --all
# 执行卸载操作 (以 Ubuntu 为例)
wsl --unregister Ubuntu