Win11家庭版WSL安装403错误?看这篇就够了!
2025-03-17 14:39:49
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 安装问题,主要可能有以下几个原因:
- 网络代理问题: 如果你用了代理服务器(比如 VPN、Shadowsocks 等),可能会干扰 WSL 的网络请求,导致无法正常连接到微软服务器下载所需组件。
- 防火墙或安全软件拦截: 电脑上的防火墙或者某些安全软件(比如杀毒软件、安全卫士之类)可能会把 WSL 的网络访问当成可疑行为,直接给拦下来了。
- 地区限制: 虽然比较少见,但也不能排除微软服务器在某些地区有访问限制的可能性。
- 系统临时性网络故障。 有时微软服务器炸了,或者本地网络抖动也会出现此类现象。
- 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 错误。
具体步骤:
-
找到合适的离线安装包:
- 打开微软的 WSL 发布页面: https://learn.microsoft.com/en-us/windows/wsl/install-manual
- 根据你的系统架构(一般是 x64 或 ARM64)和想要安装的 Linux 发行版,找到对应的下载链接。
- 或者可以访问github https://github.com/microsoft/WSL/releases,查找
msixbundle
格式离线包.
-
下载安装包:
- 点击链接,下载
.appx
或.msixbundle
文件。
- 点击链接,下载
-
安装:
- 双击下载好的文件,或者在 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
即可. - 双击下载好的文件,或者在 PowerShell 中运行命令:
-
安装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 错误的解决办法,就先分享到这里。希望这些内容能帮到大家。不同的电脑环境,具体情况可能也会有差异, 灵活运用,找到最适合自己的方案。