Windows 系统上安装 Linux 子系统 wsl(Windows Subsystem for Linux) 能够非常方便的在 Windows 系统上使用 Linux 的边界命令。重要的是 wsl 非常轻量,比 docker、VMware Workstation、VMware Fusion、VirtualBox、QEMU 等都使用更少的资源,且 wsl 是 Windows 自家开发,与 Windows 融合度更高。

安装前准备

安装 wsl 需要事先打开某些功能选项,默认 windows 是将这些功能处于关闭状态。打开方法如下:

  1. 按下键盘上的 Windows 图标,打开搜索;
  2. 搜索:control,打开控制面板;
  3. 搜索:启动或关闭windows功能;
  4. 打开 启动或关闭windows功能,勾选:1,适用于 Linux 的 Windows 子系统,2,虚拟机平台;
  5. 确定,重启主机。

或者命令行设置

在开始菜单搜索 Powershell,以管理员权限打开,执行下面命令:

1
2
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

以上完成后需要重启电脑。

安装

更新wsl

打开CMD终端

1
wsl --update

或者手动下载

下载最新的WSL进行安装。自带的wsl更新命令一般比较慢。为了加快速度,直接从github里面下载最新版本。

https://github.com/microsoft/WSL/releases

下载并安装发行版

打开CMD终端,输入如下命令安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 打开帮助
wsl --help

# 设置版本,默认有2个版本,1和2,1是使用和主机相同的IP地址;2是更加独立的linux子系统,有单独的IP地址,通过Windows主机访问互联网
# 建议安装2,如果安装2还需要安装一个软件:https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
# 该软件来自于 windows 官网:https://learn.microsoft.com/zh-cn/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package
wsl --set-default-version 2

# 搜索可安装的版本
wsl --list --online

# 安装指定的版本
wsl --install -d Ubuntu

# 查看安装的版本信息
wsl --status

# 查看运行情况
wsl -l -v

# 关闭wsl
wsl --shutdown

或者手动下载安装

访问以下网站下载需要的ubuntu镜像文件

https://learn.microsoft.com/en-us/windows/wsl/install-manual#downloading-distributions

我这里以 Ubuntu24.04 为例。

  • 下载完成后,会得到文件Ubuntu2404-240425.AppxBundle
  • 将文件重命名为 Ubuntu2404-240425.zip,解压得到文件夹Ubuntu2404-240425;
  • 进入文件夹,找到文件 Ubuntu_2404.0.5.0_x64.appx,再次将文件重命名,得到 Ubuntu_2404.0.5.0_x64.zip,然后再次解压得到文件夹Ubuntu_2404.0.5.0_x64
  • 将文件夹复制到你想安装wsl的盘符,建议选择空间大的盘符看,路径中不要出现中文
  • 进入文件夹 Ubuntu_2404.0.5.0_x64,双击安装 ubuntu2404.exe

配置

在开始菜单搜索wsl settings,在网络中网络模式默认是nat,也可以选择Mirrored(Windows 11:版本号 22H2 (Build 22621) 或更高推荐这种方式。但建议把主机地址环回打开。

除了使用这种GUI方式配置外,也可以采用配置文件的方式,创建配置文件C:\Users\jinzhongxu\.wslconfig,写入常用配置,如

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[wsl2]
# 开启镜像网络,WSL2 与 Windows 共享 IP
networkingMode=mirrored
# 限制内存占用,防止内网机器卡顿(根据你的内存调优,这里设为 4GB)
memory=4GB
# 限制 CPU 核心数
processors=2
# 开启 systemd 支持,或者打开ubuntu后在 /etc/wsl.conf 中添加下面
#[boot]
#systemd=true
systemd=true

[experimental]
# --- 本地地址环回关键设置 ---
# 允许 WSL2 通过 localhost 访问 Windows 宿主机上监听的服务
hostAddressLoopback=true

# --- 其他好用的实验性功能 ---
# 自动回收 WSL2 占用的空闲内存归还给 Windows
autoMemoryReclaim=gradual
# 自动压缩虚拟磁盘空间(删除文件后硬盘占用会缩小)
sparseVhd=true

网络模式

  • NAT 模式(默认):WSL2 躲在 Windows 后面的私有子网里,通过地址转换上网,外部设备访问它最麻烦。
  • 镜像模式 (Mirrored):WSL2 与 Windows 共享完全相同的网络身份,像在原生 Linux 里一样直接通过 localhost 或主机 IP 通信,但需要把主机地址环回打开,否则本机无法通过IP(如10.2.28.35)访问本地或本地docker服务,只能用127.0.0.1或localhost。
  • 桥接模式 (VirtioProxy):WSL2 像一台独立的实体机直接插在交换机上,拥有内网路由器分配的专属独立 IP。

参考文献

  1. windows11 安装WSL2详细过程