1. 什么是WSL?

适用于 Linux 的 Windows 子系统 (WSL) 是 Windows 的一项功能,可用于在 Windows 计算机上运行 Linux 环境,而无需单独的虚拟机或双引导。 WSL 旨在为希望同时使用 Windows 和 Linux 的开发人员提供无缝高效的体验。

安装 WSL


什么是 WSL 2?

安装 Linux 发行版时,WSL 2 是默认发行版类型。 WSL 2 使用虚拟化技术在轻量级实用工具虚拟机 (VM) 中运行 Linux 内核。 Linux 发行版作为独立的容器在 WSL 2 托管 VM 内运行。 通过 WSL 2 运行的 Linux 发行版将共享同一网络命名空间、设备树(而非 /dev/pts)、CPU/内核/内存/交换空间、/init 二进制文件,但有自己的 PID 命名空间、装载命名空间、用户命名空间、Cgroup 命名空间和 init 进程。

WSL 2 提高了文件系统性能,并且与 WSL 1 体系结构相比增加了完整的系统调用兼容性。 详细了解 WSL 1 和 WSL 2 的比较

单个 Linux 分发版可以在 WSL 1 或 WSL 2 体系结构中运行。 每个分发版可随时升级或降级,并且你可以并行运行 WSL 1 和 WSL 2 分发版。 请参阅设置 WSL 版本命令

2. 安装WSL

安装 WSL 命令

现在,可以使用单个命令安装运行 WSL 所需的一切内容。 在管理员模式下打开 PowerShell 或 Windows 命令提示符,方法是右键单击并选择“以管理员身份运行”,输入 wsl --install 命令,然后重启计算机。

PowerShell复制

wsl --install

此命令将启用运行 WSL 并安装 Linux 的 Ubuntu 发行版所需的功能。 (可以更改此默认发行版)。

如果你运行的是旧版,或只是不想使用 install 命令并希望获得分步指引,请参阅旧版 WSL 手动安装步骤

首次启动新安装的 Linux 发行版时,将打开一个控制台窗口,要求你等待将文件解压缩并存储到计算机上。 未来的所有启动时间应不到一秒。

备注

仅当根本没有安装 WSL 时,上述命令才有效。 如果运行 wsl --install 并查看 WSL 帮助文本,请尝试运行 wsl --list --online 以查看可用发行版列表并运行 wsl --install -d <DistroName> 以安装一个发行版。 若要卸载 WSL,请参阅卸载旧版 WSL注销或卸载 Linux 发行版

更改默认安装的 Linux 发行版

默认情况下,安装的 Linux 分发版为 Ubuntu。 可以使用 -d 标志进行更改。

  • 若要更改安装的发行版,请输入:wsl --install -d <Distribution Name>。 将 <Distribution Name> 替换为要安装的发行版的名称。

  • 若要查看可通过在线商店下载的可用 Linux 发行版列表,请输入:wsl --list --onlinewsl -l -o

  • 若要在初始安装后安装其他 Linux 发行版,还可使用命令:wsl --install -d <Distribution Name>

提示

如果要通过 Linux/Bash 命令行(而不是通过 PowerShell 或命令提示符)安装其他发行版,必须在命令中使用 .exe:wsl.exe --install -d <Distribution Name> 或若要列出可用发行版,则使用:wsl.exe -l -o

如果在安装过程中遇到问题,请查看疑难解答指南的安装部分

要安装未列为可用版本的 Linux 发行版,可使用 TAR 文件导入任何 Linux 发行版。 在某些情况下,与 Arch Linux 一样,也可使用 .appx 文件进行安装。 还可以通过 WSL 创建自己的自定义 Linux 发行版,以供使用。

设置 Linux 用户信息

安装 WSL 后,需要为新安装的 Linux 发行版创建用户帐户和密码。 请参阅设置 WSL 开发环境的最佳做法指南来了解详细信息。

设置和最佳做法

建议遵循设置 WSL 开发环境的最佳做法这一指南,逐步了解以下操作:为已安装的 Linux 发行版设置用户名和密码、使用基本的 WSL 命令、安装和自定义 Windows 终端、针对 Git 版本控制进行设置、使用 VS Code 远程服务器进行代码编辑和调试、文件存储的最佳做法、设置数据库、装载外部驱动器、设置 GPU 加速等。

检查正在运行的 WSL 版本

可列出已安装的 Linux 发行版,并通过在 PowerShell 或 Windows 命令提示符中输入以下命令来检查每个发行版的 WSL 版本:wsl -l -v

要在安装新的 Linux 发行版时将默认版本设置为 WSL 1 或 WSL 2,请使用命令 wsl --set-default-version <Version#>,将 <Version#> 替换为 1 或 2。

要设置与 wsl 命令一起使用的默认 Linux 发行版,请输入 wsl -s <DistributionName>wsl --set-default <DistributionName>,将 <DistributionName> 替换为要使用的 Linux 发行版的名称。 例如,从 PowerShell/CMD 输入 wsl -s Debian,将默认发行版设置为 Debian。 现在从 Powershell 运行 wsl npm init 将在 Debian 中运行 npm init 命令。

要在 PowerShell 或 Windows 命令提示符下运行特定的 WSL 发行版而不更改默认发行版,请使用命令 wsl -d <DistributionName>,将 <DistributionName> 替换为要使用的发行版的名称。

有关详细信息,请参阅 WSL 的基本命令指南。

将版本从 WSL 1 升级到 WSL 2

使用 wsl --install 命令安装的新 Linux 安装将默认设置为 WSL 2。

wsl --set-version 命令可用于从 WSL 2 降级到 WSL 1,或将以前安装的 Linux 发行版从 WSL 1 更新到 WSL 2。

要查看 Linux 发行版是设置为 WSL 1 还是 WSL 2,请使用命令 wsl -l -v

要更改版本,请使用 wsl --set-version <distro name> 2 命令将 <distro name> 替换为要更新的 Linux 发行版的名称。 例如,wsl --set-version Ubuntu-20.04 2 会将 Ubuntu 20.04 发行版设置为使用 WSL 2。

如果在 wsl --install 命令可用之前手动安装了 WSL,则可能还需要启用 WSL 2 所使用的虚拟机可选组件安装内核包(如果尚未这样做)。

如需了解更多信息,请参阅 WSL 命令参考以获取 WSL 命令列表,并参阅比较 WSL 1 和 WSL 2,获取有关用于你的工作场景的指南,或参阅设置 WSL 开发环境的最佳做法,了解有关使用 WSL 设置良好开发工作流的一般指南。

使用 WSL 运行多个 Linux 发行版的方法

WSL 支持运行想要安装的任意数量的不同 Linux 发行版。 这可能包括从 Microsoft Store 选择发行版、导入自定义发行版生成自己的自定义发行版

安装后,有几种方法可以运行 Linux 发行版:

  • 安装 Windows 终端(推荐):使用 Windows 终端支持你想要安装的任意数量的命令行,并允许你在多个标签或窗口窗格中打开它们并在多个 Linux 发行版或其他命令行(PowerShell、命令提示符、Azure CLI 等)之间快速切换。 可使用独特的配色方案、字体样式、大小、背景图像和自定义键盘快捷键来完全自定义终端。 了解详细信息。

  • 通过访问 Windows“开始”菜单并键入已安装的发行版的名称,可以直接打开 Linux 发行版。 例如:“Ubuntu”。 这会在其自己的控制台窗口中打开 Ubuntu。

  • 在 Windows 命令提示符或 PowerShell 中,可以输入已安装的发行版的名称。 例如:ubuntu

  • 在 Windows 命令提示符或 PowerShell 中,可以在当前命令行中打开默认的 Linux 发行版,方法是输入:wsl.exe

  • 在 Windows 命令提示符或 PowerShell 中,可以在当前命令行中使用默认的 Linux 发行版,而无需输入新的发行版名称,方法是输入:wsl [command]。 将 [command] 替换为 WSL 命令,例如,替换为 wsl -l -v 以列出已安装的发行版,或 wsl pwd 以查看当前目录路径在 WSL 中的装载位置。 在 PowerShell 中,命令 get-date 将提供 Windows 文件系统中的日期,而 wsl date 将提供 Linux 文件系统中的日期。

选择的方法应取决于所执行的操作。 如果已在 Windows 提示符或 PowerShell 窗口中打开 WSL 命令行并想退出,请输入命令:exit

旧版 WSL 的手动安装步骤

步骤 1 - 启用适用于 Linux 的 Windows 子系统

需要先启用“适用于 Linux 的 Windows 子系统”可选功能,然后才能在 Windows 上安装 Linux 分发。

以管理员身份打开 PowerShell(“开始”菜单 >“PowerShell” >单击右键 >“以管理员身份运行”),然后输入以下命令:

PowerShell复制

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

建议现在转到步骤 #2,更新到 WSL 2,但如果只想安装 WSL 1,现在可以重新启动计算机,然后继续执行步骤 6 - 安装所选的 Linux 发行版。 若要更新到 WSL 2,请等待重新启动计算机,然后继续执行下一步。

步骤 2 - 检查运行 WSL 2 的要求

若要更新到 WSL 2,需要运行 Windows 10。

  • 对于 x64 系统:版本 1903 或更高版本,内部版本为 18362.1049 或更高版本。

  • 对于 ARM64 系统:版本 2004 或更高版本,内部版本为 19041 或更高版本。

或 Windows 11。

备注

低于 18362 的版本不支持 WSL 2。 使用 Windows Update 助手更新 Windows 版本。 Windows 版本 1903 支持也仅适用于 x64 系统。 如果使用的是 Arm64 版本的 Windows,则需要升级到 Windows 10 版本 2004 或更高版本才能完全访问 WSL 2。 有关详细信息,请参阅WSL 2 即将支持 Windows 10 版本 1903 和 1909

若要检查 Windows 版本及内部版本号,选择 Windows 徽标键 + R,然后键入“winver”,选择“确定”。 更新到“设置”菜单中的最新 Windows 版本

备注

如果运行的是 Windows 10 版本1903 或 1909,请在 Windows 菜单中打开“设置”,导航到“更新和安全性”,然后选择“检查更新”。 内部版本号必须是 18362.1049+ 或 18363.1049+,次要内部版本号需要高于 .1049。 阅读详细信息:WSL 2 即将支持 Windows 10 版本 1903 和 1909

步骤 3 - 启用虚拟机功能

安装 WSL 2 之前,必须启用“虚拟机平台”可选功能。 计算机需要虚拟化功能才能使用此功能。

以管理员身份打开 PowerShell 并运行:

PowerShell复制

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

重新启动计算机,以完成 WSL 安装并更新到 WSL 2。

步骤 4 - 下载 Linux 内核更新包

Linux 内核更新包会安装最新版本的 WSL 2 Linux 内核,以便在 Windows 操作系统映像中运行 WSL。 (若要运行 Microsoft Store 中的 WSL 并更频繁地推送更新,请使用 wsl.exe --installwsl.exe --update。)

  1. 下载最新包:

    备注

    如果使用的是 ARM64 计算机,请下载 ARM64 包。 如果不确定自己计算机的类型,请打开命令提示符或 PowerShell,并输入:systeminfo | find "System Type"Caveat: 在非英文版 Windows 上,你可能必须修改搜索文本,对“System Type”字符串进行翻译。 你可能还需要对引号进行转义来用于 find 命令。 例如,在德语版中使用 systeminfo | find '"Systemtyp"'

  2. 运行上一步中下载的更新包。 (双击以运行 - 系统将提示你提供提升的权限,选择“是”以批准此安装。)

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

备注

有关详细信息,请参阅 Windows 命令行博客上的文章对更新 WSL2 Linux 内核的更改

步骤 5 - 将 WSL 2 设置为默认版本

打开 PowerShell,然后在安装新的 Linux 发行版时运行以下命令,将 WSL 2 设置为默认版本:

PowerShell复制

wsl --set-default-version 2

步骤 6 - 安装所选的 Linux 分发

  1. 打开 Microsoft Store,并选择你偏好的 Linux 分发版。

    View of Linux distributions in the Microsoft Store

    单击以下链接会打开每个分发版的 Microsoft Store 页面:

  2. 在分发版的页面中,选择“获取”。

    Linux distributions in the Microsoft store

首次启动新安装的 Linux 分发版时,将打开一个控制台窗口,系统会要求你等待一分钟或两分钟,以便文件解压缩并存储到电脑上。 未来的所有启动时间应不到一秒。

然后,需要为新的 Linux 分发版创建用户帐户和密码

Ubuntu unpacking in the Windows console

祝贺你! 现已成功安装并设置了与 Windows 操作系统完全集成的 Linux 分发!

排查安装问题

如果在安装过程中遇到问题,请查看疑难解答指南的安装部分

下载发行版

在某些情况下,你可能无法(或不想)使用 Microsoft Store 安装 WSL Linux 发行版。 你可能正在运行不支持 Microsoft Store 的 Windows Server 或长期服务 (LTSC) 桌面操作系统 SKU,或者你的公司网络策略和/或管理员不允许在你的环境中使用 Microsoft Store。 在这些情况下,虽然 WSL 本身可用,但你可能需要直接下载 Linux 发行版。

如果 Microsoft Store 应用不可用,可使用以下链接来下载并手动安装 Linux 发行版:

这将导致 <distro>.appx 包下载到你选择的文件夹。

如果愿意,你也可通过命令行下载首选的发行版,可将 PowerShell 与 Invoke-WebRequest cmdlet 一起使用。 例如,下载 Ubuntu 20.04:

PowerShell复制

Invoke-WebRequest -Uri https://aka.ms/wslubuntu2004 -OutFile Ubuntu.appx -UseBasicParsing

提示

如果下载需要很长时间,请通过设置 $ProgressPreference = 'SilentlyContinue' 来关闭进度栏

你还可以选择使用 curl 命令行实用程序来下载。 使用 curl 下载 Ubuntu 20.04:

控制台复制

curl.exe -L -o ubuntu-2004.appx https://aka.ms/wslubuntu2004

在本示例中,将执行 curl.exe(而不仅仅是 curl),以确保在 PowerShell 中调用真正的 curl 可执行文件,而不是调用 Invoke WebRequest 的 PowerShell curl 别名。

下载了发行版后,导航到包含下载内容的文件夹,并在该目录中运行以下命令,其中 app-name 是 Linux 发行版 .appx 文件的名称。

Powershell复制

Add-AppxPackage .\app_name.appx

Appx 包下载完成后,可以通过双击 appx 文件开始运行新发行版。 (命令 wsl -l 不会在此步骤完成之前显示发行版已安装)。

如果你使用 Windows Server,或在运行上述命令时遇到问题,可在 Windows Server 文档页上找到备用安装说明,以通过将 .appx 文件更改为 zip 文件来安装该文件。

安装了发行版后,请按照说明为新的 Linux 发行版创建用户帐户和密码

安装 Windows 终端(可选)

使用 Windows 终端可以打开多个选项卡或窗口窗格,以显示多个 Linux 发行版或其他命令行(PowerShell、命令提示符、Azure CLI 等)并在它们之间快速切换。 可使用独特的配色方案、字体样式、大小、背景图像和自定义键盘快捷键来完全自定义终端。 了解详细信息。

安装 Windows 终端

Windows Terminal

3.教程

开始使用

适用于 Linux 的 Windows 子系统随 Windows 操作系统一起提供,但必须先启用它并安装 Linux 发行版,然后才能开始使用它。

若要使用简化的 --install 命令,必须运行最新版本的 Windows(内部版本 20262+)。 若要检查 Windows 版本及内部版本号,选择 Windows 徽标键 + R,然后键入“winver”,选择“确定”。 可以使用“设置”菜单Windows 更新助手进行更新。

如果希望安装除 Ubuntu 以外的 Linux 发行版,或者希望手动完成这些步骤,请参阅 WSL 安装页了解更多详细信息。

打开 PowerShell(或 Windows 命令提示符)并输入:

PowerShell复制

wsl --install

--install 命令执行以下操作:

  • 启用可选的 WSL 和虚拟机平台组件

  • 下载并安装最新 Linux 内核

  • 将 WSL 2 设置为默认值

  • 下载并安装 Ubuntu Linux 发行版(可能需要重新启动)

在此安装过程中,你将需要重启计算机。

PowerShell command line running wsl --install

如果遇到任何问题,请查看排查安装问题一文。

设置 Linux 用户名和密码

使用 WSL 安装 Linux 发行版的过程完成后,使用“开始”菜单打开该发行版(默认情况下为 Ubuntu)。 系统将要求你为 Linux 发行版创建“用户名”和“密码”

  • 用户名密码特定于安装的每个单独的 Linux 分发版,与 Windows 用户名无关。

  • 请注意,输入密码时,屏幕上不会显示任何内容。 这称为盲人键入。 你不会看到你正在键入的内容,这是完全正常的。

  • 创建用户名密码后,该帐户将是分发版的默认用户,并将在启动时自动登录。

  • 此帐户将被视为 Linux 管理员,能够运行 sudo (Super User Do) 管理命令。

  • 在 WSL 上运行的每个 Linux 发行版都有其自己的 Linux 用户帐户和密码。 每当添加分发版、重新安装或重置时,都必须配置一个 Linux 用户帐户。

备注

随 WSL 一起安装的 Linux 发行版是按用户安装,不可与其他 Windows 用户帐户共享。 遇到用户名错误? StackExchange:在 Linux 上的用户名中,应使用或不使用哪些字符?

Ubuntu command line enter UNIX username

若要更改或重置密码,请打开 Linux 发行版并输入命令:passwd。 系统会要求你输入当前密码,然后要求输入新密码,之后再确认新密码。

如果忘记了 Linux 分发版的密码:

  1. 请打开 PowerShell,并使用以下命令进入默认 WSL 分发版的根目录:wsl -u root

    如果需要在非默认分发版中更新忘记的密码,请使用命令:wsl -d Debian -u root,并将 Debian 替换为目标分发版的名称。

  2. 在 PowerShell 内的根级别打开 WSL 发行版后,可使用此命令更新密码:passwd <username>,其中 <username> 是发行版中帐户的用户名,而你忘记了它的密码。

  3. 系统将提示你输入新的 UNIX 密码,然后确认该密码。 在被告知密码已成功更新后,请使用以下命令在 PowerShell 内关闭 WSL:exit

更新和升级包

建议使用发行版的首选包管理器定期更新和升级包。 对于 Ubuntu 或 Debian,请使用以下命令:

Bash复制

sudo apt update && sudo apt upgrade

Windows 不会自动更新或升级 Linux 分发版。 大多数 Linux 用户往往倾向于自行控制此任务。

添加其他发行版

若要添加其他 Linux 发行版,可以通过 Microsoft Store、通过 --import 命令或通过旁加载你自己的自定义发行版进行安装。 你可能还想要设置自定义 WSL 映像,以便在企业中分发

设置 Windows Terminal

Windows Terminal 可以使用命令行接口运行任何应用程序。 它的主要功能包括多个选项卡、窗格、Unicode 和 UTF-8 字符支持、GPU 加速文本呈现引擎,你还可用它来创建你自己的主题并自定义文本、颜色、背景和快捷方式。

每当安装新的 WSL Linux 发行版时,都会在 Windows Terminal 中为其创建一个新实例,该实例可根据你的偏好进行自定义。

建议将 WSL 与 Windows Terminal 配合使用,尤其是在计划使用多个命令行时。 请参阅 Windows Terminal 文档,了解如何对其进行设置以及如何自定义首选项,包括:

Windows Terminal screenshot

文件存储

  • 若要在 Windows 文件资源管理器中打开 WSL 项目,请输入:explorer.exe .
    请确保在命令的末尾添加句点以打开当前目录。

  • 将项目文件与计划使用的工具存储在相同的操作系统上
    若想获得最快的性能速度,请将文件存储在 WSL 文件系统中,前提是使用 Linux 工具在 Linux 命令行(Ubuntu、OpenSUSE 等)中处理这些文件。 如果是使用 Windows 工具在 Windows 命令行(PowerShell、命令提示符)中工作,请将文件存储在 Windows 文件系统中。 可以跨操作系统访问文件,但这可能会显著降低性能。

例如,在存储 WSL 项目文件时:

  • 使用 Linux 文件系统根目录:\\wsl$\<DistroName>\home\<UserName>\Project

  • 而不使用 Windows 文件系统根目录:C:\Users\<UserName>\Project/mnt/c/Users/<UserName>/Project$

Windows File Explorer displaying Linux storage

设置你最喜欢的代码编辑器

建议使用 Visual Studio Code 或 Visual Studio,因为它们直接支持使用 WSL 进行远程开发和调试。 Visual Studio Code 使你能够将 WSL 用作功能完备的开发环境。 Visual Studio 提供了对 C++ 跨平台开发的本机 WSL 支持。

使用 Visual Studio Code

按照此分步指南开始将 Visual Studio Code 与 WSL 配合使用,其中包括安装远程开发扩展包。 使用此扩展,能够运行 WSL、SSH 或开发容器,以使用整套 Visual Studio Code 功能进行编辑和调试。 在不同的独立开发环境之间快速切换并进行更新,而无需担心会影响本地计算机。

安装并设置 VS Code 后,可以通过输入以下内容使用 VS Code 远程服务器打开 WSL 项目:code .

请确保在命令的末尾添加句点以打开当前目录。

VS Code with WSL extensions displayed

使用 Visual Studio

按照此分步指南开始将 Visual Studio 与 WSL 一起用于 C++ 跨平台开发。 Visual Studio 2022 使你能够从 Visual Studio 的同一实例在 Windows、WSL 发行版和 SSH 连接上生成和调试 CMake 项目。

Select a target system in Visual Studio 2022

使用 Git 设置版本管理

按照此分步指南开始在 WSL 上使用 Git,并将项目连接到 Git 版本控制系统,同时使用凭据管理器进行身份验证,使用 Git Ignore 文件,了解 Git 行尾,以及使用内置到 VS Code 的 Git 命令。

Displaying git version in the command line

使用 Docker 设置远程开发容器

按照此分步指南开始使用 WSL 2 上的 Docker 远程容器,并使用 Docker Desktop for Windows 将项目连接到远程开发容器。

Docker Desktop screenshot

设置数据库

按照此分步指南开始使用 WSL 上的数据库,并将项目连接到 WSL 环境中的数据库。 开始使用 MySQL、PostgreSQL、MongoDB、Redis、Microsoft SQL Server 或 SQLite。

Running MongoDB in Ubuntu via WSL

设置 GPU 加速以提高性能

按照此分步指南在 WSL 中设置 GPU 加速的机器学习训练,并利用计算机的 GPU(图形处理单元)来加速性能繁重的工作负载。

Running GPU acceleration with WSL

基本 WSL 命令

通过 WSL 安装的 Linux 发行版最好使用 PowerShell 或 Windows 命令提示符 (CMD) 进行管理。 有关使用 WSL 时需要熟悉的基本命令的列表,请参阅 WSL 命令参考指南

此外,许多命令在 Windows 和 Linux 之间都具有互操作性。 下面是几个示例:

  • 从 Windows 命令行运行 Linux 工具:打开 PowerShell,通过输入以下内容使用 Linux ls -la 命令显示 C:\temp> 的目录内容:wsl ls -la

  • 混合 Linux 和 Windows 命令:在此示例中,使用 Linux 命令 ls -la 列出目录中的文件,然后使用 PowerShell 命令 findstr 筛选包含“git”的单词的结果:wsl ls -la | findstr "git"。 这还可以通过混合使用 Windows dir 命令和 Linux grep 命令来实现:dir | wsl grep git

  • 直接从 WSL 命令行运行 Windows 工具<tool-name>.exe。例如,若要打开 .bashrc 文件(启动 Linux 命令行时运行的 shell 脚本),请输入:notepad.exe .bashrc

  • 使用 Linux Grep 工具运行 Windows ipconfig.exe 工具:从 Bash 输入命令 ipconfig.exe | grep IPv4 | cut -d: -f2 或从 PowerShell 输入 ipconfig.exe | wsl grep IPv4 | wsl cut -d: -f2。此示例演示了 Windows 文件系统上的 ipconfig 工具,该工具先是用于显示当前 TCP/IP 网络配置值,然后通过 Linux 工具 grep 被筛选为仅显示 IPv4 结果。

装载外部驱动器或 USB

按照此分步指南开始在 WSL 2 中装载 Linux 磁盘

wsl mount command screenshot

运行 Linux GUI 应用

按照本教程了解如何设置和运行 WSL 上的 Linux GUI 应用

其他资源

4. 其他

网络代理

设置代理

由于 WSL 2 是通过虚拟机的方式实现,所以不能像 WSL 1 时期那样直接使用 127.0.0.1 修改 WSL 内的网络代理。此时正确的处理方式应该是向 ~/.bashrc 添加如下内容:

hostip=$(cat /etc/resolv.conf | grep nameserver | awk '{ print $2 }')
port=7890 # 此处端口可根据个人情况进行更改

PROXY_HTTP="http://${hostip}:${port}"

export http_proxy="${PROXY_HTTP}"
export HTTP_PROXY="${PROXY_HTTP}"

export https_proxy="${PROXY_HTTP}"
export HTTPS_proxy="${PROXY_HTTP}"

参考文章:WSL2 中访问宿主机 Windows 的代理

取消防火墙

Windows 与 WSL 之间存在防火墙,请参照以下步骤取消勾选对应选项:

如果使用的是 Clash for Windows,请尝试开启 Clash for Windows 中主界面中的 Allow LAN 选项。

环境变量

在 WSL 2 中默认可获取到宿主机中的环境变量,这可能会导致某些错误,比如获取到一些没有意义的环境变量,导致环境混乱。

若要禁止在 WSL 2 中访问 Windows 环境变量,可以先创建/etc/wsl.conf

touch /etc/wsl.conf

然后修改其内容为:

[interop]
appendWindowsPath = false

常用软件的安装

接下来安装几个我常用的软件包,这部分没什么技术含量,仅供以后查阅方面使用。

首先更新软件源:

sudo apt update

然后安装:

# python
sudo apt install python3
ln -s /usr/bin/python3 /usr/bin/python

## node/npm
sudo apt install nodejs
sudo apt install npm

## yarn
sudo npm install -g yarn

## deno
sudo apt install unzip
curl -fsSL https://deno.land/x/install/install.sh | sh

## rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# 建议选择 `default toolchain` 为 `nightly`

其他坑

由于 WSL 2 用到了虚拟化平台功能,可能会导致其他虚拟机(如 VirtualBox)无法运行。目前我还没解决这个问题,啥时候用空解决了再更。

更新:解决方案:卸载 VirtualBox, 安装VMWare.