Windows子系统WSL安装与使用完全指南:在Windows上运行Linux的实用教程(2026版)
一、WSL简介与版本对比
WSL(Windows Subsystem for Linux)是微软开发的兼容层,允许在Windows上原生运行Linux二进制文件。目前有两个主要版本:WSL 1和WSL 2。
1.1 WSL 1 vs WSL 2 对比
| 特性 | WSL 1 | WSL 2 |
|---|---|---|
| 架构 | 翻译层 | 轻量级虚拟机 |
| Linux内核 | 兼容层模拟 | 完整Linux内核 |
| 文件系统性能 | Windows文件快 | Linux文件快 |
| 网络性能 | 较好 | 需端口转发 |
| 系统调用兼容性 | 部分支持 | 完全支持 |
| 启动速度 | 即时 | 约1-2秒 |
| 资源占用 | 较低 | 稍高 |
| Docker支持 | 有限 | 完整支持 |
1.2 系统要求
WSL 1:
- Windows 10 版本1607及以上(64位)
- 或Windows 11
WSL 2:
- Windows 10 版本1903及以上(64位),推荐2004+
- 或Windows 11
- 需要启用虚拟机平台功能
- 建议4GB以上内存
1.3 适用场景
- 开发环境:在Windows上使用Linux开发工具链
- Web开发:运行Node.js、Python、Ruby等
- 运维学习:学习Linux命令和Shell脚本
- Docker容器:在Windows上运行Docker
- 跨平台测试:测试Linux下的程序兼容性
二、WSL安装与配置
2.1 一键安装WSL(Windows 10 2004+ / Windows 11)
最简单的方式是使用wsl命令一键安装:
# 以管理员身份运行PowerShell
wsl --install
这条命令会自动完成:
- 启用WSL功能
- 启用虚拟机平台
- 下载并安装Linux内核
- 安装默认的Ubuntu发行版
- 设置WSL 2为默认版本
安装完成后重启电脑即可使用。
2.2 手动安装WSL 2
如果需要更精细的控制:
步骤1:启用WSL功能
# 以管理员身份运行
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
步骤2:启用虚拟机平台
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
步骤3:重启电脑
步骤4:下载并安装Linux内核更新包
从微软官网下载最新的WSL 2 Linux内核更新包并安装。
步骤5:设置WSL 2为默认版本
wsl --set-default-version 2
步骤6:安装Linux发行版
# 查看可用发行版
wsl --list --online
# 安装指定发行版
wsl --install -d Ubuntu-24.04
2.3 安装多个Linux发行版
# 查看已安装的发行版
wsl --list --verbose
# 安装多个发行版
wsl --install -d Ubuntu-24.04
wsl --install -d Debian
wsl --install -d openSUSE-Tumbleweed
# 设置默认发行版
wsl --set-default Ubuntu-24.04
# 启动指定发行版
wsl -d Debian
三、WSL基础使用
3.1 首次启动与用户配置
首次启动Linux发行版时,需要设置用户名和密码:
# 首次启动会自动提示
Enter new UNIX username: yourname
New password: ********
Retype new password: ********
3.2 常用命令
# 更新软件包
sudo apt update && sudo apt upgrade -y
# 安装常用工具
sudo apt install -y git curl wget vim htop build-essential
# 查看WSL版本
wsl --version
# 查看运行状态
wsl --status
3.3 文件互访
从Windows访问Linux文件:
# 在文件资源管理器地址栏输入
\\wsl$\Ubuntu-24.04\home\yourname\
从Linux访问Windows文件:
# Windows C盘挂载在/mnt/c
cd /mnt/c/Users/YourName/Documents
# 列出Windows文件
ls -la /mnt/c/
3.4 在Windows终端中使用WSL
Windows Terminal完美支持WSL:
- 安装Windows Terminal(从Microsoft Store)
- 打开Terminal,点击下拉箭头
- 选择已安装的Linux发行版
- 可同时打开多个标签页,混合使用PowerShell和Linux
四、WSL开发环境搭建
4.1 Web开发环境
# 安装Node.js(使用nvm管理版本)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
nvm install --lts
nvm use --lts
# 安装Python开发环境
sudo apt install -y python3-pip python3-venv
python3 -m venv myproject-env
source myproject-env/bin/activate
# 安装Ruby(使用rbenv)
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc
rbenv install 3.3.0
rbenv global 3.3.0
4.2 Docker集成
WSL 2是Windows上运行Docker的最佳方式:
- 安装Docker Desktop for Windows
- 在设置中启用"Use the WSL 2 based engine"
- 在"Resources → WSL Integration"中选择要集成的发行版
- 在WSL中即可使用docker命令
# 验证Docker安装
docker --version
docker run hello-world
4.3 VS Code集成
VS Code对WSL有原生支持:
- 安装VS Code和"WSL"扩展
- 在WSL终端中打开项目:
cd ~/myproject
code .
- VS Code会在Windows上运行,但编辑器后端在WSL中
- 享受Windows的GUI和Linux的开发环境
五、WSL高级配置
5.1 资源限制配置
创建或编辑 %UserProfile%\.wslconfig 文件:
[wsl2]
memory=4GB # 限制WSL最大内存
processors=2 # 限制CPU核心数
swap=2GB # 交换空间大小
localhostForwarding=true # localhost端口转发
[experimental]
autoMemoryReclaim=gradual # 自动回收内存(Win11)
修改后需要重启WSL:
wsl --shutdown
5.2 网络配置
查看WSL IP地址:
ip addr show eth0
端口转发(从Windows访问WSL服务):
# PowerShell中设置端口转发
netsh interface portproxy add v4tov4 listenport=8080 listenaddress=0.0.0.0 connectport=80 connectaddress=$(wsl hostname -I)
# 查看端口转发规则
netsh interface portproxy show all
# 删除规则
netsh interface portproxy delete v4tov4 listenport=8080
5.3 图形界面支持(WSLg)
Windows 11和Windows 10 21H2+支持WSLg,可以直接运行Linux图形应用:
# 安装图形应用
sudo apt install -y gedit nautilus firefox
# 直接运行
gedit &
firefox &
WSLg使用Wayland+RDP方案,无需额外配置X Server。
5.4 自动启动配置
创建启动脚本 ~/.wsl_startup.sh:
#!/bin/bash
# 启动SSH服务
sudo service ssh start
# 启动其他服务
# sudo service docker start
在 ~/.bashrc 中添加:
# 自动启动服务(仅在交互式shell中)
if [[ "$SHLVL" -eq 1 ]] && ! pgrep -x sshd > /dev/null; then
~/.wsl_startup.sh &
fi
六、WSL常见故障排查
6.1 WSL无法启动
错误信息: "WSL 2 installation is incomplete"
解决方法:
# 更新WSL
wsl --update
# 如果仍然失败,手动下载内核更新包
# 从 https://aka.ms/wsl2kernel 下载并安装
6.2 网络不通
症状: WSL内无法访问互联网
排查步骤:
# 在PowerShell中重置网络
wsl --shutdown
netsh winsock reset
netsh int ip reset all
netsh winhttp reset proxy
ipconfig /flushdns
# 重启电脑
6.3 磁盘空间不足
WSL虚拟磁盘会自动增长但不会自动缩小:
# 查看虚拟磁盘大小
# 默认位置:C:\Users\YourName\AppData\Local\Packages\CanonicalGroupLimited...\LocalState\ext4.vhdx
# 压缩虚拟磁盘
wsl --shutdown
diskpart
# 在diskpart中
select vdisk file="C:\path\to\ext4.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk
exit
6.4 文件性能问题
问题: 跨文件系统访问慢
解决方案:
- 将项目文件放在Linux文件系统中(
~/projects/)而非Windows文件系统(/mnt/c/) - 使用WSL 2的9P协议优化:在
.wslconfig中添加:
[wsl2]
networkingMode=mirrored
6.5 PE环境下的WSL修复
当WSL完全无法使用时,可以在PE环境中进行修复:
- 使用晨枫U盘启动盘进入PE系统
- 备份WSL数据:
# 复制虚拟磁盘文件
xcopy "C:\Users\YourName\AppData\Local\Packages\CanonicalGroupLimited*\LocalState\ext4.vhdx" "D:\WSL-Backup\" /E /H
- 重置WSL:
# 在PE中无法直接运行wsl命令,但可以删除配置
# 重启到Windows后执行
wsl --unregister Ubuntu-24.04
wsl --install -d Ubuntu-24.04
七、WSL最佳实践
7.1 开发工作流建议
- 将代码存储在Linux文件系统中以获得最佳性能
- 使用VS Code Remote - WSL扩展进行开发
- 利用Windows Terminal管理多个终端会话
- 使用Git for Windows或Linux版Git(推荐后者)
7.2 备份策略
# 导出WSL发行版
wsl --export Ubuntu-24.04 D:\backup\ubuntu-backup.tar
# 导入WSL发行版
wsl --import Ubuntu-Custom D:\WSL\Ubuntu-Custom D:\backup\ubuntu-backup.tar
7.3 性能优化
- 关闭不需要的WSL发行版以释放资源
- 合理配置
.wslconfig中的内存限制 - 使用Windows 11的自动内存回收功能
- 避免在
/mnt/c/下进行大量文件操作
八、总结
WSL为Windows用户提供了一个无缝的Linux开发环境,让你无需离开Windows即可享受Linux的强大功能。通过合理配置和使用,WSL可以大幅提升开发效率,特别是在Web开发、容器化部署和运维自动化等场景下。当遇到问题时,按照本文的排查步骤逐步诊断,大部分问题都能得到解决。如果需要更深度的系统维护,晨枫PE工具箱可以作为可靠的后备方案。
