Window 10/11 WSL 安装配置教程
在Windows Subsystem for Linux中部署OpenClaw,享受Windows和Linux的双重视角
✅ 前置条件
系统要求
| 要求 |
最低版本 |
推荐版本 |
检查命令 |
| Windows |
10 (Build 19044+) |
11 (22H2+) |
winver |
| 内存 |
8GB |
16GB+ |
查看系统信息 |
| 存储 |
40GB |
100GB+ |
查看磁盘空间 |
| 网络 |
稳定连接 |
稳定连接 |
– |
权限要求
✅ 管理员权限: 安装和配置WSL需要管理员权限
? 如何检查Windows版本
- 按
Win + R 打开运行
- 输入
winver
- 查看Windows版本号
Windows 10: Build 19044 或更高 Windows 11: 任何版本都支持
? 快速开始
5分钟快速在WSL中部署OpenClaw
| 步骤 |
任务 |
预计时间 |
状态 |
| 1️⃣ |
安装WSL |
3分钟 |
⏳ 进行中 |
| 2️⃣ |
配置WSL |
1分钟 |
⏸️ 待开始 |
| 3️⃣ |
安装OpenClaw |
1分钟 |
⏸️ 待开始 |
| 4️⃣ |
配置API |
30秒 |
⏸️ 待开始 |
| 5️⃣ |
启动Gateway |
30秒 |
⏸️ 待开始 |
一键安装(推荐)✨
# 以管理员身份运行PowerShell,然后执行以下命令
wsl --install
此命令将:
- ✅ 启用WSL功能
- ✅ 启用虚拟机平台
- ✅ 下载并安装Ubuntu(默认Linux发行版)
- ✅ 重启计算机
⚙️ 自定义Linux发行版
# 安装指定发行版
wsl --install -d Ubuntu-22.04
# 查看可用发行版
wsl --list --online
? 安装WSL
方式1: 使用wsl –install(推荐)✨
适用场景: Windows 10 (Build 19044+) 或 Windows 11
步骤
-
打开PowerShell(管理员)
- 右键点击开始菜单
- 选择 “Windows PowerShell (管理员)”
- 或按
Win + X → “Windows PowerShell (管理员)”
-
执行安装命令
-
重启计算机
-
首次启动配置
✅ 成功标志: 可以在Ubuntu终端中运行Linux命令
方式2: 手动安装
适用场景: 更细粒度控制,或WSL 1
WSL 1 2版本对比
WSL 2 采用了轻量级虚拟化技术和完整的 Linux 内核,在系统调用兼容性和文件 I/O 性能上全面超越 WSL 1。如果您需要运行 Docker 或进行跨系统文件开发,WSL 2 是最佳选择;若需频繁在 Windows 磁盘跨文件读写,WSL 1 更具优势。
以下是两者的核心差异对比:
| 特性 |
WSL 1 |
WSL 2 |
| 底层架构 |
翻译层(将 Linux 系统调用转为 Windows API) |
轻量级虚拟机(带实际的 Linux 内核) |
| Linux 内核 |
无真实内核 |
包含官方定制的真实 Linux 内核 |
| 系统调用兼容 |
部分兼容(部分复杂工具如 Docker 无法运行) |
100% 兼容(支持所有原生 Linux 应用和 Docker) |
| 特性 |
WSL 1 |
WSL 2 |
| Linux 文件读写 (I/O) |
较慢 |
极快(存储在专属虚拟磁盘中) |
| Windows 文件跨越访问 |
极快(完美访问本地 C:、D: 盘) |
较慢(跨网络/虚拟化协议挂载) |
| 磁盘空间占用 |
占用低,与 Windows 文件系统共享 |
动态增长的虚拟磁盘 (.vhdx),容易占用大量空间 |
| 内存占用 |
随进程释放,占用极低 |
较大,默认会占用部分物理内存作为缓存 |
| 特性 |
WSL 1 |
WSL 2 |
| 本地网络集成 |
共享主机 IP(类似本机应用) |
位于独立的虚拟网络中(需配置端口转发) |
| GPU/硬件支持 |
较差 |
优秀(原生支持 CUDA、GPU 硬件加速) |
启用WSL功能
# 启用WSL
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# 启用虚拟机平台
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# 设置WSL 2为默认
wsl --set-default-version 2
# 重启
shutdown /r /t 0
方式3: 使用Docker Desktop
适用场景: 已使用Docker Desktop,需要WSL 2
启用WSL 2
-
下载Docker Desktop
-
启用WSL 2集成
- 打开Docker Desktop
- Settings → General → 勾选 “Use the WSL 2 based engine”
- Settings → Resources → WSL Integration → 勾选 “Enable integration with my default WSL distro”
✅ 成功标志: Docker Desktop中可以看到WSL发行版
验证WSL安装
# 查看WSL状态
wsl --status
# 查看已安装的发行版
wsl --list --verbose
✅ 成功输出:
⚙️ WSL配置优化
内存配置
WSL2默认使用50%的物理内存,可以根据需要调整
# 创建.wslconfig文件(在用户目录下)
notepad $env:USERPROFILE\.wslconfig
添加以下内容:
[wsl2]
memory=16GB # 限制内存为16GB
processors=4 # 限制使用4个CPU核心
swap=2GB # 限制交换空间为2GB
swapFile=D:\\wsl-swap.vhdx # 自定义交换文件位置
保存并重启WSL:
性能优化
1. 禁用WSL时间同步
WSL 2默认与Windows同步时间,可以禁用以提高性能:
[wsl2]
memory=16GB
processors=4
swap=2GB
# 禁用时间同步
systemd=false
2. 优化文件系统性能
WSL 2的文件系统性能可能不如原生Linux,优化建议:
- 尽量避免频繁访问Windows文件(WSL 2会通过9P协议访问,速度慢)
- 将项目文件放在WSL文件系统(
/home/username/)
- 使用WSL 1(如果需要频繁访问Windows文件)
3. 启用systemd支持(WSL 0.67.0+)
WSL 2 (版本0.67.0+) 支持systemd,可以更好地运行服务:
[wsl2]
memory=16GB
processors=4
swap=2GB
# 启用systemd支持
systemd=true
? 在WSL中安装OpenClaw
进入WSL
# 进入默认WSL发行版
wsl
# 或进入指定发行版
wsl -d Ubuntu-22.04
✅ 成功标志: 终端提示符变为Linux格式(如 username@computername:~$)
安装Node.js
# 更新包管理器
sudo apt update
# 安装 Node.js 24(官方要求最低版本,推荐使用)
curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash -
sudo apt install -y nodejs
# 验证安装
node --version
npm --version
✅ 成功输出:
安装OpenClaw
# 安装OpenClaw
npm install -g openclaw@latest
# 验证安装
openclaw --version
✅ 成功输出: OpenClaw CLI v2026.6.6+
⚙️ 下一步:配置API与消息平台
配置API
OpenClaw 需要配置大模型 API 才能运行。Tokens: ? API配置教程
配置飞书(一键安装,官方推荐)✨
最新版OpenClaw支持飞书官方一键安装脚本,无需手动创建应用和配置权限,扫码即可完成对接:
# 执行飞书官方一键安装脚本
npx -y https://sf3-cn.feishucdn.com/obj/open-platform-opendoc/8ab6e7a04c17db1becfcbda8ca35f091_1rCCFRWlRV.tgz install
执行过程中会弹出二维码,用飞书客户端扫码即可一键创建飞书机器人,自动完成所有配置。
配置API Key
按照提示操作:
- 选择API提供商
- 粘贴API Key
- 选择默认模型
- 完成配置
? WSL网络配置
localhost访问
WSL 2的网络是独立的,需要特殊配置才能从Windows访问
方式1: 使用localhost(WSL 2.0.9+)
WSL 2.0.9+版本支持localhost自动转发:
# 在WSL中启动Gateway
openclaw gateway start
然后在Windows浏览器访问: http://localhost:18789
✅ 优势: 无需额外配置
方式2: 使用WSL IP地址
适用于旧版本WSL:
# 在WSL中查询IP地址
ip addr show eth0
记录IP地址(如 172.20.10.5),然后在Windows浏览器访问: http://172.20.10.5:18789
防火墙配置
Windows防火墙
# 允许WSL访问(在Windows PowerShell中运行)
New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow
WSL防火墙(可选)
# 安装并配置UFW
sudo apt install -y ufw
sudo ufw allow 18789/tcp
sudo ufw enable
端口转发(高级)
使Windows外网可以访问WSL中的服务
# 创建端口转发规则(在Windows PowerShell中运行)
# 格式: netsh interface portproxy add v4tov4 listenport=[Windows端口] listenaddress=0.0.0.0 connectport=[WSL端口] connectaddress=[WSL IP]
netsh interface portproxy add v4tov4 listenport=18789 listenaddress=0.0.0.0 connectport=18789 connectaddress=172.20.10.5
# 查看规则
netsh interface portproxy show all
然后从外网访问: http://[Windows公网IP]:18789
? Windows集成
Windows文件访问
WSL可以访问Windows文件系统,反之亦然
在WSL中访问Windows文件
Windows的C盘挂载在 /mnt/c/:
# 访问Windows的C盘
cd /mnt/c/Users/YourUsername/Documents
# 访问Windows的D盘
cd /mnt/d/Projects
在Windows中访问WSL文件
WSL文件系统通过 \\wsl$\ 访问:
# 在Windows资源管理器中访问
\\wsl$\Ubuntu-22.04\home\username\.openclaw
# 在命令行中访问
cd \\wsl$\Ubuntu-22.04\home\username\.openclaw
剪贴板共享
WSL和Windows共享剪贴板:
# 安装xclip(如果需要)
sudo apt install -y xclip
# 复制到剪贴板
echo "Hello from WSL" | xclip -selection clipboard
然后在Windows中粘贴即可
任务栏集成
添加WSL快捷方式
# 创建快捷方式到桌面
$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$env:USERPROFILE\Desktop\WSL Ubuntu.lnk")
$Shortcut.TargetPath = "wsl.exe"
$Shortcut.Arguments = "-d Ubuntu-22.04"
$Shortcut.Save()
Windows服务启动(高级)
配置Windows服务,开机自动启动WSL中的OpenClaw
使用Task Scheduler
-
打开Task Scheduler
- 按
Win + R → 输入 taskschd.msc
-
创建任务
- 右侧 “Create Task”
- General:
- Name:
OpenClaw WSL
- Run whether user is logged on or not
- Triggers → New:
- Begin the task: At startup
- Actions → New:
- Program/script:
C:\Windows\System32\wsl.exe
- Add arguments:
-d Ubuntu-22.04 -u root -- openclaw gateway start
-
保存任务
✅ 成功标志: Windows重启后自动启动OpenClaw
⚠️ 常见问题
Q: WSL安装失败?
A: 按照以下步骤排查:
-
检查Windows版本
确保是Windows 10 (Build 19044+) 或 Windows 11
-
启用虚拟化
- 进入BIOS/UEFI
- 启用Intel VT-x或AMD-V
-
启用WSL功能
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
-
重启计算机
Q: 如何切换WSL版本?
A:
# 查看当前WSL版本
wsl --list --verbose
# 设置默认WSL版本
wsl --set-default-version 2
# 设置特定发行版的WSL版本
wsl --set-version Ubuntu-22.04 2
# 重启WSL
wsl --shutdown
Q: WSL网络无法连接?
A: 常见原因和解决方案:
| 原因 |
解决方案 |
| 防火墙阻止 |
允许WSL通过Windows防火墙 |
| WSL未启动 |
运行 wsl 启动WSL |
| IP地址变化 |
重新查询WSL IP地址 |
| 代理设置 |
配置 http_proxy 和 https_proxy |
Q: 如何卸载WSL?
A:
# 卸载指定发行版
wsl --unregister Ubuntu-22.04
# 禁用WSL功能
dism.exe /online /disable-feature /featurename:Microsoft-Windows-Subsystem-Linux /norestart
dism.exe /online /disable-feature /featurename:VirtualMachinePlatform /norestart
# 重启
shutdown /r /t 0
⚠️ 警告: 此操作会删除所有WSL数据和Linux发行版
Q: WSL内存占用过高?
A: 优化.wslconfig:
[wsl2]
memory=8GB # 限制内存
processors=4 # 限制CPU
swap=2GB # 限制交换空间
pageReporting=false # 禁用页面报告
然后重启WSL:wsl --shutdown
WSL 高级配置
.wslconfig 文件位于Windows用户目录:
C:\Users\[用户名]\.wslconfig
[wsl2]
# 内存配置
memory=16GB # 限制内存为16GB
swap=2GB # 限制交换空间为2GB
swapFile=D:\\wsl-swap.vhdx # 自定义交换文件位置
# CPU配置
processors=4 # 限制使用4个CPU核心
# 内核配置
kernelCommandLine= # 传递给Linux内核的命令行参数
# 性能优化
pageReporting=false # 禁用页面报告
nestedVirtualization=true # 启用嵌套虚拟化
vmIdleTimeout=60 # WSL虚拟机空闲超时(分钟)
# systemd支持
systemd=true # 启用systemd支持
# 调试配置
debugConsole=true # 在启动时显示WSL调试控制台
# 自动挂载配置
automount=true # 启用自动挂载
automountRoot=/ # 自动挂载根目录
automountOptions="metadata,uid=1000,gid=1000,umask=022,fmask=111" # 挂载选项
# 网络配置
networkingMode=mirrored # 网络模式(mirrored/nat)
firewall=true # 启用防火墙
dnsTunneling=true # 启用DNS隧道
autoProxy=true # 启用自动代理
[experimental]
# 实验性功能
autoMemoryReclaim=gradual # 自动内存回收(slow/gradual)
sparseVhd=true # 启用稀疏VHD
[user]
# 用户自定义配置
defaultShell=/bin/bash # 默认shell
| 配置项 |
说明 |
推荐值 |
memory |
限制WSL使用的内存 |
8GB-32GB |
swap |
限制交换空间 |
2GB-8GB |
swapFile |
自定义交换文件位置 |
D:\\wsl-swap.vhdx |
| 配置项 |
说明 |
推荐值 |
processors |
限制WSL使用的CPU核心数 |
物理核心数-2 |
| 配置项 |
说明 |
推荐值 |
networkingMode |
网络模式 |
mirrored(WSL 2.0.0+) |
firewall |
启用WSL防火墙 |
true |
dnsTunneling |
启用DNS隧道 |
true |
autoProxy |
启用自动代理 |
true |
编辑 .wslconfig 文件后,重启WSL:
# 重启WSL
wsl --shutdown
# 重新启动
wsl
# 查看可用的发行版
wsl --list --online
# 安装多个发行版
wsl --install -d Ubuntu-22.04
wsl --install -d Debian-12
wsl --install -d OracleLinux-8
# 查看已安装的发行版
wsl --list --verbose
# 设置默认发行版
wsl --set-default Ubuntu-22.04
# 设置特定发行版的WSL版本
wsl --set-version Debian-12 1
wsl --set-version Ubuntu-22.04 2
# 启动默认发行版
wsl
# 启动特定发行版
wsl -d Ubuntu-22.04
wsl -d Debian-12
# 以特定用户身份启动
wsl -d Ubuntu-22.04 -u root
# 终止所有WSL实例
wsl --shutdown
# 终止特定发行版
wsl --terminate Ubuntu-22.04
# 导出发行版为tar文件
wsl --export Ubuntu-22.04 ubuntu-backup.tar
# 导入tar文件为新发行版
wsl --import Ubuntu-Copy D:\WSL\Ubuntu-Copy ubuntu-backup.tar
# 指定版本号导入
wsl --import Ubuntu-Test D:\WSL\Ubuntu-Test ubuntu-backup.tar --version 2
# 卸载发行版(保留数据)
wsl --unregister Ubuntu-22.04
# 或删除整个发行版(删除数据)
wsl --unregister Ubuntu-22.04
rm "C:\Users\[用户名]\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04onWindows_..."
WSLg(WSL GUI)自Windows 11和Windows 10 (Build 19044+)开始支持。
✅ 支持版本: Windows 11 或 Windows 10 (Build 19044+)
在WSL中安装图形应用:
# 更新包管理器
sudo apt update
# 安装GTK应用
sudo apt install -y gedit
# 安装Qt应用
sudo apt install -y kate
# 安装浏览器
sudo apt install -y firefox
# 运行gedit文本编辑器
gedit
# 运行Kate编辑器
kate
# 运行Firefox浏览器
firefox
✅ 成功标志: GUI应用在Windows桌面上显示
WSLg自动配置显示环境,但也可以手动配置:
# 查看显示环境
echo $DISPLAY
echo $WAYLAND_DISPLAY
# 禁用硬件加速
export LIBGL_ALWAYS_SOFTWARE=1
编辑 /etc/wsl.conf:
[boot]
systemd=true
[user]
defaultShell=/bin/bash
[interop]
appendWindowsPath=true
displayWindowsApps=true
.wslconfig 中启用嵌套虚拟化:
[wsl2]
nestedVirtualization=true
# 在WSL中检查GPU
lspci | grep -i vga
# 检查CUDA支持
nvidia-smi
# 添加CUDA仓库
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda-repo-wsl-ubuntu-12-2-local_12.2.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-12-2-local_12.2.0-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-12-2-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda
# 添加CUDA到PATH
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
# 验证CUDA安装
nvcc --version
# 测试CUDA设备
python3 -c "import torch; print(torch.cuda.is_available())"
# 安装PyTorch(CUDA版本)
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
# 测试GPU加速
python3 -c "import torch; print('CUDA available:', torch.cuda.is_available())"
# 安装TensorFlow(GPU版本)
pip3 install tensorflow[and-cuda]
# 测试GPU加速
python3 -c "import tensorflow as tf; print('GPU available:', tf.config.list_physical_devices('GPU'))"
WSL 0.67.0+版本支持systemd。
确保版本 ≥ 0.67.0
编辑 .wslconfig 文件:
保存后重启WSL:
# 在WSL中检查systemd
systemctl --user
# 查看systemd服务状态
systemctl --user status
# 列出所有用户服务
systemctl --user list-units
创建服务文件 /etc/systemd/system/openclaw.service:
[Unit]
Description=OpenClaw Gateway
After=network.target
[Service]
Type=simple
User=ubuntu
ExecStart=/home/ubuntu/.local/bin/openclaw gateway start
Restart=on-failure
RestartSec=10
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
# 重载systemd配置
sudo systemctl daemon-reload
# 启用服务(开机自启)
sudo systemctl enable openclaw
# 启动服务
sudo systemctl start openclaw
# 查看服务状态
sudo systemctl status openclaw
# 查看服务日志
sudo journalctl -u openclaw -f
[wsl2]
systemd=false # 禁用systemd时间同步
[experimental]
autoMemoryReclaim=gradual # gradual或slow
[experimental]
sparseVhd=true # 启用稀疏虚拟硬盘
[automount]
automountOptions="metadata,uid=1000,gid=1000,umask=022,fmask=111"
5. 使用WSL 1(如果需要频繁访问Windows文件)
# 设置发行版使用WSL 1
wsl --set-version Ubuntu-22.04 1
⚠️ 注意: WSL 1不支持Docker
# 禁用snapd(如果不使用snap)
sudo systemctl disable snapd
# 禁用计时器服务
sudo systemctl disable apt-daily.timer
sudo systemctl disable apt-daily-upgrade.timer
- WSL 1: 频繁访问Windows文件,需要快速文件IO
- WSL 2: 需要Docker支持,更好的系统调用兼容性
# 设置Ubuntu使用WSL 2(推荐)
wsl --set-version Ubuntu-22.04 2
# 设置Debian使用WSL 1(频繁访问Windows文件)
wsl --set-version Debian-12 1
# 查看详细信息
wsl --list --verbose
镜像网络模式使WSL网络与Windows网络镜像一致:
[wsl2]
networkingMode=mirrored
优势:
- ✅ WSL IP地址固定
- ✅ 可以使用IPv6
- ✅ localhost自动转发
- ✅ 防火墙规则自动同步
启用DNS隧道,使用Windows DNS解析:
启用自动代理,使用Windows代理设置:
编辑 /etc/wsl.conf:
[network]
generateResolvConf = false # 禁用自动生成resolv.conf
[boot]
systemd = true
手动配置 /etc/resolv.conf:
nameserver 8.8.8.8
nameserver 8.8.4.4
A: 按照以下步骤排查:
要求:
- Windows 10: Build 19044 或更高
- Windows 11: 任何版本
❌ 如果版本过低,更新Windows或升级到Windows 11
进入BIOS/UEFI:
- 重启电脑
- 进入BIOS/UEFI(通常按F2、Delete或F12)
- 找到虚拟化选项(Intel VT-x或AMD-V)
- 启用虚拟化
验证虚拟化已启用:
✅ 成功输出: Hyper-V Requirements: Virtualization Enabled In Firmware: Yes
# 启用WSL
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# 启用虚拟机平台
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# 重启
shutdown /r /t 0
✅ 成功标志: 可以使用 wsl 命令
A: 按照以下步骤启用:
# 使用PowerShell
Get-ComputerInfo -Property "HyperV*"
检查输出:
HyperVisor Present : False
HyperV Requirement VMM Monitor Present: Yes
HyperV Requirement Virtualization Enabled: Yes
如果 “Virtualization Enabled” 为 No,需要在BIOS中启用
BIOS/UEFI设置:
| BIOS类型 |
虚拟化选项位置 |
| Award BIOS |
CPU Configuration → Intel Virtualization Technology |
| AMI BIOS |
Advanced → CPU Configuration → Intel VT-x |
| Phoenix BIOS |
System Configuration → CPU Features → Intel Virtualization Technology |
| UEFI |
Advanced Settings → CPU Configuration → Intel Virtualization Technology |
A: 常见原因和解决方案:
| 原因 |
解决方案 |
| 网络连接问题 |
检查网络,使用代理 |
| 磁盘空间不足 |
清理C盘,至少40GB可用空间 |
| Windows更新冲突 |
等待Windows更新完成 |
| 杀毒软件干扰 |
暂时禁用杀毒软件 |
# 卸载WSL
dism.exe /online /disable-feature /featurename:Microsoft-Windows-Subsystem-Linux /norestart
dism.exe /online /disable-feature /featurename:VirtualMachinePlatform /norestart
# 重启
shutdown /r /t 0
# 重启后重新安装
wsl --install
A: 按照以下步骤排查:
# 在WSL中检查网络
ip addr show eth0
# 测试DNS连接
ping 8.8.8.8 -c 4
# 测试HTTP连接
curl -I https://www.google.com
# 重启WSL(重置网络)
wsl --shutdown
# 重新启动
wsl
编辑 /etc/resolv.conf:
# 编辑DNS配置
sudo nano /etc/resolv.conf
添加以下内容:
nameserver 8.8.8.8
nameserver 8.8.4.4
# 在 ~/.bashrc 中添加
export http_proxy="http://127.0.0.1:7890"
export https_proxy="http://127.0.0.1:7890"
export no_proxy="localhost,127.0.0.1"
# 重新加载配置
source ~/.bashrc
A: 解决方案:
WSL 2.0.9+版本支持localhost自动转发:
然后直接访问: http://localhost:18789
# 在WSL中查询IP地址
ip addr show eth0 | grep "inet " | awk '{print $2}' | cut -d/ -f1
然后在Windows浏览器访问: http://[WSL IP]:18789
# 查看WSL IP地址(在WSL中)
ip addr show eth0
# 在Windows PowerShell中配置端口转发
# 格式: listenport=[Windows端口] connectaddress=[WSL IP] connectport=[WSL端口]
netsh interface portproxy add v4tov4 listenport=18789 listenaddress=0.0.0.0 connectport=18789 connectaddress=172.20.10.5
# 查看规则
netsh interface portproxy show all
A: 解决方案:
方式1: 使用localhost(WSL 2.0.9+)
升级到WSL 2.0.9+,自动转发localhost,无需关心IP地址
即使IP地址变化,端口转发会自动更新(需要重启WSL时重新配置)
配置Windows hosts文件,将域名指向WSL IP地址:
# 编辑hosts文件(需要管理员权限)
notepad C:\Windows\System32\drivers\etc\hosts
添加:
A: 优化内存配置:
编辑 C:\Users\[用户名]\.wslconfig:
[wsl2]
memory=8GB # 限制内存
processors=4 # 限制CPU核心
swap=2GB # 限制交换空间
pageReporting=false # 禁用页面报告
保存后重启WSL:
# 在WSL中查看内存使用
free -h
# 查看进程内存使用
ps aux --sort=-%mem | head
A: 清理WSL磁盘空间:
# 查看磁盘使用
df -h
# 查看目录大小
du -sh /home/* | sort -hr
# 清理apt缓存
sudo apt clean
sudo apt autoremove
# 清理npm缓存
npm cache clean --force
压缩WSL虚拟磁盘(Windows PowerShell)
# 压缩虚拟磁盘文件
optimize-vhd -Path "C:\Users\[用户名]\AppData\Local\Docker\wsl\data\ext4.vhdx" -Mode Full
A: 优化文件系统性能:
❌ 不推荐: 在WSL中频繁访问 /mnt/c/ ✅ 推荐: 将项目文件放在WSL文件系统 /home/username/
使用WSL 1(如果需要频繁访问Windows文件)
WSL 1使用Windows文件系统,访问Windows文件更快:
# 设置特定发行版使用WSL 1
wsl --set-version Ubuntu-22.04 1
⚠️ 注意: WSL 1不支持Docker
A: 常见权限问题和解决方案:
# 错误: Permission denied
sudo npm install -g openclaw@latest
# 修复home目录权限
sudo chown -R $USER:$USER ~/
# 修复特定目录权限
sudo chown -R $USER:$USER ~/.openclaw
# 添加当前用户到sudo组
sudo usermod -aG sudo $USER
# 重新登录
exit
wsl
A: 检查WSL服务和权限:
# 查看WSL服务状态
Get-Service LxssManager
# 如果服务未运行,启动服务
Start-Service LxssManager
\\wsl$\Ubuntu-22.04\home\username\.openclaw
⚠️ 注意: 使用实际发行版名称(如Ubuntu-22.04)
A: WSL 0.67.0+支持systemd:
确保版本 ≥ 0.67.0
编辑 .wslconfig 文件:
[wsl2]
memory=16GB
systemd=true #w启用systemd支持
保存后重启WSL:
# 在WSL中检查systemd
systemctl --user
# 测试systemd服务
systemctl --user status
✅ 成功输出: systemd可以正常使用
A:
# 查看当前WSL版本
wsl --list --verbose
# 设置默认WSL版本
wsl --set-default-version 2
# 设置特定发行版的WSL版本
wsl --set-version Ubuntu-22.04 2
# 重启WSL
wsl --shutdown
A:
| 特性 |
WSL 1 |
WSL 2 |
| 文件系统 |
Windows文件系统 |
真实Linux内核 |
| 性能 |
访问Windows文件快 |
访问Windows文件慢 |
| Docker |
❌ 不支持 |
✅ 支持 |
| 系统调用兼容性 |
部分兼容 |
完全兼容 |
| 内存占用 |
低 |
高(默认50%) |
| 网络性能 |
共享Windows网络 |
独立虚拟网络 |
推荐: WSL 2(性能更好,功能更全)
A:
# 查看已安装的发行版
wsl --list --verbose
# 卸载指定发行版
wsl --unregister Ubuntu-22.04
# 重新安装
wsl --install -d Ubuntu-22.04
⚠️ 警告: 此操作会删除发行版中的所有数据
A:
# 查看已安装的发行版
wsl --list
# 逐个卸载
wsl --unregister Ubuntu-22.04
wsl --unregister Ubuntu-20.04
# ...
# 禁用WSL
dism.exe /online /disable-feature /featurename:Microsoft-Windows-Subsystem-Linux /norestart
# 禁用虚拟机平台
dism.exe /online /disable-feature /featurename:VirtualMachinePlatform /norestart
# 重启
shutdown /r /t 0
⚠️ 警告: 此操作会删除所有WSL数据和配置
A:
# 重置指定发行版(保留数据)
wsl --terminate Ubuntu-22.04
# 或完全重置(删除数据)
wsl --unregister Ubuntu-22.04
wsl --install -d Ubuntu-22.04
A:
# 打开事件查看器
eventvwr
# 导航到: Windows Logs → Application
# 筛选: LxssManager (WSL)
# 查看WSL详细状态
wsl --status --verbose
# 导出诊断信息
wsl --version > wsl-info.txt
wsl --list --verbose >> wsl-info.txt
wsl --status >> wsl-info.txt
A: