WSL,即Windows 的 Linux 子系统,是微软在 Windows 10/11 中提供的一项特色功能,它可以让我们在 Windows 上直接运行完整的 Linux 环境,无需安装双系统启动也无需安装完整的虚拟机。
WSL当前默认的版本是WSL2,相对于WSL1,WSL2在轻量级 Hyper-V 虚拟机中运行真实的 Linux 内核,其兼容性更加接近原生Linux,而且性能也得到大幅的提升,并支持 systemd、Docker 等。
安装WSL2后可以选择多个Linux发行版,比如Ubuntu、Debian、AlmaLinux、Fedora等发行版。而且文件可以双向互通,Windows 资源管理器可直接访问 Linux 文件,Linux 也能访问 Windows 的盘符,如 /mnt/c。
那么WSL2适合哪些人群和场景使用呢?
- Windows + Linux 双修的人这是 WSL2 最典型的用户,比如平时办公必须用 Windows,但是工作中又经常 SSH 到 Linux 服务器,笔者我就是这一类人。
- Linux 运维人员连接服务器、写脚本、测试配置,能极大提升效率。
- 学习 Linux 系统的人WSL2 是低成本入门 Linux、学习Linux 命令行、Shell 脚本的快捷方法。
- 需要 Docker 容器化开发的人WSL2有完整的Linux内核,Docker Desktop可以直接将引擎跑在WSL2的后端,非常适合跑Docker容器。
- 软件开发Web开发在Windows电脑上进行Web开发、后端开发,或者需要将应用部署到Linux服务器,WSL2几乎是完美的选择。
- 数据科学 AI 机器学习从业者很多深度学习框架、CUDA 工具链在 Linux 下支持更完善、坑更少,配合 WSL2 里的 CUDA 支持,还能直接跑 GPU 加速的训练任务。
WSL2与 Windows 无缝集成启动快、内存按需分配资源占用远低于传统虚拟机,安装也非常简单:以管理员身份打开 PowerShell ,运行 wsl --install 即可,默认安装 Ubuntu。下面分享下安装的过程。
在Windows中安装WSL虚拟机平台
以管理员身份打开PowerShell 命令窗口,执行如下命令:
wsl --install
这个命令会自动开启所需的虚拟化功能,下载 WSL 最新内核,并默认安装 Ubuntu 系统。

命令运行完成后重启电脑,会自动弹出命令窗口并下载ubuntu镜像,耐心等待下载完成,然后提示设置ubuntu的用户名和密码。

这样就安装完成了,是不是很简单?现在我们就可以在Windows下使用Linux系统了。
我们还可以查看其它可安装的wsl发行版并安装指定的linux发行版本,比如想安装Debian Linux:
wsl.exe -l -owsl.exe --install Debian


如果关闭了WSL,可以使用如下命令重新打开WSL:
wsl或者指定启动某一个发行版,比如:wsl.exe -d Ubuntuwsl.exe -d AlmaLinux-9wsl.exe -d OracleLinux_7_9wsl.exe -d AlmaLinux-8

WSL下Windows与Linux系统的文件互访方法:
- 在 Linux 中访问 Windows 文件: Windows 的 C 盘、D 盘会自动挂载在 Linux 的
/mnt/c、/mnt/d 目录下。 - 在 Windows 中访问 Linux 文件: 打开 Windows 文件资源管理器,在左侧导航栏的最下方可以看到一个 Linux(或
\\wsl$) 图标,点击即可像浏览普通文件夹一样查看 Linux 系统的文件。
或者执行
\\wsl.localhost\ubuntu

下面我们了解下WSL的网络模式
WSL的网络模式是为了决定 Linux 子系统与 Windows 主机及外部网络如何进行通信的问题,目前主要有两种模式:默认的 NAT网络地址转换模式和较新的Mirrored镜像模式。
- NAT模式下,WSL2 运行在一个轻量级的 Hyper-V 虚拟机中,Windows 宿主机会创建一个虚拟的网络交换机,并为其分配一个
172.x.x.x 网段的 IP 地址,WSL2 内部访问外部网络时,流量会经过虚拟网卡,由 Windows 进行网络地址转换后发出,外部网络看到的源 IP 是你 Windows 电脑的 IP,外部网络无法直接访问 WSL2 内部的服务,其他设备默认无法直接访问WSL里的服务,需要复杂的端口转发设置。 - Mirrored 模式下,Mirrored 模式是微软为了解决 NAT 模式的各种痛点而推出的新模式。顾名思义,Mirrored 模式是将 Windows 宿主机的网络接口 “镜像” 到了 WSL2 内部,WSL2 不再拥有独立的
172.x.x.x 网段 IP,而是与 Windows 宿主机共享网络 IP 和网卡。局域网内的设备可以直接通过Windows主机的IP地址访问WSL中的服务,就像访问另一台电脑一样。由于少了地址转换环节,网络性能更直接,能更好地利用网络带宽。
也就是说,NAT 隔离性好,少暴露网络面,会更加安全,Mirrored 是为了改善网络兼容性和高级网络场景而提供的模式。Mirrored 模式是把 Windows 的物理网络接口“镜像”到 WSL 中,让 WSL 更直接地使用宿主机的网络连接。
NAT 是“WSL 通过 Windows 上网”;Mirrored 是“WSL 使用 Windows 的网络环境”。
NAT和Mirrored这两种网络模式选择哪一种好呢?
- 简单场景,选NAT:如果我们用WSL主要用来跑跑命令、做开发测试,对网络互通要求不高,默认的NAT模式零配置、上手快,完全够用。
- 追求体验,选Mirrored:如果是经常需要在WSL和Windows之间来回调试API、WSL安装的服务能够被其它的电脑访问,那么就强烈推荐Mirrored模式了,它带来的无缝
localhost互通和网络兼容性,能极大提升效果和使用的简易性。
启用Mirrored模式
WSL 2 默认使用 NAT 网络模式,要想使用Mirrored模式,可按如下步骤开启: 在Windows 用户目录下的 .wslconfig 文件(如果没有就新建一个,路径为 C:\Users\你的用户名\.wslconfig): 添加以下内容:
[wsl2]networkingMode=mirrored
保存后,在 PowerShell 或 CMD 中运行 wsl --shutdown 重启 WSL,再次打开 WSL 即可生效。
要注意的是,在Mirrored 模式下,既然Windows 和 WSL 是同一个 IP ,那就不要让 Windows 和 WSL 争用同一个服务端口,相同的服务应用,需要使用不同的端口,比如下面这样:
服务 Windows WSLSSH 22 2222HTTP 80 8080HTTPS 443 8443
另外,启用mirrored网络模式,需要系统是Windows 11 22H2及更高版本才能完全稳定支持。