Win11 下的完美 Linux 生产力环境搭建:WSL2 + VS Code 配置全指南
在 Windows 11 上安装 Linux 子系统(WSL2)已经大幅简化。但这并不意味着你可以一路回车毫无阻碍。安装过程的重启逻辑、网络proxy的隔阂、内存泄露……这些坑依然存在。
这篇指南按照真实的操作逻辑编写,不仅教你“怎么装”,更重要的是教你“怎么确认装对了”以及“遇到报错怎么办”。
准备工作:确认硬件虚拟化(极其重要的第一步)
这是无数新手栽跟头的第一步。WSL2 依赖虚拟化技术,如果没开,后面的命令全都会报错。
-
操作命令 / 动作:
按下Ctrl + Shift + Esc打开任务管理器,点击“性能”选项卡,选中“CPU”。在右下角的信息面板中,查看“虚拟化”。 -
验证标准:
状态必须显示为 已启用。
**踩坑预警:**如果显示“已禁用”,请重启电脑进入 BIOS,开启
Intel VT-x(Intel)或SVM Mode(AMD)。
第一步:启用 WSL 并安装默认内核
以管理员身份运行 PowerShell。
-
操作命令:
wsl --install --no-distribution -
验证命令:
wsl --status -
验证标准:
输出信息中应包含“默认版本:2”。这意味着核心组件就绪。如果报错,请运行wsl --update然后重启电脑。
第二步:安装指定版本的 Linux 发行版
继续在 PowerShell 中操作。如果你指定了版本(例如 24.04),系统大概率会要求你先重启一次电脑来应用前面的 WSL 组件。
- 操作命令(以 Ubuntu 24.04 为例):
wsl --install -d Ubuntu-24.04
真实运行场景还原:
如果系统提示需要重启,请乖乖重启电脑。重启后再次打开 PowerShell 运行上述命令,你将会看到类似如下的完整流程输出:
正在下载: Ubuntu 24.04 LTS 正在安装: Ubuntu 24.04 LTS 已成功安装分发。可以通过 “wsl.exe -d Ubuntu-24.04” 启动它 正在启动 Ubuntu-24.04... wsl: 检测到 localhost proxy配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost proxy。 Provisioning the new WSL instance Ubuntu-24.04 This might take a while... Create a default Unix user account: xy <-- (在这里输入你想要的用户名并回车) New password: <-- (输入密码,屏幕上不会显示,盲打完回车) Retype new password: <-- (再次确认密码) passwd: password updated successfully To run a command as administrator (user "root"), use "sudo <command>". See "man sudo_root" for details. xy@DESKTOP-XXXXXXX:/mnt/c/Users/XY$注意输出中的那句警告(
检测到 localhost proxy配置...)。这说明你的 Windows 上挂了proxy,但由于 WSL 默认处于 NAT 隔离网络中,这个proxy在 Linux 里并没有生效。我们会在第四步完美解决这个问题。
第三步:如何关闭、重启与再次进入 WSL
在日常使用中,你经常需要重启 WSL,所以必须掌握如何重新进入它。
-
关闭当前的 WSL 实例(回到 PowerShell 中执行):
wsl --shutdown -
重新进入 WSL 的三种方法:
- 最快的方法: 直接在 PowerShell 里敲入
wsl并回车,就会直接进入默认的 Linux 系统。 - 指定版本法: 运行
wsl -d Ubuntu-24.04,适用于安装了多个 Linux 版本的情况。 - 图形化方法: 打开 Windows 开始菜单,搜索“Ubuntu 24.04”,点击那个带企鹅图标的应用即可弹出一个专用的终端窗口。
- 最快的方法: 直接在 PowerShell 里敲入
第四步:核心优化 —— 限制内存占用与打通proxy网络
这是 WSL2 最关键的配置。我们要解决两个最大的痛点:内存狂飙 和 网络proxy不通。最新的 Win11 允许我们开启“镜像网络”来完美解决proxy问题。
-
操作命令:
在 Windows 下按下Win + R,输入%USERPROFILE%回车,进入你的用户主目录。新建一个文本文档,重命名为
.wslconfig(注意前面有个小数点,且去掉.txt隐藏后缀)。用记事本打开,写入以下内容:
[wsl2] # 限制内存占用,建议设为物理内存的 1/3 或 1/2,防止 Windows 卡死 memory=8GB # 限制 CPU 核心数 processors=4 # 限制交换空间 swap=2GB # 开启镜像网络模式(Win11 22H2及以上独占功能) networkingMode=mirrored # 自动同步 Windows 的proxy设置和 DNS autoProxy=true dnsTunneling=true保存后,在 PowerShell 中执行
wsl --shutdown,然后再次输入wsl启动它使配置生效。 -
验证内存限制: 在 Ubuntu 内部执行
free -h,查看Mem:的total列,是否接近你设置的 8GB。 -
验证网络proxy:
- 确保你的 Windows 端 proxy已开启并生效。
- 在 Ubuntu 终端内执行:
curl ipinfo.io - 如果返回的 IP 信息是你proxy节点的海外 IP,恭喜你,你的 WSL2 已经完美接管了宿主机的proxy网络,那条“不支持 localhost proxy”的报错也将彻底消失。以后在 Linux 里装任何库、拉取 GitHub 代码,都如丝般顺滑。
第五步:验证 Windows 与 Linux 的文件互通
-
在 Ubuntu 中访问 Windows 硬盘:
cd /mnt/c ls你能看到 C 盘的所有文件。
-
在 Windows 中访问 Linux 根目录:
打开 Windows 的文件资源管理器,在地址栏输入\\wsl$回车。
你能看到一个名为Ubuntu-24.04的网络驱动器。
终极建议: 强烈建议将日常开发的代码和项目直接存放在 Linux 的文件系统(即
\\wsl$\Ubuntu-24.04\home\xy)中,而不是 Windows 的/mnt/c下。跨越文件系统的 I/O 读写性能极差,会导致执行脚本或编译代码时变得奇慢无比。
第六步:在 Windows 的 VS Code 中优雅地写 Linux 代码
既然系统和网络都已经配置到最完美的状态,接下来就是搭建生产力环境了。我们不需要在 Ubuntu 里安装任何图形化桌面,而是直接用 Windows 上的 VS Code “远程穿透”到 WSL 内部。
1. 安装微软官方“外挂”插件
- 操作动作(在 Windows 的 VS Code 中):
- 打开你在 Windows 11 上安装的 VS Code。
- 点击左侧边栏的“扩展”图标(或按下
Ctrl + Shift + X)。 - 在搜索框中输入
WSL。 - 找到由 Microsoft 官方发布的名为 WSL 的插件(以前叫 Remote - WSL),点击安装。
2. 从 Linux 唤醒 VS Code
安装完插件后,我们回到 Ubuntu 终端。假设你想在 Linux 系统里新建一个项目并开始敲代码。
- 操作命令(在 Ubuntu 终端中):
# 1. 确保你处在 Linux 的主目录下(~ 代表 /home/xy) cd ~ # 2. 创建一个名为 my-project 的代码文件夹 mkdir my-project # 3. 进入该文件夹 cd my-project # 4. 魔法指令:用 VS Code 打开当前目录(注意 code 和 . 之间有个空格) code .
运行场景还原:
第一次执行
code .时,Ubuntu 终端里会提示Installing VS Code Server for x64等字样。这是因为 VS Code 正在悄悄往你的 Ubuntu 里塞入一个后端服务。等待几十秒下载完成后,Windows 上会自动弹出一个崭新的 VS Code 窗口。
3. 如何验证连接成功?
在这个新弹出的 VS Code 窗口中,你需要进行两次确认:
-
验证标准 1(看左下角): 窗口最左下角会有一个蓝色(或绿色)的标签块,上面清晰地写着
WSL: Ubuntu-24.04。这就证明当前的 VS Code 已经成功“附体”到了 Linux 中。 -
验证标准 2(看内置终端): 在 VS Code 中按下快捷键
Ctrl + ~(波浪号键)打开内置终端。你会发现终端默认的 prompt 是xy@DESKTOP-XXXXXXX:~/my-project$,这是一个原生的 bash 环境,可以直接执行ls、apt等 Linux 命令,彻底告别 PowerShell。
🚨 踩坑预警:VS Code 的“精神分裂”机制
这是很多新手初次使用 WSL 开发时最容易懵圈、也是最容易导致代码标红报错的地方。
当你通过 WSL 模式打开 VS Code 时,VS Code 会把自身“劈成两半”:
-
UI 端(跑在 Windows 上): 负责界面的展示、你的个性化主题、快捷键。
-
Server 端(跑在 Ubuntu 里): 负责代码的读取、执行、语法检查、代码补全。
最大的坑点在于:你的扩展插件也是分两边安装的!
假设你要写 Python 或 JavaScript,你在 Windows 环境下的 VS Code 里早就装好了相关的语法提示插件。但当你进入 WSL 模式后,你会发现代码没有高亮提示了。
-
解决办法: 打开 VS Code 的“扩展”面板,你会发现列表被分成了两半:
本地 - 已安装和WSL: UBUNTU-24.04 - 已安装。 -
你需要在列表里找到那些辅助敲代码的插件(比如 Python、C/C++、ESLint、Prettier 等),它们旁边会多出一个蓝色的按钮写着
在 WSL: Ubuntu-24.04 中安装。点击安装,它们才能在 Linux 环境中生效。
最后再次强调:
享受这种开发模式的前提,是你一定要把项目文件夹建在 Linux 的文件系统中(比如
~/my-project)。千万不要在 WSL 终端里cd /mnt/c/Users/XY/Desktop然后code .,跨文件系统读取会让你体验到什么叫“敲一个字母卡一秒”。
21万+

被折叠的 条评论
为什么被折叠?



