引言
适用于 Linux 的 Windows 子系统(WSL)是 Windows 的一项功能,可用于在 Windows 计算机上运行 Linux 环境,而无需单独的虚拟机或双重启动。WSL 旨在为想要同时使用 Windows 和 Linux 的开发者提供无缝高效的体验。
一、安装 WSL
右键单击并选择'以管理员身份运行',在管理员模式下打开 PowerShell,输入 命令,然后重新启动计算机。
WSL 是 Windows 上运行 Linux 环境的工具。本指南介绍 WSL 安装方案,含自动安装及国内网络下手动导入 Ubuntu 镜像步骤。涉及更换清华源加速、配置 OpenSSH Server 实现 Xshell 远程连接,以及发行版管理、版本切换、文件互访等常用命令速查,助力开发者搭建双系统环境。

适用于 Linux 的 Windows 子系统(WSL)是 Windows 的一项功能,可用于在 Windows 计算机上运行 Linux 环境,而无需单独的虚拟机或双重启动。WSL 旨在为想要同时使用 Windows 和 Linux 的开发者提供无缝高效的体验。
右键单击并选择'以管理员身份运行',在管理员模式下打开 PowerShell,输入 命令,然后重新启动计算机。
wsl --installwsl --install
完成后在 PowerShell 下运行如下命令可以查看已经安装的 Linux 发行版:
wsl --list --verbose

但是,不出意外的话就要出意外了。 国内环境下,由于 GitHub 连接不稳定,应该是无法直接安装 Linux 系统。运行上述代码时会出现如下错误:
无法从'https://raw.githubusercontent.com/microsoft/WSL/master/distributions/DistributionInfo.json'提取列表分发。操作超时。 错误代码:Wsl/InstallDistro/WININET_E_TIMEOUT
出现上述问题则需要手动安装 Linux 发行版。
访问 Ubuntu 资源官网:https://releases.ubuntu.com/
这里选择下载 Ubuntu 24.04 LTS:

点进去之后找到 WSL image 并下载:

在 WSL 中导入并安装 Linux 发行版的命令语法如下:
wsl --import <发行版名称> <安装目录> <tar 或 wsl 包路径> [选项]
比如我在 PowerShell 中运行如下命令进行安装:
wsl --import Ubuntu-24.04 "D:\ProgramData\WSL\Ubuntu-24.04" "C:\Users\wyq15\Downloads\ubuntu-24.04.3-wsl-amd64.wsl" --version 2
完成后在 PowerShell 下运行如下命令可以查看已经安装完毕:
wsl --list --verbose

在 WSL 中安装的 Ubuntu 版本在使用 apt 安装软件时速度较慢,因此更换国内源,这里采取自动更换的方式,确保更换无误。
备份原始配置:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
如果换源后出问题,可随时恢复:
更换源代码如下:
UBUNTU_CODENAME=$(lsb_release -cs)
echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ $UBUNTU_CODENAME main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ $UBUNTU_CODENAME-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ $UBUNTU_CODENAME-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ $UBUNTU_CODENAME-security main restricted universe multiverse" | sudo tee /etc/apt/sources.list
更新软件包索引:
sudo apt clean # 清理旧缓存
sudo apt update # 从新源拉取软件列表
在正常使用时 PowerShell 感觉用的并不习惯,因此采用 Xshell 通过 SSH 远程控制。这里需要下载一些搭配使用的软件。

直接下载并安装就行了,这里就不过多赘述了。
wsl -d Ubuntu-24.04
sudo apt update
sudo apt install openssh-server -y
由于后续要编辑配置,我习惯使用 vim,因此这里也装个 vim:
sudo apt install vim -y

SSH 配置(关键!关键!关键!)
默认 SSH 端口是 22,但 Windows 可能已占用(如 Windows 自带的 OpenSSH 服务)。建议改为非冲突端口,例如 2222:sudo vim /etc/ssh/sshd_config
找到 #Port 22,修改为:
Port 2222

同时确保以下选项启用:
PermitRootLogin yes # 如果你想用 root 登录
PasswordAuthentication yes # 允许密码登录(Xshell 需要)


修改完后保存::wq。
sudo systemctl restart ssh

sudo systemctl enable ssh

sudo passwd

连接成功

当然可以!以下是一份 WSL(Windows Subsystem for Linux)常用命令速查清单,涵盖 管理发行版、启动/关闭、导入导出、版本切换、网络配置 等高频操作,适用于 WSL 1 和 WSL 2(以 PowerShell 或 CMD 为主)。
| 命令 | 说明 |
|---|---|
wsl -l | 列出已安装的发行版(简略) |
wsl -l -v | 列出所有发行版 + 状态 + WSL 版本(最常用✅) |
wsl --status | 查看 WSL 整体状态(内核版本、默认发行版等) |
wsl -d <名称> | 启动指定发行版(如 wsl -d Ubuntu-24.04) |
wsl | 启动默认发行版 |
| 命令 | 说明 |
|---|---|
wsl --shutdown | 立即关闭所有 WSL 虚拟机(释放内存/CPU,推荐日常使用✅) |
wsl --terminate <发行版名> | 强制终止某个发行版(如 wsl --terminate Ubuntu-24.04) |
wsl -d <名称> -u <用户名> | 以指定用户身份启动(如 wsl -d Ubuntu -u alice) |
| 命令 | 说明 |
|---|---|
wsl --install | 安装默认发行版(Ubuntu)和 WSL 2(需管理员权限) |
wsl --install -d <发行版名> | 安装指定发行版(如 wsl --install -d Debian) |
wsl --unregister <发行版名> | 彻底删除该发行版及其所有数据(不可逆⚠️) |
wsl --set-default <发行版名> | 设置默认启动的发行版 |
💡 可用发行版列表:
Ubuntu,Debian,KaliLinux,openSUSE-Leap-15.5,SLES-15-SP5等(需先在 Microsoft Store 安装或手动导入)
| 命令 | 说明 |
|---|---|
wsl --export <名称> <备份路径.tar> | 导出发行版为 tar 包(用于备份或迁移) |
例:wsl --export Ubuntu D:\backup\ubuntu.tar | |
wsl --import <新名称> <安装目录> <tar 路径> [--version 2] | 从 tar 包导入新发行版 |
例:wsl --import MyUbuntu D:\WSL\MyUbuntu D:\backup\ubuntu.tar --version 2 |
✅ 这是将 WSL 移到 D 盘的标准方法!
| 命令 | 说明 |
|---|---|
wsl --set-version <名称> 2 | 将发行版升级到 WSL 2(推荐✅) |
wsl --set-version <名称> 1 | 降级到 WSL 1(兼容性需求) |
wsl --default-version 2 | 设置新安装发行版默认使用 WSL 2 |
💡 WSL 2 性能更好,但需要 Windows 10 2004+ 或 Win11。
| 操作 | 说明 |
|---|---|
| 在 WSL 中安装 SSH: | |
sudo apt install openssh-server | 启用 SSH 服务 |
| 修改端口: | |
sudo nano /etc/ssh/sshd_config → Port 2222 | 避免与 Windows 冲突 |
| 启动 SSH: | |
sudo service ssh start | 手动启动 |
| Windows 防火墙放行 2222 端口 | 否则 Xshell 无法连接 |
| Xshell 连接地址: | |
主机:127.0.0.1,端口:2222 | 本地回环连接 |
| 路径 | 说明 |
|---|---|
| Windows → WSL | 在 WSL 中访问:/mnt/c/, /mnt/d/ 等 |
| WSL → Windows | 在 Windows 中访问: |
\\wsl$\<发行版名>\(资源管理器地址栏输入) | |
例:\\wsl$\Ubuntu-24.04\home |
✅ 推荐用
\\wsl$方式在 Windows 中直接操作 Linux 文件!
%USERPROFILE%\.wslconfigwsl --shutdown 生效示例:
[wsl2]
memory=4GB
processors=2
swap=2GB
swapFile=D:/WSL/swap.vhdx
localhostForwarding=true
/etc/wsl.conf示例:
[user]
default = alice
[automount]
enabled = true
options = "metadata,umask=22,fmask=11"
| 命令 | 说明 |
|---|---|
wsl --update | 更新 WSL 内核(需联网) |
wsl --update rollback | 回滚到上一个内核版本 |
| 手动压缩 vhdx: | |
diskpart → select vdisk file="D:\WSL\ext4.vhdx" → attach vdisk readonly → compact vdisk → detach vdisk | 减小虚拟硬盘占用 |
\\wsl$/etc/wsl.conf 中设置 [user]\ndefault = yournamewsl --export + wsl --import 迁移到 D 盘wsl -u root,然后 passwd username 重置wsl -l -v # 查看所有发行版状态
wsl --shutdown # 关闭所有 WSL(日常必用)
wsl --export Ubuntu backup.tar # 备份
wsl --import NewUbuntu D:\WSL\NewUbuntu backup.tar --version 2 # 迁移
wsl --set-version Ubuntu 2 # 升级到 WSL 2

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online