WSL子系统安装与使用
Windows 系统中直接运行原生 Linux 二进制程序,无需传统虚拟机或双系统配置
WSL子系统安装与使用
系统要求
- Windows 10 版本 1903(Build 18362)或更高(建议更新到最新版)。
- 如果版本低于 1903,需通过 Windows Update 升级系统。
- 虚拟化功能已启用(在 BIOS/UEFI 中开启 VT-x/AMD-V)
开启虚拟化
-
重启电脑,进入 BIOS/UEFI
-
开机时按特定键(通常是 F2、Del、F12 或 Esc,具体取决于主板型号)。
-
找到虚拟化设置(通常在 Advanced 或 CPU Configuration 中):
-
Intel CPU:启用 Intel Virtualization Technology (VT-x)。
-
AMD CPU:启用 SVM Mode(等同于 AMD-V)。
-
保存设置并退出(通常按 F10)。
确认已开启 CPU 虚拟化
- 快捷键
Ctrl+Shift+Esc,或右键任务栏选择 任务管理器 - 切换到 “性能” 选项卡。

开启windows中的以下功能
方法一:使用 PowerShell(推荐)
# 启用 WSL 功能(不指定版本,默认安装 WSL2)
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# 启用虚拟机平台(WSL2 必需)
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# 重启计算机(必须)
Restart-Computer
方法二:通过图形界面
控制面板 => 程序和功能 => 启用或关闭Windows功能 => 勾选下图的选项 确认后,重启电脑
WSL 常用命令速查表
基础操作
| 命令/组合 | 说明 | 示例 |
|---|---|---|
wsl --list --verbose 或 wsl -l -v |
查看已安装的发行版及状态 | wsl -l -v |
wsl --install -d <发行版名> |
安装指定发行版 | wsl --install -d Ubuntu-22.04 |
wsl --set-default-version 2 |
设置默认 WSL 版本为 2 | |
wsl --shutdown |
立即终止所有 WSL 实例 | |
wsl --terminate <发行版名> |
终止指定发行版 | wsl --terminate Ubuntu |
wsl --export <发行版> <文件名.tar> |
导出发行版到文件 | wsl --export Ubuntu ubuntu_backup.tar |
wsl --import <新发行版名> <安装路径> <备份文件.tar> |
导入发行版 | wsl --import Ubuntu_New C:\wsl\ubuntu_new ubuntu_backup.tar |
系统管理
| 命令/组合 | 说明 | 示例 |
|---|---|---|
wsl --set-version <发行版> 2 |
转换发行版到 WSL2 | wsl --set-version Ubuntu-22.04 2 |
wsl --update |
更新 WSL 内核 | |
wsl --status |
查看 WSL 状态信息 | |
wsl --user <用户名> |
以指定用户运行 | wsl --user root |
wsl1 升级到wsl2 下载安装
- 下载地址
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
- WSL 有 WSL1 和 WSL2,推荐使用 WSL2(性能更好):
wsl --set-default-version 2
安装Linux发行版本
方法一:从 Microsoft Store 安装
-
打开 Microsoft Store,搜索想要的 Linux 发行版(如 Ubuntu、Debian、Kali Linux)。
-
选择版本(如 Ubuntu 22.04 LTS),点击 安装。
-
安装完成后,从 开始菜单 启动该发行版,等待初始化并设置用户名和密码。
方法二:使用 wsl --install 快速安装
(仅限 Windows 11 或最新 Win10)
- 默认安装 Ubuntu(WSL2)
wsl --install
- 如需指定发行版:
# 查看可以安装的版本
wsl --list -o
# 指定安装版本
wsl --install -d Ubuntu-22.04

方法三:导入的镜像.tar文件
-
步骤 1:准备 .tar 镜像
-
可以从官方或第三方获取 Linux 发行版的 rootfs 压缩包(如 Ubuntu/Debian/Alpine 的官方 rootfs .tar.gz)。
-
或从现有 WSL 子系统导出:
wsl --export <现有发行版名称> <路径/文件名.tar> -
示例:
wsl --export debian E:\debain.tar
-
-
步骤 2:导入镜像为新发行版
wsl --import <自定义名称> <安装路径> <镜像路径.tar> --version 2 -
参数说明:
-
<自定义名称>:子系统的名称(如 MyUbuntu)。
-
<安装路径>:存储子系统的目录(如 C:\WSL\MyUbuntu)。
-
<镜像路径.tar>:.tar 文件的路径。
–version 2:指定使用 WSL2(推荐)
如果只有wsl2可省略。 -
示例:
wsl --import debian12 D:\wsl D:\wsl\iso\debain.tar

-
步骤 3:设置默认用户
导入的子系统默认以 root 用户启动,需手动配置普通用户:- 临时启动为 root:
wsl -d MyCustomUbuntu- 在 WSL 内创建用户并设置密码:
# 创建用户(如果尚未创建) adduser myuser usermod -aG sudo myuser # 设置默认用户 echo -e "[user]\ndefault=myuser" | sudo tee /etc/wsl.conf # 退出 exit- 最后在PowerShell中重启Wsl:
wsl --shutdown wsl -d debian12 # 现在应该以 myuser 用户启动 -
示例

方法四:直接使用 .vhdx 虚拟磁盘(适用于 WSL2)
-
步骤 1:准备 .vhdx 文件
- 从现有 WSL2 子系统导出:
# 先关闭 WSL wsl --shutdown wsl --export <发行版名称> <路径/文件名.vhdx> --vhd- 或直接复制现有子系统的虚拟磁盘文件(路径通常为 %USERPROFILE%\AppData\Local\Packages<发行版Package>\LocalState\ext4.vhdx 或自定义导入时指定的目录中)。
--vhd这是一个可选的参数,表示导出文件时,文件系统将被转换为 VHD(虚拟硬盘)格式。
如果没有使用 --vhd 参数,默认情况下会将 WSL 发行版导出为 .tar 文件格式,这是一种较为通用的存档格式。
-
步骤 2:导入 .vhdx 文件
wsl --import-in-place <自定义名称> <路径/文件名.vhdx> -
示例:
wsl --import-in-place debian12-2 D:\wsl\iso\ext4.vhdx
注意:–import-in-place 会直接使用原 .vhdx 文件,不会复制。
方法五:从 Docker 镜像导入
如果已有 Docker 镜像,可将其导出为 .tar 后导入 WSL:
- 导出 Docker 镜像:
docker export <容器ID> > image.tar

- 在 WSL 中导入:
wsl --import centos8 D:\wsl2 D:\wsl2\iso\centos8.tar

关键注意事项
-
镜像来源安全:确保 .tar 或 .vhdx 文件来自可信源,避免安全风险。
-
WSL2 要求:使用 .vhdx 需启用 WSL2 和虚拟化支持。
-
用户权限:导入的子系统默认无普通用户,需手动配置。
-
存储位置:通过 --import 安装的子系统会占用指定目录空间,建议选择非系统盘。
优点 vs 缺点
| 方式 | 优点 | 缺点 |
|---|---|---|
| 导入 .tar | 灵活支持任意发行版;可自定义安装位置 | 需手动配置用户和初始化设置 |
| 导入 .vhdx | 直接复用现有磁盘;性能更好 | 文件较大;需 WSL2 支持 |
| Store 安装 | 自动配置用户;官方维护更新 | 仅限微软商店提供的发行版 |
注销(卸载)WSL 子系统
查看已安装的子系统wsl --list --verbose
wsl --list --all
#或
wsl --list --verbose

停止运行子系统wsl --terminate
# 停止指定子系统
wsl --terminate <发行版>
# 强制关闭所有子系统
wsl --shutdown

注销(卸载)WSL 子系统wsl --unregister
这会完全删除该发行版及其数据(不可恢复,请先备份重要文件)
wsl --unregister <发行版名称>

遇到的問題
无法进入子系统目录

- 快捷键
ctrl+r调出运行框输入\\wsl.localhost即可进入进入子系统目录管理

隐射网络驱动器方便直接进入子系统文件管理

开源工具CzBiX/WSLHostPatcher结合使用解決localhost访问
CzBiX/WSLHostPatcher 是一个开源工具,主要用于解决 Windows Subsystem for Linux (WSL) 在特定场景下的网络访问问题。以下是它的核心用途和功能:
-
主要用途
-
修复 WSL2 的 localhost 访问问题
-
默认情况下,WSL2 使用虚拟化网络,导致从 Windows 主机通过 localhost 或 127.0.0.1 直接访问 WSL2 中的服务(如 Web 服务器、数据库等)时失败。
-
该工具通过自动修改 Windows 主机的 hosts 文件(C:\Windows\System32\drivers\etc\hosts),将 localhost 指向 WSL2 的虚拟 IP,从而实现无缝访问。
-
-
动态更新 WSL2 的 IP 地址
-
WSL2 的虚拟 IP 可能在每次启动时变化,导致手动修改 hosts 文件失效。
-
此工具会监听 WSL2 的 IP 变化,并自动更新 hosts 文件,确保始终能通过 localhost 访问。
-
-
-
适用场景
-
在 WSL2 中运行服务(如 Apache、Nginx、MySQL)时,需从 Windows 主机通过浏览器或工具连接。
-
开发调试时避免频繁手动修改网络配置。
-
-
工作原理
-
检测 WSL2 实例的当前虚拟 IP。
-
修改 Windows 的 hosts 文件,添加如下映射:
# WSL2 IP 动态映射 172.xx.xx.xx localhost通过后台服务监控 IP 变化,实时更新映射。
-
-
替代方案
-
手动修改 hosts 文件(但需每次 WSL2 重启后更新)。
-
使用 netsh interface portproxy 设置端口转发。
-
在 Windows 11 中,可通过
wsl --localhost forward启用官方支持的 localhost 访问功能(部分版本需配置)。
-
-
注意事项
-
需要管理员权限(因需修改系统 hosts 文件)。
-
某些安全软件可能会阻止 hosts 文件的修改。
-
如果使用 Windows 11 22H2 及以上版本,建议优先尝试官方支持的 localhost 功能。
-
-
项目状态
该工具在早期 WSL2 版本中非常实用,但随着 Windows 官方功能的完善,可能逐渐被替代。建议查看项目主页(GitHub - CzBiX/WSLHostPatcher)了解最新兼容性说明。 -
如果需要更简单的解决方案,也可直接升级 Windows 并启用
wsl --localhost forward(未实操测试)。
更多推荐


所有评论(0)