视频加载失败

Windows 如何装 WSL 教程指南

3536 字
18 分钟
Windows 如何装 WSL 教程指南
  1. 1Windows 如何装 WSL 教程指南本文
  2. 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 命令得先装虚拟机直接就有
部署 / 运维本地和服务器不一致完全一致的环境
跑 DockerDocker Desktop 又重又慢直接原生跑
Tip

一句话:如果你要跟服务器、开源项目、编程打交道,WSL 是目前 Windows 上最舒服的方案。

第 0 步:确认你的电脑能装#

检查 Windows 版本#

按 Win + R,输入 winver,回车。

  • Windows 11(任何版本)→ 可以装
  • Windows 10 → 需要版本号 2004 或更高(内部版本 19041+)
  • Windows 10 1909 及更早 → 太老,建议先升级系统

也可以按 Win + R → 输入 cmd → 回车,执行:

CMD
ver

看到 10.0.19041 以上的数字就行。

检查虚拟化是否开启#

任务管理器(Ctrl + Shift + Esc)→ 点「性能」→ 点「CPU」→ 右下角看:

虚拟化:已启用 ✅

如果是”已禁用”,需要进 BIOS 开启(开机狂按 F2 / Del / F10,找 Intel Virtualization Technology 或 SVM Mode,设为 Enable)。

Note

2015 年后的电脑基本都默认开着虚拟化,大概率你不用管这一步。

第 1 步:安装(一条命令)#

1.1 打开管理员终端#

  1. 点开始菜单(或按 Win)
  2. 输入 PowerShell
  3. 在搜索结果上右键 → 点「以管理员身份运行」

会弹出一个蓝色窗口。这一步很重要 —— 不管理员运行会权限不足。

1.2 执行安装命令#

在蓝色窗口里复制粘贴下面这行,然后回车:

PowerShell(管理员)
wsl --install
Tip

在 PowerShell 窗口里直接右键即可粘贴(或者 Ctrl + V)。

它会自动做三件事:

  1. 开启「适用于 Linux 的 Windows 子系统」功能
  2. 开启「虚拟机平台」功能
  3. 下载并安装 Ubuntu(默认发行版,最适合新手)

过程大概几分钟,取决于网速。你会看到进度条。

1.3 重启电脑#

装完它通常会提示重启。必须重启,功能才生效。

PowerShell(管理员)
shutdown /r /t 0

如果没自动重启,就手动执行上面这行,或者正常重启一次。

1.4 想装别的发行版?#

默认装的是 Ubuntu。想看看还有哪些可选:

PowerShell
wsl --list --online

会列出 Debian、Kali、openSUSE 等。指定安装:

PowerShell
wsl --install -d Ubuntu-24.04
Important

推荐新手用 Ubuntu,教程最多、遇到问题最好搜。Debian 更精简,Kali 是安全测试专用,不适合日常开发。

第 2 步:第一次启动,创建账号#

重启之后,Ubuntu 会自动弹出一个黑色窗口(如果没有,就去开始菜单找 Ubuntu 点开)。

第一次启动会初始化,然后让你设置账号:

Ubuntu
Installing, this may take a few minutes...
Please create a default UNIX user account.
Enter new UNIX username: _

输入用户名(小写字母,别用中文和空格):

Ubuntu
Enter new UNIX username: w
New password: _

输入密码 —— 然后你会慌,因为屏幕上什么都不显示。

Warning

这是 Linux 的传统:输密码时故意不显示任何字符(连 * 都没有),防止别人看到长度。 你照常输入就行,输完按回车。 别以为键盘坏了。

输两遍确认后,看到类似这样的提示符,就成功了:

Ubuntu
w@moyu:~$

🎉 恭喜,你现在有一个 Linux 了。

这个提示符的含义:

w @ moyu : ~ $
│ │ │ └─ $ 表示普通用户(# 表示管理员)
│ │ └─ ~ 表示当前在家目录
│ └─ 主机名(你的电脑名)
└─ 用户名

第 3 步:换国内软件源(必做)#

Linux 装软件靠 apt,默认从国外服务器下载 —— 在国内会非常慢甚至连不上。换成国内镜像,速度能快几十倍。

在 WSL 的黑色窗口里执行:

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
Note

输入 sudo 开头的命令会要你输密码 —— 就是刚才设的那个,同样不显示,输完回车。

然后更新软件列表:

WSL
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 步:搞懂文件系统(新手最容易踩的坑)#

Important

这是最重要的一节,很多人在这里浪费时间。

两套文件系统#

位置路径说明
Linux 自己的地盘/home/w/、~/速度快,权限正常
Windows 的盘/mnt/c/、/mnt/d/就是你的 C 盘、D 盘

比如你的 Windows 桌面,在 WSL 里是:

WSL
cd /mnt/c/Users/你的用户名/Desktop

反过来,在 Windows 上访问 Linux 的文件:

  • 打开「此电脑」,左侧会看到一个 Linux 图标(企鹅 🐧),点进去就是
  • 或者地址栏输入 \\wsl$\Ubuntu-24.04

铁律:项目文件放在 Linux 自己的目录里#

WSL
# ✅ 正确 —— 放这里,速度快、权限正常
cd ~
mkdir myproject
cd myproject
# ❌ 错误 —— 别把项目放 /mnt/c 下跑
cd /mnt/c/Users/w/myproject # 慢很多,还会遇到文件权限 bug
Warning

为什么? /mnt/c 是网络共享的方式访问 Windows 文件的,大量小文件读写(比如 npm install、编译代码)会慢 5~10 倍,还可能出诡异的权限问题。

日常用法:代码放 Linux 里,用 VS Code 编辑,需要时再复制回 Windows。

第 5 步:装常用工具#

一条命令装上开发中常用的东西:

WSL
sudo apt install -y build-essential git curl wget vim unzip zip htop net-tools

分别是:

软件用途
build-essentialC/C++ 编译器,很多软件装的时候要用到
git版本管理,必装
curl / wget下载文件、测试接口
vim终端里的文本编辑器
unzip / zip压缩解压
htop任务管理器(比 Windows 的还好看)
net-toolsifconfig 等网络命令

试试 htop:

WSL
htop

按 q 退出。

装 Python 环境(可选但推荐)#

Ubuntu 自带 Python 3。验证一下:

WSL
python3 --version

推荐再装个现代的包管理工具 uv(比 pip 快 10~100 倍):

WSL
curl -LsSf https://astral.sh/uv/install.sh | sh

装完重启终端,就可以用 uv 管理 Python 包了。

第 6 步:让 WSL 能上网、能用代理#

6.1 网络模式(新手可以先跳过)#

WSL 默认的 NAT 模式已经能用 —— WSL 有自己的 IP,能正常上网、装软件包。这一节你可以先跳过去,等确实需要时再回来调。

Warning

网上很多教程推荐开「镜像模式」(networkingMode=mirrored)。 但如果你装了 Clash / v2ray 这类本地代理软件,千万别开。 镜像模式的网络初始化依赖 Windows 代理状态,开关一次梯子就可能导致下次启动报错 0x8007054f 并退化成”无网卡”。踩过这个坑的完整记录见排障篇。

如果要用,先建配置文件。在 Windows 上打开「此电脑」→ 地址栏输入 %USERPROFILE% → 回车,在这个文件夹里新建文件 .wslconfig(注意开头有个点)。

Tip

如果提示”必须输入文件名”,用记事本新建:右键 → 新建 → 文本文档 → 重命名为 .wslconfig.(首尾各一个点,Windows 会自动去掉末尾的点)。

稳妥的推荐配置:

.wslconfig
[wsl2]
# NAT 是默认模式,写不写都一样;关键是别开 autoProxy
networkingMode=nat
autoProxy=false
# 通过 Windows 解析 DNS(NAT 下有效,能修不少奇怪的解析失败)
dnsTunneling=true
# 资源限制(按你的电脑配置调整)
memory=8GB
processors=8
swap=4GB
[experimental]
# 空闲时把内存还给 Windows
autoMemoryReclaim=gradual
# 防止虚拟磁盘只增不减
sparseVhd=true

保存后在 PowerShell 里执行(让配置生效):

PowerShell
wsl --shutdown

然后重新打开 Ubuntu,配置就生效了。

6.2 让 WSL 用上梯子#

NAT 模式下 WSL 有独立 IP,127.0.0.1 指的是它自己,够不到 Windows 上的代理。所以要两步:

  1. 在你的代理软件里打开「允许局域网连接 / Allow LAN」,让它监听 0.0.0.0:7897 而不只是 127.0.0.1
  2. WSL 里放一段自动探测脚本:
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_proxy
EOF
source ~/.bashrc

这段脚本会探测网关的 7897 端口是否可达,梯子开着才启用代理,关了就自动取消。好处是关梯子不会让 WSL 变残废 —— 国内镜像源本来就不需要代理。

验证:

WSL
$ curl -sI https://github.com --max-time 10 | head -1
HTTP/1.1 200 Connection established # 梯子开着时
Note

不确定你的代理端口?Windows 上「设置 → 网络和 Internet → 代理」里能看到,一般是 7890 或 7897。脚本里的 7897 换成你自己的端口即可。

Note

如果启动时报 0x8007054f 或”无法配置网络”,说明 Windows 网络栈有问题,管理员 PowerShell 执行 netsh winsock reset + 重启即可。详见排障篇。

第 7 步:装个好用的终端#

系统自带的终端比较朴素。推荐装 Windows Terminal:

  1. 打开 Microsoft Store
  2. 搜 Windows Terminal
  3. 点安装(免费)

装好后它会自动识别你的 Ubuntu,一次开启多个标签页(PowerShell、Ubuntu 并存),支持分屏、主题、字体美化。

Note

Windows 11 其实自带 Windows Terminal,开始菜单搜一下可能已经有了。

第 8 步:用 VS Code 写代码(强烈推荐)#

这是 WSL 最爽的用法之一。

  1. Windows 上正常安装 VS Code
  2. 打开 VS Code,装扩展 WSL(搜 WSL,微软官方那个)
  3. 在 WSL 终端里,进入你的项目目录,执行:
WSL
cd ~/myproject
code .

第一次会自动在 WSL 里装 VS Code 服务端,之后就能:

  • 用 Windows 的 VS Code 界面
  • 编辑 Linux 里的文件
  • 终端、调试、Git 全都在 Linux 环境里跑
Tip

这是目前 Windows 上做开发最舒服的组合,强烈建议试试。

第 9 步:开启 systemd(想跑服务的话)#

如果你想在 WSL 里跑 Docker、数据库、SSH 之类的常驻服务,需要开 systemd。

在 WSL 里执行:

WSL
sudo tee /etc/wsl.conf > /dev/null <<'EOF'
[boot]
systemd=true
EOF

然后在 PowerShell 里:

PowerShell
wsl --shutdown

重新打开 Ubuntu,验证:

WSL
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 里:

PowerShell
ubuntu2404.exe config --default-user 你的用户名

WSL 太占内存怎么办?#

.wslconfig 里加 memory=4GB(按需要调)。另外 autoMemoryReclaim=gradual 会让空闲内存自动还给 Windows。

不用 WSL 时在 PowerShell 执行 wsl --shutdown 可以完全释放内存。

怎么卸载 WSL?#

PowerShell(管理员)
# 删除某个发行版(数据一并删除)
wsl --unregister Ubuntu-24.04
# 完全移除 WSL 功能
wsl --shutdown
dism.exe /online /disable-feature /featurename:Microsoft-Windows-Subsystem-Linux
dism.exe /online /disable-feature /featurename:VirtualMachinePlatform

然后去「设置 → 应用」卸载 Ubuntu 应用。

WSL 里的虚拟硬盘太大,能瘦身吗?#

能。.wslconfig 加 sparseVhd=true 后,再用:

PowerShell(管理员)
wsl --shutdown
Optimize-VHD -Path "$env:LOCALAPPDATA\Packages\*Ubuntu*\LocalState\ext4.vhdx" -Mode Full

能跑 Linux 图形界面程序吗?#

Windows 11 可以。 直接装了就能用,WSL 会自动转发到 Windows 桌面:

WSL
sudo apt install -y gedit
gedit

会弹出一个真正的 Linux 窗口应用在 Windows 桌面上。这叫 WSLg。

能跑 Docker 吗?#

两种方案:

  1. 装 Docker Desktop,设置里开启 “Use the WSL 2 based engine”(最省事)
  2. 在 WSL 里直接装 docker-ce(需要先开 systemd)

新手推荐方案 1。

命令在 PowerShell 里报错”无法识别”?#

Caution

你大概把 Linux 命令粘到 Windows 里了。 ls、cat、grep、head、env 这些在 PowerShell 里不存在。

  • 蓝色窗口(PowerShell)→ 跑 wsl、dism、netsh 这些
  • 黑色窗口(Ubuntu)→ 跑 apt、cd、ls、curl 这些

这是新手最常见的错误,没有之一。

下一步#

现在你有一个能用的 Linux 了。推荐按这个顺序玩下去:

  1. 熟悉命令行 —— 试试 ls、cd、pwd、mkdir,别怕,删不坏系统
  2. 装 VS Code + WSL 扩展 —— 体验真正的开发环境
  3. 跑一个 Python / Node 项目 —— 感受和 Windows 原生开发的差别
  4. 学 Git —— git clone 一个开源项目下来跑跑看

遇到问题别慌,错误信息复制去搜,WSL 用户量大,基本都有人踩过。

装不上或者网络出问题?看排障篇,那里记录了六个坑的完整排查过程。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
Windows 如何装 WSL 教程指南
https://moyuspace.icu/posts/wsl-install-guide/
作者
沫雨
发布于
2026-10-17
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
沫雨
在雨与潮汐之间,保持温柔,也保持自己。银灰蓝与淡紫的目光,装着海的安静与不被定义的自由。
公告
欢迎来到沫雨的小窝!希望在这里能找到对你有用的东西。
分类
标签
最新动态
站点统计
文章
4
分类
2
标签
11
总字数
17,132
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
Local
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0
文章目录