源本科技 | 码上会

WSL2 安装配置指南

2025/12/24
39
0

启用 Hyper-V 虚拟化平台

Hyper-V 是 WSL2 的底层依赖,必须先启用。

前提条件

  • CPU 支持硬件虚拟化(Intel VT-x / AMD-V)

  • BIOS/UEFI 中已开启虚拟化选项

操作步骤:

  • 进入 BIOS/UEFI

    • 开机时按 DelF2F10Esc(依主板而定)。

  • 启用虚拟化

    • 找到类似 Intel Virtualization Technology (VT-x)SVM Mode 的选项,设为 Enabled

  • 保存并退出

启用 Hyper-V 功能

  • Win + Q,搜索 “启用或关闭 Windows 功能”

  • 勾选:

    • Hyper-V

    • 适用于 Linux 的 Windows 子系统

    • 虚拟机平台(WSL2 必需)

  • 点击 确定,系统将提示重启。

验证安装

以管理员身份打开 PowerShell:

Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All

若返回 State: Enabled,表示成功。


配置并安装 WSL2

WSL2 基于轻量级 Hyper-V 虚拟机,性能接近原生 Linux。

更新 WSL 内核并设为默认版本

wsl --update
wsl --set-default-version 2

问题解决:如果出现【无法与服务器建立连接】的问题,直接下载安装包进行安装

https://github.com/microsoft/WSL/releases

启用镜像网络模式

在企业网络、梯子或代理环境下,WSL 默认 NAT 网络可能导致连接异常。镜像网络可使 WSL 与 Windows 共享网络栈。

  • 在用户目录(如 C:\Users\YourName)创建文件 .wslconfig

[experimental]
networkingMode=mirrored    # 关键:启用镜像网络
dnsTunneling=true
firewall=true
autoProxy=true             # 自动继承 Windows 代理设置
autoMemoryReclaim=gradual
sparseVhd=true
  • 重启 WSL:

wsl --shutdown

💡 此功能需 Windows 11 22H2+ 或 Windows 10 21H2+(且已安装最新更新)。

安装 Ubuntu 子系统

# 查看可用发行版
wsl --list --online

# 安装 Ubuntu 24.04(推荐 LTS 版本)
wsl --install -d Ubuntu-24.04
  • 安装过程中会提示创建 Linux 用户名和密码(非 Windows 密码)。

首次启动

安装完成后重启系统(如有提示),然后从开始菜单启动 Ubuntu-24.04,完成初始化。


WSL2 系统初始化与优化

迁移 WSL 到非系统盘

WSL2 默认存储在 %LOCALAPPDATA%\Packages\...,占用 C 盘空间。可通过导出 / 导入迁移。

# 创建备份目录
mkdir D:\WSL\backup

# 导出当前发行版
wsl --export Ubuntu-24.04 D:\WSL\backup\ubuntu.tar

# 注销原实例
wsl --unregister Ubuntu-24.04

# 导入到新位置,并命名为 "devbox"
wsl --import devbox D:\WSL\devbox D:\WSL\backup\ubuntu.tar --version 2

设置默认用户为 root

# 在 WSL 中执行
sudo passwd root

# 创建 /etc/wsl.conf
echo -e "[user]\ndefault=root" | sudo tee /etc/wsl.conf

# 重启 WSL 实例(注意这里的 devbox 为 WSL 实例的新名称)
wsl --terminate devbox
wsl -d devbox  # 登录即为 root

配置阿里云软件源

# 获取系统代号(如 noble)
CODENAME=$(lsb_release -cs)

# 备份原源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

# 替换为阿里云镜像
sudo sed -i "s|http://[a-z0-9\.]*\.archive\.ubuntu\.com|https://mirrors.aliyun.com|g" /etc/apt/sources.list
sudo sed -i "s|http://security\.ubuntu\.com|https://mirrors.aliyun.com|g" /etc/apt/sources.list

# 更新
sudo apt clean && sudo apt update

✅ 若命令失效,可手动编辑 /etc/apt/sources.list,参考 阿里云 Ubuntu 镜像帮助

配置失效解决

  • 查看系统版本

# 通过系统版本替换下面【修改内容】中的 VERSION_CODENAME 如 noble
cat /etc/os-release
  • 编辑软件源配置

vi /etc/apt/sources.list
  • 修改内容

deb http://mirrors.aliyun.com/ubuntu/ noble main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ noble main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ noble-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ noble-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ noble-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ noble-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ noble-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ noble-backports main restricted universe multiverse

配置 SSH 远程访问

WSL 默认不启动 SSH 服务。

# 安装 OpenSSH Server
sudo apt install -y openssh-server

# 修改配置
sudo vi /etc/ssh/sshd_config

关键配置项:

Port 2222                   # 避免与 Windows SSH 冲突
PermitRootLogin yes         # 允许 root 登录(实验环境)
PasswordAuthentication yes  # 启用密码认证

启动服务:

sudo service ssh restart

连接方式:

ssh -p 2222 root@127.0.0.1

其他系统配置

设置时区(上海)

sudo timedatectl set-timezone Asia/Shanghai

禁用 Swap

# 临时关闭
sudo swapoff -a

# 永久禁用:注释 /etc/fstab 中的 swap 行
sudo sed -i '/swap/s/^/#/' /etc/fstab

镜像状态监控https://status.anye.xyz

建议选择 “正常”且响应快 的镜像源。

安装 Docker(快速方式)

apt install -y docker.io
apt install -y docker-compose

✅ 此方式获得最新版 Docker,并支持 docker compose(v2)。

配置镜像加速器

sudo mkdir -p /etc/docker
sudo vi /etc/docker/daemon.json

推荐配置(精选稳定源):

{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "registry-mirrors": [
     "https://docker.1ms.run",
     "https://docker.1panel.live",
     "https://docker.m.ixdev.cn",
     "https://hub.rat.dev",
     "https://docker.xuanyuan.me"
  ],
  "insecure-registries": ["http://easzlab.io.local:5000"],
  "max-concurrent-downloads": 10,
  "log-driver": "json-file",
  "log-level": "warn",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  },
  "data-root": "/var/lib/docker"
}

镜像源说明

  • docker.m.daocloud.io:DaoCloud,企业级稳定;

  • dockerproxy.cool / 1Panel:社区维护,速度快;

  • 避免使用 nat.tf 等不稳定节点。

启动 Docker 并验证

sudo systemctl daemon-reload
sudo systemctl restart docker

# 验证
docker info | grep -A 5 "Registry Mirrors"
docker run hello-world

总结:环境就绪检查清单

项目

状态

Hyper-V 已启用

WSL2 默认版本

WSL 存储位置(非 C 盘)

✅(可选)

阿里云 APT 源配置

时区为 Asia/Shanghai

Swap 已关闭

Docker 安装并配置加速

SSH 可远程连接(如需)

延伸建议

  • 使用 VS Code + Remote - WSL 插件实现无缝开发;

  • 通过 .wslconfig 限制内存 /CPU:memory=4GB, processors=2

  • 定期运行 wsl --update 保持内核最新。

重要提醒

  • WSL2 不是完整虚拟机,不支持 systemd(默认)、内核模块加载等。如需完整 Linux 环境,请使用 Hyper-V 或 VMware 创建传统 VM

异常处理

运行管理员相关命令出现如下提示的解决方案

System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
  • 使用管理员权限编辑 /etc/wsl.conf 文件(如果文件不存在会自动创建)

sudo vi /etc/wsl.conf
  • 将以下内容复制并粘贴到文件中

[boot]
systemd=true
  • WindowsPowerShell 或 命令提示符 中执行

wsl --shutdown
  • 最后,再重新打开 Linux 即可