wsl开启即闪退
[ 问题 ]:
- 在一次电脑卡住,强制关机重启后,遇到打开WSL就闪退的问题
- 在CMD中打开WSL,出现如上图的描述:
C:\Users\admin>wsl
wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理。
灾难性故障
错误代码: Wsl/Service/E_UNEXPECTED
- 经询问大模型得出根本原因是 Windows 系统设置了 localhost 代理,但 WSL 没有被正确配置以继承它,导致 WSL 在 NAT 网络模式下直接崩溃。
[ 解决方法 ]:
- 在宿主机的 “C:\User<用户名>”目录下配置.wslconfig文件,.wslconfig文件内容如下
[experimental]
autoMemoryReclaim=gradual
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true
配置项 | 默认值 | 建议值 | 作用说明 | 建议启用场景 |
---|---|---|---|---|
autoMemoryReclaim | none | gradual | 自动回收 WSL 占用的内存,gradual 表示平滑释放 | 内存资源有限,避免占满 RAM |
networkingMode | nat | mirrored | 共享主机网络栈,使 WSL 使用与 Windows 相同的 IP,提升兼容性 | 需要本机访问、Docker、WSL GUI |
dnsTunneling | false | true | 将 DNS 请求通过 Windows 转发,避免 VPN/代理环境下 DNS 失效 | 使用 VPN、公司网络、翻墙时 |
firewall | false | true | 启用 WSL 访问的防火墙控制,增强网络安全 | 需要限制 WSL 的外部访问或有安全要求 |
autoProxy | false | false ⚠️ | 自动同步 Windows 系统代理(如 localhost:xxxx)到 WSL | 仅适合配置为内网 IP 的代理 |
⚠️需特别注意部分
配置项 | 注意事项 |
---|---|
autoProxy | 如设置为 localhost:port 的代理,会导致 WSL 启动失败(你遇到的问题)。建议关闭或用实际 IP。 |
firewall | 启用后可能影响某些服务的监听或访问,建议测试环境先关闭。 |