返回

Win11家庭版WSL安装403错误?看这篇就够了!

windows

Windows 11 家庭版安装 WSL 遭遇 403 Forbidden 错误,咋整?

最近碰上一档子事:在 Windows 11 家庭版上安装 WSL(Windows Subsystem for Linux),运行 wsl --install 命令时,竟然弹出了个 Forbidden (403) 错误,整个人都懵了。经过一番折腾,总算找到了问题根源和解决方法。 下面就把整个过程记录下来,给遇到同样问题的朋友们提供些参考。

一、 问题重现:就是这么个情况

以管理员权限打开 PowerShell,运行命令:

wsl --list --online
wsl --install

本以为能顺利安装 WSL,结果却碰上了这个:

Forbidden (403).

安装过程直接中断,WSL 自然也没装上。

二、 问题原因:为啥会这样?

出现 403 Forbidden 错误,一般都跟网络连接和权限有关。对于这次遇到的 WSL 安装问题,主要可能有以下几个原因:

  1. 网络代理问题: 如果你用了代理服务器(比如 VPN、Shadowsocks 等),可能会干扰 WSL 的网络请求,导致无法正常连接到微软服务器下载所需组件。
  2. 防火墙或安全软件拦截: 电脑上的防火墙或者某些安全软件(比如杀毒软件、安全卫士之类)可能会把 WSL 的网络访问当成可疑行为,直接给拦下来了。
  3. 地区限制: 虽然比较少见,但也不能排除微软服务器在某些地区有访问限制的可能性。
  4. 系统临时性网络故障。 有时微软服务器炸了,或者本地网络抖动也会出现此类现象。
  5. WSL 服务或相关组件异常。 WSL相关系统服务未能启动,也会影响在线安装.

三、 解决方法:对症下药,各个击破

针对上面列出的可能原因,咱们一个个来排查解决。

1. 检查和调整网络代理

如果你正在使用代理,不妨先把它关掉,或者调整一下代理设置,确保 WSL 的请求不经过代理。

具体操作(以 Windows 设置为例):

  • 打开“设置” -> “网络和 Internet” -> “代理”。
  • 如果“使用代理服务器”是开启状态,尝试把它关掉。
  • 或者,在“手动代理设置”里,把 WSL 相关的域名或 IP 地址添加到“不使用代理服务器”列表中(具体要添加哪些地址,需要根据实际情况来确定,WSL 一般不会涉及特定域名,主要是确保本机到微软服务器连接正常。)。

如果你用的是其他代理软件(比如 Shadowsocks),请参考相应软件的设置方法。

改完代理设置后,重新打开 PowerShell(以管理员权限),再试试 wsl --install 命令。

2. 暂时关闭防火墙或安全软件

防火墙或安全软件有时候会误判,为了确认是不是它们在作怪,我们可以暂时把它们关掉。

注意:关闭防火墙或安全软件会降低电脑的安全性,测试完记得及时恢复!

具体操作(以 Windows 安全中心为例):

  • 打开“设置” -> “隐私和安全性” -> “Windows 安全中心”。
  • 点击“防火墙和网络保护”。
  • 选择当前正在使用的网络类型(专用网络、公用网络或域网络)。
  • 把“Microsoft Defender 防火墙”关掉。
  • 同样, 进入病毒和威胁防护->管理设置->临时关闭实时保护。

关闭防火墙和实时保护后,再试试 wsl --install 命令。 如果安装成功了,说明问题就出在这里。解决办法是:重新打开防火墙,并在防火墙设置中添加 WSL 的允许规则(具体规则根据所用防火墙类型而定,可能需要允许 wsl.exe, wslhost.exe 等程序, 及相关端口的网络连接 )。

3. 切换网络环境 (如果方便)

如果你怀疑是网络环境问题,或者有其他网络可用(比如换个 Wi-Fi、手机热点等),可以试试切换一下网络。 这种办法简单粗暴,有时却能出奇效。

切换到新网络后,还是老规矩,管理员权限打开 PowerShell,运行 wsl --install 命令。

4. 检查系统时间和区域设置

虽然可能性不大,但如果系统时间设置不正确,也可能会影响到网络请求。

  • 打开“设置” -> “时间和语言” -> “日期和时间”。
  • 确保“自动设置时间”是开启状态。
  • 如果“自动设置时区”也是开启的,系统会根据你的 IP 地址来判断时区。如果时区不对,可以手动选择正确的时区。
  • 在 区域 中, 确保国家/地区设置与实际相符。

修改完时间或区域设置后,重启电脑,再运行 wsl --install 命令看看。

5. 使用离线安装包(终极方案)

如果上面的方法都不管用,说明在线安装这条路走不通了。 咱们还有最后一招:离线安装。

离线安装的原理: 直接从微软官网下载 WSL 的离线安装包(.appx.msixbundle 文件),然后在本地手动安装。这样就不需要 WSL 通过网络去下载东西了,自然也就避开了 403 错误。

具体步骤:

  1. 找到合适的离线安装包:

  2. 下载安装包:

    • 点击链接,下载 .appx.msixbundle 文件。
  3. 安装:

    • 双击下载好的文件,或者在 PowerShell 中运行命令:
      *.msixbundle 文件使用:
     Add-AppxPackage .\distroName_version.msixbundle
    

    .appx文件,可能要用以下命令

     Add-AppxProvisionedPackage -Online -SkipLicense -PackagePath ".\distroName_version_architecture.appx"
    

    .\distroName_version_architecture.appx 替换成你下载的文件的实际路径和文件名。
    进阶提示:
    如果你希望为系统上所有新用户都预配这个包,确保所有用户在创建时都会安装它,可以使用 Add-AppxProvisionedPackage,否则,只给当前用户安装的话,直接使用 Add-AppxPackage 即可.

  4. 安装WSL内核(重要):

    访问 https://learn.microsoft.com/zh-cn/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package, 下载WSL2 Linux 内核更新包, 并安装。

安装完成后,重启电脑。如果顺利,你就可以开始体验 WSL 了!

6. 检查及重启相关服务

确保以下服务已开启:

  • LxssManager (适用于 WSL 1)
  • HvHost (Hyper-V 主机服务, 适用于 WSL 2, 因为它跑在轻量虚拟机上)
  • vmcompute (虚拟机计算服务, 同样用于 WSL 2).

使用管理员权限启动 Powershell:

Get-Service LxssManager, HvHost, vmcompute | Restart-Service -Force

完成后,重试 wsl --install 命令。

写在最后

好啦,关于 Windows 11 家庭版安装 WSL 遇到 403 错误的解决办法,就先分享到这里。希望这些内容能帮到大家。不同的电脑环境,具体情况可能也会有差异, 灵活运用,找到最适合自己的方案。