📖 介绍

​ WSL(Windows Subsystem for Linux)是Windows 10中的一个功能,它允许用户在Windows上原生运行Linux命令和程序,无需安装完整的Linux发行版。WSL通过在Windows内核中实现Linux系统调用来实现这一目标,因此它不是一个虚拟机或模拟器,而是一个真正的Linux子系统。

用户需要下载并安装WSL 2的运行时环境,并选择一个具体的Linux内核映像。这个内核映像可以从Microsoft提供的官方渠道获取,也可以自定义构建。安装完成后,用户可以在Windows命令行界面或终端中运行Linux命令和程序。

WSL的特色包括:

1、可以在Windows上原生运行Linux命令和程序,无需使用虚拟机或模拟器。

2、支持多个Linux发行版(WSL 1),或选择特定的内核映像(WSL 2)。

3、与Windows紧密集成,可以访问Windows文件系统和网络资源。

4、支持命令行界面和图形界面,用户可以根据需要选择使用。

5、支持与Docker等容器技术集成,方便用户进行开发和测试。

总之,WSL为Windows用户提供了一种方便、快捷的方式来运行Linux命令和程序,使得开发人员和系统管理员可以更加高效地进行工作。

比较 WSL 1 和 WSL 2
从 WSL 1 升级到 WSL 2 的主要区别和优势是:完整的 Linux 内核、提高文件系统(IO)性能、支持完全的系统调用兼容性。

🧰win10-WSL安装使用

安装wsl

1、打开Windows功能。在Windows 10上,可以通过“控制面板”->“程序”->“程序和功能”->“启用或关闭Windows功能”打开”适用于 Linux 的 Windows 子系统“。

2、启用“适用于Linux的Windows子系统”功能。选中该功能后,单击“确定”并等待安装完成。(如果提示重启机器才生效需要重启)

3、从Microsoft Store安装所需的Linux发行版。可以从Microsoft Store中下载Ubuntu、Debian、Kali Linux等多个Linux发行版。选择所需的发行版并单击“获取”。

单击以下链接会打开每个分发版的 Microsoft Store 页面:(下载好以后设置用户名和密码即可使用

Ubuntu 20.04 LTS:https://www.microsoft.com/store/apps/9n6svws3rx71
Ubuntu 22.04 LTS:https://www.microsoft.com/store/apps/9PN20MSR04DW
Kali Linux:https://www.microsoft.com/store/apps/9PKR34TNCV07
Debian GNU/Linux:https://www.microsoft.com/store/apps/9MSVKQC78PK6

Tips: WSL 2 仅适用于 Windows10的1903或更高版本。通过按 Windows 徽标键 + R,检查你的 Windows 版本,然后键入 winver,选择“确定”。

Tips: 非常注意,如果系统版本低于 18362 的版本根本不支持 WSL2,如果系统版本低于1709 根本不支持 WSL1。

Tips:Windows Server 2019 和 2022不支持 WSL2,坑呀。https://github.com/microsoft/WSL/issues/7666

常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
1、列出可用的 Linux 发行版
PS C:\Windows\system32> wsl --list --online
NAME FRIENDLY NAME
Ubuntu Ubuntu
Debian Debian GNU/Linux
kali-linux Kali Linux Rolling
Ubuntu-18.04 Ubuntu 18.04 LTS
Ubuntu-20.04 Ubuntu 20.04 LTS
Ubuntu-22.04 Ubuntu 22.04 LTS
OracleLinux_7_9 Oracle Linux 7.9
OracleLinux_8_7 Oracle Linux 8.7
OracleLinux_9_1 Oracle Linux 9.1
openSUSE-Leap-15.5 openSUSE Leap 15.5
SUSE-Linux-Enterprise-Server-15-SP4 SUSE Linux Enterprise Server 15 SP4
SUSE-Linux-Enterprise-15-SP5 SUSE Linux Enterprise 15 SP5
openSUSE-Tumbleweed openSUSE Tumbleweed

2、列出已安装的 Linux 发行版(默认为空)
wsl --list --verbose

3、命令行安装安装指定Linux的 发行版(例如:wsl --install -d Ubuntu-20.04)
wsl install -d

4、设置默认 Linux 发行版
wsl --set-default <Distribution Name>

5、检查 WSL 状态
wsl --status

6、进入Linux子系统
wsl

7、 或者网页打开下载Linux系统

8、 关闭wsl
wsl --shutdown

9、Terminate
wsl --terminate <Distribution Name>



端口映射

注意:windows的IP Helper服务一定要开启

如何在局域网的其他主机上中访问本机的WSL2?

  • 我们可以通过Windows原生命令开启端口转发功能从而实现局域网主机访问本机的wsl
1
2
3
4
5
6
7
8
## windows端口转发命令
1、查看所有的端口转发规则
netsh interface portproxy show all
2、转发本机端口到另外地址端口(注意不能写127.0.0.1,否则其他服务无法访问,88是我本机地址,143是wsl地址)
netsh interface portproxy add v4tov4 listenaddress=192.168.99.88 listenport=22 connectaddress=172.24.35.143 connectport=22
3、delete命令
delete v4tov4 - 删除通过 IPv4 的 IPv4 和代理连接到的侦听项目。
netsh interface portproxy delete v4tov4 listenaddress=127.0.0.1 listenport=3389

🧰Win Server 2022 安装使用

说明:

​ 具体操作步骤流程如下

  1. 开启虚拟机虚拟化 (任务管理器–>性能–>查看CPU虚拟化是否开启)
  2. 更新windows
  3. 安装wsl2

更新windows

安装wsl2

1
2
3
4
5
6
7
8
9
10
C:\Users\Administrator> wsl --install
正在安装: 虚拟机平台
已安装 虚拟机平台。
正在安装: 适用于 Linux 的 Windows 子系统
已安装 适用于 Linux 的 Windows 子系统。
正在下载: WSL 内核
正在安装: WSL 内核
已安装 WSL 内核。
正在下载: Ubuntu
请求的操作成功。直到重新启动系统前更改将不会生效。

安装Docker Desktop

Get Started | Docker

1
2
安装好以后使用 
docker version 查看命令是否安装成功

部署应用

以下方式不在使用

官网文档

  • 命令方式1.以管理员身份打开 PowerShell 并运行:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

  • 命令方式2.以管理员身份打开 cmd 并运行:

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

安装 WSL 2 之前,必须启用“虚拟机平台”可选功能,并重启计算机

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

下载 Linux 内核更新包安装完成后,请继续执行在安装新的 Linux 分发时,将 WSL 2 设置为默认版本。(如果希望将新的 Linux 安装设置为 WSL 1,请跳过此步骤。)

以下命令都在powershell运行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
1、 下载安装 Linux 内核更新包 
curl.exe -L https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi -o wsl_update_x64.msi

2、将 WSL 2 设置为默认版本,执行`wsl --set-default-version 2`powershell 命令即可。
wsl --set-default-version 2

# 查看默认版本
# wsl --status
默认版本:2
-----------------------------------


3、命令行下载Linux 分发版。(或者直接网页下载也一样,https://aka.ms/wslubuntu2004)
Invoke-WebRequest -Uri https://aka.ms/wslubuntu2004 -OutFile Ubuntu.appx -UseBasicParsing

5、使用 PowerShell 提取 <DistributionName>.appx 包的内容:
Rename-Item .\Ubuntu.appx .\Ubuntu.zip
Expand-Archive .\Ubuntu.zip .\Ubuntu

5、下载了发行版后,导航到包含下载内容的文件夹,并在该目录中运行以下命令,其中 app-name 是 Linux 发行版 .appx 文件的名称。
Add-AppxPackage .\app_name.appx
现在,可以通过键入 `<DistributionName>.exe` 从任何路径启动你的分发版。 例如: `ubuntu.exe`。
注意
安装失败并出现错误 0x8007007e:如果收到此错误,则表明系统不支持 WSL。 请确保运行的是 Windows 版本 16215 或更高版本。 检查内部版本。 另外,请进行检查以确认 WSL 已启用,并且在启用此功能后重新启动了计算机。

6、使用 PowerShell 将 Linux 发行版路径添加到 Windows 环境路径(在本例中为 C:\Users\Administrator\Ubuntu)
$userenv = [System.Environment]::GetEnvironmentVariable("Path", "User")
[System.Environment]::SetEnvironmentVariable("PATH", $userenv + ";C:\Users\Administrator\Ubuntu", "User")


# 如果以上方法无法安装直接执行以下命令尝试
wsl --install --d Ubuntu

端口转发还请参考端口映射标题去做

安装完成后,可为新的 Linux 发行版创建用户帐户和密码

安装windows终端(可选)