什么是WSL2
WSL2(Windows Subsystem for Linux 2)是微软推出的第二代 Linux 子系统,于 2019 年正式发布并内置于 Windows 10 2004 版本及 Windows 11 中。
它允许开发者在 Windows 操作系统上,无需安装虚拟机或双启动,直接运行完整的 Linux 环境。
技术架构
与 WSL1 不同,WSL2 采用了全新的架构------通过一个轻量级的 Hyper-V 虚拟机运行真实的 Linux 内核,而不是通过系统调用翻译层模拟。
| WSL1 架构 | WSL2 架构 |
| Linux 应用程序 ↓ 系统调用翻译层(Pico Process) ↓ Windows NT 内核 | Linux 应用程序 ↓ 真实 Linux 内核 ↓ 轻量级 Hyper-V 虚拟机 ↓ Windows NT 内核(Hyper-V 层) |
wsl1 / wsl2 / 虚拟机横向对比
| 对比维度 | WSL1 | WSL2 | 传统虚拟机 |
| 架构 | 系统调用翻译层 | 轻量级 Hyper-V VM | 完整虚拟机 |
| Linux 内核 | 兼容层模拟 | 真实 Linux 内核 | 真实 Linux 内核 |
| 启动速度 | 极快(<1秒) | 快(<5秒) | 慢(30秒+) |
| 文件系统性能 | Windows文件快 | Linux文件极快 | 较慢(共享目录) |
| 内存占用 | 极低 | 低(动态分配) | 高(固定分配) |
| 系统调用兼容性 | 部分兼容 | 完全兼容 | 完全兼容 |
| Docker 支持 | 不支持 | 原生支持 | 需额外配置 |
| GPU/硬件访问 | 有限 | 支持 GPU 直通 | 有限 |
| 网络集成 | 共享 Windows 网络 | 虚拟网络(NAT) | 独立网络 |
如何选择?
- 日常开发、Docker 使用 → 推荐 WSL2(性能最佳,集成最好)
- 遗留 Linux 软件(网络工具等) → 考虑 WSL1(网络行为更接近 Windows)
- 需要完全隔离环境、桌面图形操作 → 考虑传统虚拟机
wsl2 核心优势
性能极致:
-
Linux 原生文件系统(ext4)读写速度极快,I/O 性能媲美原生 Linux
-
内存动态分配,按需使用,最大化利用系统资源
-
启动速度通常在 1-5 秒内完成
完整Linux兼容性:
-
运行真实 Linux 内核,支持所有 Linux 系统调用
-
原生支持 Docker 容器运行时,无需额外虚拟化层
-
支持完整的 Linux 工具链:gcc、make、gdb、strace 等
-
兼容 ELF 二进制文件,可运行任何为 Linux 编译的程序
深度Windows集成:
-
可从 Windows 文件资源管理器直接访问 Linux 文件系统(\\wsl$\)
-
在 Linux 中可直接调用 Windows 可执行文件(如 explorer.exe、notepad.exe)
-
与 VS Code Remote - WSL 扩展无缝集成
-
支持 Windows Terminal,提供现代化的终端体验
-
Linux 程序可直接访问 Windows 剪贴板
开发体验友好:
-
开发服务器(Node.js、Python Flask 等)端口自动转发到 Windows
-
支持 systemd(需配置),可管理 Linux 服务
-
统一开发环境:前端、后端、DevOps 工具全部可用
安装WSL2
系统要求
| 项目 | 要求 |
| 操作系统 | Windows 10 版本 2004(内部版本 19041)或更高,推荐 Windows 11 |
| 处理器 | 64 位 CPU,支持 SLAT(二级地址转换) |
| 内存 | 最低 4GB,推荐 8GB+ |
| Hyper-V | 需在 BIOS/UEFI 中启用虚拟化技术(Intel VT-x / AMD-V) |
| 磁盘空间 | 至少 10GB 可用空间(推荐 SSD) |
开启虚拟化
使用WSL2的前提是需要CPU支持开启虚拟化,从任务管理器中可以查看是否开启虚拟化

Windows10/11在BIOS中通常是默认开启的,如果未开启,可按照以下步骤开启:
-
重启电脑并进入 BIOS/UEFI(通常按 F2、F10、Del 或 Esc 键,和电脑品牌型号有关)
-
找到 Virtualization Technology(Intel VT-x)或 SVM Mode(AMD)
-
将其设置为 Enabled(启用)
-
保存设置并重启
安装
启动WSL功能:
bash
# 启用 WSL
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# 启用虚拟机平台功能
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# 重启电脑
设置WSL2为默认版本:
bash
wsl --set-default-version 2
安装指定Linux(建议安装24.04):
bash
# 查看可用发行版
wsl --list --online
# 安装 Ubuntu 24.04
wsl --install -d Ubuntu-24.04
验证安装:
bash
# 查看已安装发行版及 WSL 版本
wsl --list --verbose
# 正常输出示例:
# NAME STATE VERSION
# Ubuntu-24.04 Running 2
# 查看 WSL 版本信息
wsl -l -v
# 带*号的是默认,修改默认
wsl --set-default Ubuntu-24.04
# 查看各发行版详细信息,其中BasePath代表发行版安装根目录(默认C盘,建议迁移到其他盘,具体步骤往下看)
Get-ChildItem HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss
将发行版迁移到其他磁盘:
bash
# 关闭wsl
wsl --shutdown
# 导出当前发行版
wsl --export Ubuntu-24.04 D:\Backup\ubuntu-24-backup.tar
# 注销原发行版(会清空数据,需谨慎)
wsl --unregister Ubuntu-24.04
# 导入到新路径(如 D 盘)
wsl --import Ubuntu-24.04 D:\WSL\Ubuntu-24.04 D:\Backup\ubuntu-24-backup.tar
WSL2全局配置


对应配置文件位置:C:\Users\{用户名}\.wslconfig
Ubuntu初始化配置
创建用户
首次进入 Ubuntu,系统会提示创建用户:
bash
Enter new UNIX username: myuser
New password: ********
Retype new password: ********
更新系统软件包(按需)
bash
sudo apt update && sudo apt upgrade -y
换用国内镜像源(按需)
bash
# 备份原始源配置
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 替换为阿里云镜像(Ubuntu 24.04)
sudo tee /etc/apt/sources.list << 'EOF'
deb https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
EOF
# 更新软件包列表
sudo apt update
配置Git(按需)
bash
# 设置 Git 用户信息
git config --global user.name "Your Name"
git config --global user.email "your@email.com"
# 设置默认分支名称
git config --global init.defaultBranch main
# 设置凭据缓存
git config --global credential.helper store
修改发行版wsl配置(按需)
bash
# /etc/wsl.conf(在 Linux 内编辑)
[boot]
# 启用 systemd(Ubuntu 22.04+ 默认支持)
systemd=true
[automount]
# 自动挂载 Windows 驱动器
enabled=true
# 挂载路径前缀
root=/mnt/
# 挂载选项(设置权限)
options="metadata,umask=22,fmask=11"
[network]
# 设置主机名
hostname=my-wsl
# 生成 /etc/hosts
generateHosts=true
# 生成 /etc/resolv.conf
generateResolvConf=true
[interop]
# 允许在 WSL 中启动 Windows 进程
enabled=true
# 将 Windows PATH 追加到 Linux PATH
appendWindowsPath=true
安装Docker Desktop
虽然WSL2支持手动安装管理Docker,但更建议Docker Desktop + WSL2,听官方的没错
安装前置条件
如果前面安装wsl2已经执行过,可以跳过~
bash
# 启用 WSL
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# 启用虚拟机平台功能
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# 设置 WSL2 为默认版本
wsl --set-default-version 2
安装
下载地址:https://www.docker.com/products/docker-desktop/
默认安装到C盘,安装完成会提示重启电脑
配置
设置开机自启等:

修改虚拟磁盘文件存放位置:

WSL 集成开关配置:
配置哪些 WSL 发行版可以直接使用 Docker CLI,并连接到 Docker Desktop 的 backend。
开启后,Docker Desktop会:
-
注入docker cli(/usr/bin/docker → Docker Desktop 提供的 client)
-
连接socket(/var/run/docker.sock → 指向 docker-desktop backend)
-
连接wsl backend
实际执行链路:
Ubuntu WSL
↓
docker CLI
↓
/var/run/docker.sock
↓
docker-desktop WSL distro
↓
containerd
↓
WSL2 Linux kernel

验证:

常用命令速查
| 命令 | 说明 |
| wsl --install | 安装 WSL 及默认 Ubuntu 发行版 |
| wsl --install -d Ubuntu-24.04 | 安装指定 Linux 发行版 |
| wsl --list --online | 列出可用的 Linux 发行版 |
| wsl --list --verbose | 列出已安装发行版及状态 |
| wsl --set-default Ubuntu-24.04 | 设置默认发行版 |
| wsl --set-version Ubuntu-24.04 2 | 将发行版升级到 WSL2 |
| wsl --set-default-version 2 | 设置新安装默认使用 WSL2 |
| wsl | 启动默认 Linux 发行版 |
| wsl -d Ubuntu-24.04 | 启动指定发行版 |
| wsl --shutdown | 关闭所有正在运行的发行版 |
| wsl --terminate Ubuntu-24.04 | 终止指定发行版 |
| wsl --status | 查看 WSL 状态信息 |
| wsl --update | 更新 WSL 内核 |
| wsl --export Ubuntu-24.04 backup.tar | 导出发行版为 tar 文件 |
| wsl --import Ubuntu-24.04 D:\WSL backup.tar | 从 tar 文件导入发行版 |
| wsl --unregister Ubuntu-24.04 | 注销并删除发行版 |
实用技巧
Windows与Linux文件互访
bash
# 在 Linux 中访问 Windows C 盘
cd /mnt/c/Users/YourName/Desktop
# 在 Windows 资源管理器中打开当前 Linux 目录
explorer.exe .
# 在 Linux 中打开 Windows 程序
notepad.exe myfile.txt
code.exe . # 用 VS Code 打开当前目录
SSH 密钥共享(按需)
bash
# 从 Windows 复制 SSH 密钥到 WSL2
cp /mnt/c/Users/YourName/.ssh/id_rsa ~/.ssh/
cp /mnt/c/Users/YourName/.ssh/id_rsa.pub ~/.ssh/
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub
与VSCode集成(按需)
VS Code 是 WSL2 开发的最佳拍档,安装 WSL 扩展后可在 Windows 上编辑 WSL2 文件:
bash
# 在 WSL2 终端中,直接用 VS Code 打开项目
code .
# VS Code 会自动连接到 WSL2 环境
# 安装所需扩展:Ctrl+Shift+X -> Remote - WSL
提示:
在 VS Code 左下角可以看到连接状态显示为 "WSL: Ubuntu-24.04",
此时所有终端、调试、扩展都在 Linux 环境中运行,获得原生 Linux 开发体验。
与IDEA集成(按需)
-
IDEA和VS Code一样,也支持
Remote - WSL -
也可以直接打开WSL中的项目路径,例如:
\\wsl.localhost\Ubuntu-20.04\home\qiye\develop\project\xxx
如果是直接接在WSL项目路径,有两个注意点:
项目路径注意不要放在/mnt/下,挂载目录坑多
IDEA中Git 配置项
Path to Git executable要配置WSL中的Git
配置 WSL2 网络代理(按需)
bash
# 在 ~/.bashrc 或 ~/.zshrc 中添加:
export WINDOWS_HOST=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}')
export HTTP_PROXY="http://$WINDOWS_HOST:7890"
export HTTPS_PROXY="http://$WINDOWS_HOST:7890"
export ALL_PROXY="socks5://$WINDOWS_HOST:7890"
配置 Oh My Zsh 提升终端体验(按需)
bash
# 安装 Zsh
sudo apt install zsh -y
# 安装 Oh My Zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# 安装 Powerlevel10k 主题(推荐)
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes/powerlevel10k
# 在 ~/.zshrc 中设置主题
ZSH_THEME="powerlevel10k/powerlevel10k"
升级优化IO响应速度(按需)

总结
WSL2 代表了 Windows 与 Linux 融合的重要一步。对于开发者而言,它提供了:
-
原生 Linux 内核的完整系统调用兼容性
-
接近原生的文件 I/O 性能
-
与 Windows 生态的无缝集成
-
低资源占用的轻量级虚拟化
-
与现代开发工具(VS Code、Docker、Git)的一流支持
无论你是 Web 开发者、DevOps 工程师还是系统程序员,WSL2 都能极大地提升你在 Windows 上的开发效率,让你在不放弃 Windows 生产力工具的同时,享受 Linux 开发生态的全部优势。