Win11_24H2安装WSL2

启用功能

  1. 启用「Hyper-V」 PixPin_2025-06-08_08-56-38
  2. 启用「Windows虚拟机监控程序平台」和「适用于Linux的Windows子系统」 PixPin_2025-06-08_08-58-12
  3. 重启计算机
  4. 将 WSL 默认版本设置为 WSL2(我这里的Windows版本已经默认设置为WSL2了,Win10低版本需要手动设置)

Win10手动更新wsl内核至wsl2

进入这个页面:WSL更新页面手动下载,下载Windows Subsystem for Linux Update - 5.10.102.2,然后手动运行,如果失败请查看解决使用wsl_update_x64.msi手动更新wsl内核失败问题

WSL2安装Ubuntu

  1. 更新Linux子系统

    1
    
    wsl.exe --update
  2. 查看可用的 WSL 发行版:

    1
    
    wsl --list --online

    输入如下:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    
    PS C:\Users\xh> wsl --list --online
    以下是可安装的有效分发的列表。
    使用“wsl.exe --install <Distro>”安装。
    
    NAME                            FRIENDLY NAME
    AlmaLinux-8                     AlmaLinux OS 8
    AlmaLinux-9                     AlmaLinux OS 9
    AlmaLinux-Kitten-10             AlmaLinux OS Kitten 10
    AlmaLinux-10                    AlmaLinux OS 10
    Debian                          Debian GNU/Linux
    FedoraLinux-42                  Fedora Linux 42
    SUSE-Linux-Enterprise-15-SP5    SUSE Linux Enterprise 15 SP5
    SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6
    Ubuntu                          Ubuntu
    Ubuntu-24.04                    Ubuntu 24.04 LTS
    archlinux                       Arch Linux
    kali-linux                      Kali Linux Rolling
    openSUSE-Tumbleweed             openSUSE Tumbleweed
    openSUSE-Leap-15.6              openSUSE Leap 15.6
    Ubuntu-18.04                    Ubuntu 18.04 LTS
    Ubuntu-20.04                    Ubuntu 20.04 LTS
    Ubuntu-22.04                    Ubuntu 22.04 LTS
    OracleLinux_7_9                 Oracle Linux 7.9
    OracleLinux_8_7                 Oracle Linux 8.7
    OracleLinux_9_1                 Oracle Linux 9.1
  3. 安装20.04版本

    1
    
    wsl --install -d Ubuntu-20.04
  4. 设置用户名和密码

  5. 完成

常用指令

  • wsl -l -v:查看已安装的发行版及其状态
  • wsl -d Ubuntu-20.04 :-d代表启动指定版本

WSL安装的子系统可以直接访问Windows中的文件,例如D盘挂载到Ubuntu的/mnt路径下

换源

国内直接访问Linux官方的服务器还是挺慢的,这里换成国内的阿里源:

  1. 将系统源文件复制一份备用

    1
    
    sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
  2. 用vim编辑器打开源文件

    1
    
    sudo vim /etc/apt/sources.list
  3. 清空sources.list文件(vim输入49dd即可清空),并粘贴国内源

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    
    deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse 
    deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
  4. 更新

    1
    
    sudo apt-get -y update && sudo apt-get -y upgrade

VS Code连接

  1. WSL终端安装open-ssh

    1
    
    sudo apt update && sudo apt install openssh-server -y
  2. 修改ssh配置 编辑 /etc/ssh/sshd_config

    1
    
    sudo vim /etc/ssh/sshd_config

    修改以下关键配置:

    1
    2
    3
    
    Port 2222                  # 避免和 Windows 的默认 SSH 端口 22 冲突
    ListenAddress 0.0.0.0      # 允许所有 IP 连接
    PasswordAuthentication yes  # 允许密码登录(可选,建议用密钥)
  3. 重启ssh服务

    1
    
    sudo service ssh restart

    检查是否运行:

    1
    
    sudo service ssh status
  4. 配置 Windows 防火墙 打开2222端口,在 PowerShell(管理员) 运行:

    1
    
    New-NetFirewallRule -DisplayName "WSL SSH" -Direction Inbound -LocalPort 2222 -Protocol TCP -Action Allow

    或者手动在 Windows Defender 防火墙 中修改也可以

  5. 获取WSL的IP地址 WSL 每次启动时 IP 可能变化,可以通过以下方式获取: 在WSL中输入:

    1
    
    hostname -I

    或者在PowerShell 运行:

    1
    
    wsl hostname -I

    推荐直接通过localhost进行连接,当WSL启动多个系统时,可以按端口号进项区分。

  6. 免密登录(可选)PowerShell 运行:

    1
    
    ssh-keygen -t ed25519

    默认保存在 C:\Users\你的用户名\.ssh\id_ed25519。 复制公钥到WSL用户的~/.ssh/authorized_keys文件中,即可免密登录

解决使用wsl_update_x64.msi手动更新wsl内核失败问题

  1. 打开「设置」>「应用」>「应用和功能」,搜索 “Windows Subsystem for Linux Update” ,然后手动尝试卸载

    • 如果卸载成功,再运行wsl_update_x64.msi就可以正常更新了
    • 如果卸载失败,需要接着往下看。
  2. 记下刚才搜索到的 Windows Subsystem for Linux Update 版本号,访问:WSL更新页面手动下载

    例如,你搜索到的是 5.10.16 旧版本,就是下载 5.10.16 ,下载 msi 包目的是卸载!不是更新!

  3. 右键刚才下载的 msi 包,点击卸载,大概率会提示 “无法访问你试图使用的功能所在的CD-ROM或其他可移动式磁盘” 。

    然后,点击浏览,手动定位你当前的 msi 包,就可以成功卸载 WSL内核,再尝试运行wsl_update_x64.msi

0%