WSL2 安装与配置

WSL2 安装与配置
abinng😶🌫️author: abinng date: 2026-01-31 10:59
createDate:2026-01-31 10:59
前言
本文将手把手带着安装WSL2环境并运行Ubuntu 22.04,安心食用即可,跟完教程即可优雅地使用WSL2进行一些实操,如操作系统实验、简单的基于linux的开发。
本文详细配图,包你成功安装
为什么选择WSL2
二字一词:方便
为什么方便?接下来引用掘金中一文(作者:coderlee)的介绍:
点击展开
在选择运行 Linux 环境时,WSL2(Windows Subsystem for Linux 2)与 VirtualBox、VMware 等传统虚拟机相比具有显著优势。以下是选择 WSL2 的主要理由:
1. 更高的性能和资源效率
- 轻量级虚拟化:WSL2 使用 Hyper-V 架构的轻量级虚拟机,相比 VirtualBox 的完整虚拟化,占用更少的 CPU 和内存资源。
- 动态内存管理:WSL2 支持动态分配内存,并在空闲时通过
autoMemoryReclaim释放内存,而 VirtualBox 通常需要预分配固定内存。 - 快速启动:WSL2 可在数秒内启动 Linux 环境,而 VirtualBox 启动完整虚拟机通常需要更长时间。
2. 无缝的 Windows 与 Linux 集成
- 文件系统互操作:WSL2 支持直接访问 Windows
文件系统(通过
/mnt/),并提供高性能的文件共享,而 VirtualBox 需要配置共享文件夹,性能较低。 - 命令行集成:WSL2 可在 Windows Terminal 或 PowerShell 中直接运行 Linux 命令,无需切换到虚拟机界面。
- 端口转发:WSL2 支持
localhost端口无缝转发,方便开发和测试,而 VirtualBox 需要复杂网络配置。
3. 开发体验优化
- 工具链支持:WSL2 与 Visual Studio Code、Docker Desktop 等开发工具深度集成,适合现代化开发工作流。VirtualBox 需额外配置以实现类似功能。
- WSLg(GUI 支持):Windows 11 的 WSL2 支持运行 Linux GUI 应用(如 Firefox),无需额外安装 X 服务器,VirtualBox 则需要手动配置图形界面。
- 嵌套虚拟化:WSL2 支持在 Linux 环境中运行 Docker 或其他虚拟化工具,适合云原生开发,而 VirtualBox 的嵌套虚拟化配置复杂。
4. 简化的管理与更新
- 一键安装:WSL2 可通过
wsl --install快速部署,相比 VirtualBox 的繁琐安装和配置过程更简单。 - 自动更新:WSL2 内核通过 Windows Update
自动更新,Ubuntu 发行版通过
apt维护,管理成本低。VirtualBox 需要手动更新虚拟机镜像和扩展包。 - 存储优化:WSL2
使用虚拟硬盘(
.vhdx)动态扩展存储,占用空间小,而 VirtualBox 虚拟机镜像通常占用较大固定空间。
5. 微软官方支持
- WSL2 是微软官方产品,与 Windows 生态高度兼容,社区活跃,更新频繁。VirtualBox 虽功能强大,但依赖第三方维护,可能存在兼容性问题。
- WSL2 提供详细的官方文档和 GitHub 社区支持,问题排查更便捷。
适用场景对比
| 特性 | WSL2 | VirtualBox |
|---|---|---|
| 性能 | 高(轻量级虚拟化) | 中等(完整虚拟化) |
| Windows 集成 | 无缝(文件、端口、命令行) | 有限(需共享文件夹、网络配置) |
| GUI 支持 | 原生支持(Windows 11 WSLg) | 需要额外配置 X 服务器或图形界面 |
| 开发工具集成 | 优秀(VS Code、Docker 等) | 一般(需手动配置) |
| 管理复杂度 | 低(一键安装、自动更新) | 高(手动配置、更新) |
| 存储占用 | 动态扩展(小) | 固定分配(较大) |
什么时候选择 VirtualBox、VMware?
- 需要运行完整的 Linux 桌面环境(如 GNOME、KDE)或非 Ubuntu 发行版。
- 需要模拟复杂网络拓扑或多虚拟机环境。
结论:对于开发者、学生或需要在 Windows 上快速运行 Linux 环境的个人,WSL2 提供更高效、便捷的体验。对于需要完整虚拟化或特殊硬件模拟的场景,VirtualBox 可能更适合。
安装 WSL2
这里我使用一键安装,这个很方便
按下win+x,选择终端管理员,输入
1 | wsl --install |
如果你第一次直接使用,大概率会出现如下图所示的情形,按照图中的来就好:
之后重启电脑…
好了,欢迎回来,我们继续:还是打开终端管理员,输入
1 | wsl --version |
之后显示(或类似)下图就对了:
保险一点,将wsl2设置为wsl默认版本
1 | wsl --set-default-version 2 |
安装Ubuntu 22.04
你可以提前看看你是否已经安装有某个linux版本了
1 | wsl --list --verbose |
若显示:适用于 Linux 的 Windows 子系统没有已安装的分发,则说明目前还没有安装任何具体的
Linux 发行版(比如 Ubuntu、Debian 等)到 WSL 中
这里我在命令行中安装,输入
1 | wsl --install -d Ubuntu-22.04 |
Enter new UNIX username: (输入一个新的用户名,全小写) New password: (输入密码,注意:Linux 输入密码时屏幕上不会显示任何星号或圆点,是看不见的,输入完直接回车即可) Retype new password: (再次输入密码确认)
下图中的位置也可以看到,可以从这里启动
这下就安装好了,大家可以试试自己熟悉的命令
自定义存储位置
安装了,那安装到哪了呀?有很多人都和我一样,想对每一次操作以及操作后的结果了如指掌。
一般情况下,如果是跟着上面的教程来的,路径就在C:\Users\<你的用户名>\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc
接下来我们将其迁移到D盘
1 | # 1. 停止 WSL |
接着我们启动试试:
1 | wsl |
或者从新增终端那里启动
配置代理
自动配置
按win键,在开始菜单搜索WSL Settings,之后进入网络设置,将网络模式调成Mirrored即可
配置改完后,必须彻底重启 WSL 才能生效。打开 PowerShell 运行:
1 | wsl --shutdown |
尝试curl
1 | curl -I https://www.google.com |
那么就可以通过 Windows 的代理自由访问互联网了
手动配置
上面的方式可能很方便,毕竟只用换一个网络模式,下面进行手动配置,更顺畅地使用
修改你的 ~/.bashrc:
1 | nano ~/.bashrc |
1 | # --- WSL Proxy (Mirrored Mode) --- |
保存并 source ~/.bashrc。
接下来就可以通过快捷命令进行代理的开启(proxy)和关闭(unproxy)了
先输入proxy,接着创建一个文件夹,cd进入并输入 wget www.google.com,
可以发现连接成功,至此大功告成。
用 sudo 指令的时候,要加上 -E 参数,意思是
“Preserve
Environment”(保留环境变量)。它会把你当前用户已经配好的代理设置带给
root 用户。例如:sudo -E apt update
如果不想每次都打 -E,或者发现 -E 偶尔不灵,最好的办法是专门给 apt 配置一个代理文件
1 | sudo nano /etc/apt/apt.conf.d/proxy.conf |
写入内容(镜像模式直接写 127.0.0.1):
1 | Acquire::http::Proxy "http://127.0.0.1:7897/"; |
按 Ctrl+O 回车保存,按 Ctrl+X 退出
以后就可以直接运行 sudo apt update 了
Windows 与 WSL2 的互通
既然我们已经把环境搭好了,那怎么把 Windows 的舒适(比如 GUI 工具)和 Linux 的强大(命令行工具)结合起来呢?WSL2 的互通性主要体现在以下几个方面,这也是它最迷人的地方。
1. 文件资源管理器的互通
这是最直观的。你不需要安装任何 FTP/SFTP 软件就可以在两个系统间传文件。
从 Windows 访问 Linux 文件:
打开 Windows
的“文件资源管理器”,在地址栏输入 \\wsl$ 并回车。你会看到你的 Ubuntu-22.04 文件夹,点进去就是
Linux 的根目录。
实操:
在 WSL 终端里,进入你想要查看的目录,输入以下命令:
1 | explorer.exe . |
注意后面有个点 .,代表当前目录。回车后,Windows
会直接弹出一个文件夹窗口,显示的正是你当前 Linux
终端所在的目录!在这里你可以像操作 Windows
文件一样进行复制、粘贴和编辑。
从 Linux 访问 Windows 文件:
WSL2 会自动把你的 Windows 磁盘挂载到 /mnt 目录下。
比如你想访问 Windows 的 D 盘:
1 | cd /mnt/d |
这样你就看到了 D 盘的所有文件。
2. VS Code 远程开发
这是我最推荐的使用方式,也是 WSL2 的灵魂所在。你可以在 Windows 上用 VS Code 写代码,但代码实际运行在 WSL2 的 Linux 环境里。
步骤:
- 在 Windows 上安装 Visual Studio Code。
- 在 VS Code 的扩展商店里搜索并安装 WSL 插件(Microsoft 出品)。
- 回到你的 WSL 终端,进入你的项目文件夹,输入:
1 | code . |
神奇的事情发生了:VS Code 会在 Windows
上启动,左下角会显示 WSL: Ubuntu-22.04。
此时,你使用的终端是 Linux 的 bash,安装的插件(如 Python、C++)也是运行在 Linux 里的,但你的操作界面却是原生流畅的 Windows 程序。
3. 网络服务互通 (Localhost)
如果你在 WSL2 里启动了一个 Web 服务,比如 Python 的简单服务器:
1 | python3 -m http.server 8000 |
你不需要去查 WSL 的 IP 地址,直接打开 Windows
的浏览器(Chrome/Edge),输入 http://localhost:8000 即可直接访问!
这对于 Web 开发来说方便得一批,就像在本地开发一样,没有任何割裂感。
补充建议:
- 剪贴板互通:你在 Windows 复制的文字,在 WSL 终端里右键即可粘贴;在 WSL 里选中的文字,也可以直接在 Windows 里粘贴。
- 混合命令:你甚至可以在 Linux 里调用 Windows
的程序,比如输入
notepad.exe test.txt,它会调用 Windows 的记事本打开 Linux 里的文件。 - 避坑指南:文件IO性能的小坑,尽量把你的项目代码放在 Linux
文件系统 (
\\wsl$\Ubuntu-22.04\home\你的用户名\...) 中,而不要放在 Windows 挂载盘 (/mnt/c/...) 中。- 原因:跨文件系统(Linux 读写
/mnt/c)速度非常慢,尤其是对于
node_modules这种大量小文件的场景,性能差距可能有 10 倍以上。
- 原因:跨文件系统(Linux 读写
/mnt/c)速度非常慢,尤其是对于
进阶:Docker Desktop 集成
很多同学用 WSL2 就是为了跑 Docker 的。以前在 Linux 里装 Docker 还要配各种 Daemon,现在有了 WSL2,直接在 Windows 上装 Docker Desktop。
为什么这么做?
Docker Desktop for Windows 会自动把 Docker 引擎运行在 WSL2 的 Linux
内核里,性能极高,而且你在 Windows 和 Ubuntu
里都能同时使用 docker 命令,数据是通的!
进阶:终端美化 (Oh My Zsh)
现在的终端黑底白字是不是有点枯燥?而且没有命令自动补全,效率不高。我们要把它变得酷炫又好用。我们将使用 zsh 加上 oh-my-zsh。
1. 安装 zsh
1 | sudo -E apt update |
2. 安装 Oh My Zsh
这里需要用到
git(用git --version检查),如果没有安装先 sudo -E apt install git。然后运行官方安装脚本(需要保持网络畅通,或者用我们上面配好的代理):
1 | sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" |
安装过程中会问你是否将 zsh 设置为默认
shell,输入 Y 并回车。
相当于用~/.zshrc而不是~/.bashrc
会发现你的命令提示符从原来的: abinng@Mycomputer:~$
变成了: ➜ ~
这说明 Zsh
已经生效了。可以尝试输入ls -la试试
注意: 如果你之前配置了代理在 .bashrc 里,记得把那些代理配置复制一份到 .zshrc 的末尾,因为你现在用的是
zsh 了。
编辑 zsh 的配置文件:
1 | nano ~/.zshrc |
将下面的,新增到~/.zshrc后面
1 | # --- WSL Proxy (Mirrored Mode) --- |
保存退出
(Ctrl+O, Enter, Ctrl+X),然后让配置生效:
1 | source ~/.zshrc |
3. 配置插件(效率起飞的关键)
我们要安装两个神器插件:
zsh-autosuggestions:输入命令时会自动提示你以前输过的长命令。zsh-syntax-highlighting:命令输对了是绿色,输错了是红色。
1 | # 这个git clone在哪个目录运行都可以,建议还是先cd ~ |
4. 启用插件
编辑 zsh 的配置文件:
1 | nano ~/.zshrc |
找到 plugins=(git) 这一行,把它修改为:
1 | plugins=(git zsh-autosuggestions zsh-syntax-highlighting) |
保存退出
(Ctrl+O, Enter, Ctrl+X),然后让配置生效:
1 | source ~/.zshrc |
现在随便敲几个命令试试,是不是感觉丝般顺滑?
会自动提示你以前输过的长命令、命令输对了是绿色,输错了是红色
最后
好了,现在可以去进行使用了,利用wsl方便的linux系统进行操作系统实验、docker镜像使用等操作了

















