Windows 如何装 WSL 教程指南
- 1Windows 如何装 WSL 教程指南本文
- 2WSL 3.0.3 安装排障实录:从 MSI 损坏到网络崩溃
从零开始,在 Windows 上装一个真正的 Linux。不需要双系统、不需要虚拟机、不需要 U 盘,重启一次就能用。
全文照着复制粘贴命令即可,每一步都标了在哪运行。
在开始之前:WSL 是什么?
WSL(Windows Subsystem for Linux)是微软官方在 Windows 里内建的 Linux 环境。
你可以把它理解成:Windows 桌面上开了一扇门,门后是一个完整的 Linux 系统。
- 它能跑真正的 Linux 程序(gcc、python、nginx、docker……)
- 它能直接读写你 Windows 上的文件
- 它和 Windows 共享剪贴板、网络、端口
- 开机即用,几秒启动,不吃多少资源
你为什么需要它?
| 场景 | 在 Windows 上的痛苦 | 在 WSL 里 |
|---|---|---|
| 学 Python / AI | 装包一堆报错、路径各种坑 | 和服务器环境一模一样 |
| 前端开发 | npm 依赖在 Windows 上经常出问题 | 原生 Linux 环境,零折腾 |
| 学 Linux 命令 | 得先装虚拟机 | 直接就有 |
| 部署 / 运维 | 本地和服务器不一致 | 完全一致的环境 |
| 跑 Docker | Docker Desktop 又重又慢 | 直接原生跑 |
一句话:如果你要跟服务器、开源项目、编程打交道,WSL 是目前 Windows 上最舒服的方案。
第 0 步:确认你的电脑能装
检查 Windows 版本
按 Win + R,输入 winver,回车。
- Windows 11(任何版本)→ 可以装
- Windows 10 → 需要版本号 2004 或更高(内部版本 19041+)
- Windows 10 1909 及更早 → 太老,建议先升级系统
也可以按 Win + R → 输入 cmd → 回车,执行:
ver看到 10.0.19041 以上的数字就行。
检查虚拟化是否开启
任务管理器(Ctrl + Shift + Esc)→ 点「性能」→ 点「CPU」→ 右下角看:
虚拟化:已启用 ✅
如果是”已禁用”,需要进 BIOS 开启(开机狂按 F2 / Del / F10,找 Intel Virtualization Technology 或 SVM Mode,设为 Enable)。
2015 年后的电脑基本都默认开着虚拟化,大概率你不用管这一步。
第 1 步:安装(一条命令)
1.1 打开管理员终端
- 点开始菜单(或按
Win) - 输入
PowerShell - 在搜索结果上右键 → 点「以管理员身份运行」
会弹出一个蓝色窗口。这一步很重要 —— 不管理员运行会权限不足。
1.2 执行安装命令
在蓝色窗口里复制粘贴下面这行,然后回车:
wsl --install在 PowerShell 窗口里直接右键即可粘贴(或者 Ctrl + V)。
它会自动做三件事:
- 开启「适用于 Linux 的 Windows 子系统」功能
- 开启「虚拟机平台」功能
- 下载并安装 Ubuntu(默认发行版,最适合新手)
过程大概几分钟,取决于网速。你会看到进度条。
1.3 重启电脑
装完它通常会提示重启。必须重启,功能才生效。
shutdown /r /t 0如果没自动重启,就手动执行上面这行,或者正常重启一次。
1.4 想装别的发行版?
默认装的是 Ubuntu。想看看还有哪些可选:
wsl --list --online会列出 Debian、Kali、openSUSE 等。指定安装:
wsl --install -d Ubuntu-24.04推荐新手用 Ubuntu,教程最多、遇到问题最好搜。Debian 更精简,Kali 是安全测试专用,不适合日常开发。
第 2 步:第一次启动,创建账号
重启之后,Ubuntu 会自动弹出一个黑色窗口(如果没有,就去开始菜单找 Ubuntu 点开)。
第一次启动会初始化,然后让你设置账号:
Installing, this may take a few minutes...Please create a default UNIX user account.Enter new UNIX username: _输入用户名(小写字母,别用中文和空格):
Enter new UNIX username: wNew password: _输入密码 —— 然后你会慌,因为屏幕上什么都不显示。
这是 Linux 的传统:输密码时故意不显示任何字符(连 * 都没有),防止别人看到长度。
你照常输入就行,输完按回车。 别以为键盘坏了。
输两遍确认后,看到类似这样的提示符,就成功了:
w@moyu:~$🎉 恭喜,你现在有一个 Linux 了。
这个提示符的含义:
w @ moyu : ~ $│ │ │ └─ $ 表示普通用户(# 表示管理员)│ │ └─ ~ 表示当前在家目录│ └─ 主机名(你的电脑名)└─ 用户名第 3 步:换国内软件源(必做)
Linux 装软件靠 apt,默认从国外服务器下载 —— 在国内会非常慢甚至连不上。换成国内镜像,速度能快几十倍。
在 WSL 的黑色窗口里执行:
sudo cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak
sudo sed -i 's|http://archive.ubuntu.com|https://mirrors.aliyun.com|g; s|http://security.ubuntu.com|https://mirrors.aliyun.com|g' /etc/apt/sources.list.d/ubuntu.sources输入 sudo 开头的命令会要你输密码 —— 就是刚才设的那个,同样不显示,输完回车。
然后更新软件列表:
sudo apt update && sudo apt upgrade -y看到一串下载、最后回到提示符,就 OK 了。
其他可选镜像(挑一个用就行):
| 镜像 | 地址 |
|---|---|
| 阿里云 | https://mirrors.aliyun.com/ubuntu |
| 清华 | https://mirrors.tuna.tsinghua.edu.cn/ubuntu |
| 中科大 | https://mirrors.ustc.edu.cn/ubuntu |
第 4 步:搞懂文件系统(新手最容易踩的坑)
这是最重要的一节,很多人在这里浪费时间。
两套文件系统
| 位置 | 路径 | 说明 |
|---|---|---|
| Linux 自己的地盘 | /home/w/、~/ | 速度快,权限正常 |
| Windows 的盘 | /mnt/c/、/mnt/d/ | 就是你的 C 盘、D 盘 |
比如你的 Windows 桌面,在 WSL 里是:
cd /mnt/c/Users/你的用户名/Desktop反过来,在 Windows 上访问 Linux 的文件:
- 打开「此电脑」,左侧会看到一个 Linux 图标(企鹅 🐧),点进去就是
- 或者地址栏输入
\\wsl$\Ubuntu-24.04
铁律:项目文件放在 Linux 自己的目录里
# ✅ 正确 —— 放这里,速度快、权限正常cd ~mkdir myprojectcd myproject
# ❌ 错误 —— 别把项目放 /mnt/c 下跑cd /mnt/c/Users/w/myproject # 慢很多,还会遇到文件权限 bug为什么? /mnt/c 是网络共享的方式访问 Windows 文件的,大量小文件读写(比如 npm install、编译代码)会慢 5~10 倍,还可能出诡异的权限问题。
日常用法:代码放 Linux 里,用 VS Code 编辑,需要时再复制回 Windows。
第 5 步:装常用工具
一条命令装上开发中常用的东西:
sudo apt install -y build-essential git curl wget vim unzip zip htop net-tools分别是:
| 软件 | 用途 |
|---|---|
build-essential | C/C++ 编译器,很多软件装的时候要用到 |
git | 版本管理,必装 |
curl / wget | 下载文件、测试接口 |
vim | 终端里的文本编辑器 |
unzip / zip | 压缩解压 |
htop | 任务管理器(比 Windows 的还好看) |
net-tools | ifconfig 等网络命令 |
试试 htop:
htop按 q 退出。
装 Python 环境(可选但推荐)
Ubuntu 自带 Python 3。验证一下:
python3 --version推荐再装个现代的包管理工具 uv(比 pip 快 10~100 倍):
curl -LsSf https://astral.sh/uv/install.sh | sh装完重启终端,就可以用 uv 管理 Python 包了。
第 6 步:让 WSL 能上网、能用代理
6.1 网络模式(新手可以先跳过)
WSL 默认的 NAT 模式已经能用 —— WSL 有自己的 IP,能正常上网、装软件包。这一节你可以先跳过去,等确实需要时再回来调。
网上很多教程推荐开「镜像模式」(networkingMode=mirrored)。
但如果你装了 Clash / v2ray 这类本地代理软件,千万别开。
镜像模式的网络初始化依赖 Windows 代理状态,开关一次梯子就可能导致下次启动报错
0x8007054f 并退化成”无网卡”。踩过这个坑的完整记录见排障篇。
如果要用,先建配置文件。在 Windows 上打开「此电脑」→ 地址栏输入 %USERPROFILE% → 回车,在这个文件夹里新建文件 .wslconfig(注意开头有个点)。
如果提示”必须输入文件名”,用记事本新建:右键 → 新建 → 文本文档 → 重命名为 .wslconfig.(首尾各一个点,Windows 会自动去掉末尾的点)。
稳妥的推荐配置:
[wsl2]
# NAT 是默认模式,写不写都一样;关键是别开 autoProxynetworkingMode=natautoProxy=false
# 通过 Windows 解析 DNS(NAT 下有效,能修不少奇怪的解析失败)dnsTunneling=true
# 资源限制(按你的电脑配置调整)memory=8GBprocessors=8swap=4GB
[experimental]
# 空闲时把内存还给 WindowsautoMemoryReclaim=gradual
# 防止虚拟磁盘只增不减sparseVhd=true保存后在 PowerShell 里执行(让配置生效):
wsl --shutdown然后重新打开 Ubuntu,配置就生效了。
6.2 让 WSL 用上梯子
NAT 模式下 WSL 有独立 IP,127.0.0.1 指的是它自己,够不到 Windows 上的代理。所以要两步:
- 在你的代理软件里打开「允许局域网连接 / Allow LAN」,让它监听
0.0.0.0:7897而不只是127.0.0.1 - WSL 里放一段自动探测脚本:
cat >> ~/.bashrc <<'EOF'
# ---- WSL proxy (auto-detect) ----wsl_proxy() { GW=$(ip route show default 2>/dev/null | awk '{print $3}') if [ -n "$GW" ] && timeout 1 bash -c "</dev/tcp/$GW/7897" 2>/dev/null; then export http_proxy="http://$GW:7897" export https_proxy="http://$GW:7897" export no_proxy="localhost,127.0.0.1,192.168.*,10.*,172.16.*,172.17.*,172.18.*,\172.19.*,172.20.*,172.21.*,172.22.*,172.23.*,172.24.*,172.25.*,172.26.*,172.27.*,\172.28.*,172.29.*,172.30.*,172.31.*,mirrors.aliyun.com,mirrors.tuna.tsinghua.edu.cn" echo "[proxy] on -> $GW:7897" else unset http_proxy https_proxy no_proxy echo "[proxy] off (梯子没开,国内源直连)" fi}wsl_proxyEOF
source ~/.bashrc这段脚本会探测网关的 7897 端口是否可达,梯子开着才启用代理,关了就自动取消。好处是关梯子不会让 WSL 变残废 —— 国内镜像源本来就不需要代理。
验证:
$ curl -sI https://github.com --max-time 10 | head -1HTTP/1.1 200 Connection established # 梯子开着时不确定你的代理端口?Windows 上「设置 → 网络和 Internet → 代理」里能看到,一般是 7890 或 7897。脚本里的 7897 换成你自己的端口即可。
如果启动时报 0x8007054f 或”无法配置网络”,说明 Windows 网络栈有问题,管理员 PowerShell 执行 netsh winsock reset + 重启即可。详见排障篇。
第 7 步:装个好用的终端
系统自带的终端比较朴素。推荐装 Windows Terminal:
- 打开 Microsoft Store
- 搜
Windows Terminal - 点安装(免费)
装好后它会自动识别你的 Ubuntu,一次开启多个标签页(PowerShell、Ubuntu 并存),支持分屏、主题、字体美化。
Windows 11 其实自带 Windows Terminal,开始菜单搜一下可能已经有了。
第 8 步:用 VS Code 写代码(强烈推荐)
这是 WSL 最爽的用法之一。
- Windows 上正常安装 VS Code
- 打开 VS Code,装扩展 WSL(搜
WSL,微软官方那个) - 在 WSL 终端里,进入你的项目目录,执行:
cd ~/myprojectcode .第一次会自动在 WSL 里装 VS Code 服务端,之后就能:
- 用 Windows 的 VS Code 界面
- 编辑 Linux 里的文件
- 终端、调试、Git 全都在 Linux 环境里跑
这是目前 Windows 上做开发最舒服的组合,强烈建议试试。
第 9 步:开启 systemd(想跑服务的话)
如果你想在 WSL 里跑 Docker、数据库、SSH 之类的常驻服务,需要开 systemd。
在 WSL 里执行:
sudo tee /etc/wsl.conf > /dev/null <<'EOF'[boot]systemd=trueEOF然后在 PowerShell 里:
wsl --shutdown重新打开 Ubuntu,验证:
systemctl status能正常显示就说明开了。
常用命令速查
Windows 端(PowerShell)
| 命令 | 作用 |
|---|---|
wsl | 进入默认的 Linux |
wsl ~ | 进入并定位到家目录 |
wsl -l -v | 列出所有发行版及状态 |
wsl --shutdown | 关闭所有 WSL(改配置后必做) |
wsl --update | 更新 WSL 内核 |
wsl --status | 查看 WSL 状态 |
wsl --list --online | 查看可安装的发行版 |
wsl --unregister Ubuntu-24.04 | 彻底删除某个发行版(数据全没) |
wsl --export Ubuntu-24.04 backup.tar | 备份 |
wsl --import Ubuntu-24.04 D:\wsl backup.tar | 从备份恢复 |
Linux 端(Ubuntu 窗口)
| 命令 | 作用 |
|---|---|
pwd | 我在哪个目录 |
ls | 列出当前目录内容 |
ls -la | 详细列出(含隐藏文件) |
cd 目录名 | 进入目录 |
cd .. | 返回上一级 |
cd ~ | 回家目录 |
mkdir 名字 | 新建文件夹 |
rm -rf 名字 | 强制删除(慎用,不进回收站) |
cp a b / mv a b | 复制 / 移动 |
cat 文件名 | 查看文件内容 |
sudo 命令 | 以管理员身份执行 |
apt install 软件名 | 装软件 |
history | 看历史命令 |
clear | 清屏(Ctrl + L 同效) |
explorer.exe . | 用 Windows 资源管理器打开当前目录 |
code . | 用 VS Code 打开当前目录 |
常见问题 FAQ
输密码时屏幕没反应,是不是卡了?
没有,正常输入即可。Linux 输密码故意不显示任何字符,防止别人看到密码长度。输完回车就行。
sudo 提示 “user is not in the sudoers file”?
说明你用的是 root 或者账号权限有问题。正常创建的账号都能 sudo。如果进了 root(提示符是 #),用 adduser 用户名 再 usermod -aG sudo 用户名 建个新号。
想改默认登录账号?
在 PowerShell 里:
ubuntu2404.exe config --default-user 你的用户名WSL 太占内存怎么办?
.wslconfig 里加 memory=4GB(按需要调)。另外 autoMemoryReclaim=gradual 会让空闲内存自动还给 Windows。
不用 WSL 时在 PowerShell 执行 wsl --shutdown 可以完全释放内存。
怎么卸载 WSL?
# 删除某个发行版(数据一并删除)wsl --unregister Ubuntu-24.04
# 完全移除 WSL 功能wsl --shutdowndism.exe /online /disable-feature /featurename:Microsoft-Windows-Subsystem-Linuxdism.exe /online /disable-feature /featurename:VirtualMachinePlatform然后去「设置 → 应用」卸载 Ubuntu 应用。
WSL 里的虚拟硬盘太大,能瘦身吗?
能。.wslconfig 加 sparseVhd=true 后,再用:
wsl --shutdownOptimize-VHD -Path "$env:LOCALAPPDATA\Packages\*Ubuntu*\LocalState\ext4.vhdx" -Mode Full能跑 Linux 图形界面程序吗?
Windows 11 可以。 直接装了就能用,WSL 会自动转发到 Windows 桌面:
sudo apt install -y geditgedit会弹出一个真正的 Linux 窗口应用在 Windows 桌面上。这叫 WSLg。
能跑 Docker 吗?
两种方案:
- 装 Docker Desktop,设置里开启 “Use the WSL 2 based engine”(最省事)
- 在 WSL 里直接装
docker-ce(需要先开 systemd)
新手推荐方案 1。
命令在 PowerShell 里报错”无法识别”?
你大概把 Linux 命令粘到 Windows 里了。 ls、cat、grep、head、env 这些在 PowerShell 里不存在。
- 蓝色窗口(PowerShell)→ 跑
wsl、dism、netsh这些 - 黑色窗口(Ubuntu)→ 跑
apt、cd、ls、curl这些
这是新手最常见的错误,没有之一。
下一步
现在你有一个能用的 Linux 了。推荐按这个顺序玩下去:
- 熟悉命令行 —— 试试
ls、cd、pwd、mkdir,别怕,删不坏系统 - 装 VS Code + WSL 扩展 —— 体验真正的开发环境
- 跑一个 Python / Node 项目 —— 感受和 Windows 原生开发的差别
- 学 Git ——
git clone一个开源项目下来跑跑看
遇到问题别慌,错误信息复制去搜,WSL 用户量大,基本都有人踩过。
装不上或者网络出问题?看排障篇,那里记录了六个坑的完整排查过程。
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!














