无需Internet Connection Sharing(SharedAccess)服务的WSL2安装运行问题咨询
关于ICS是否为WSL2必要依赖的说明
WSL2本身的运行并不强制依赖ICS服务,你遇到的系统更新后必须启用ICS才能使用的情况,确实是Windows后续系统更新带来的变更:默认配置下WSL2使用NAT模式的虚拟网卡,该模式下的网络转发逻辑在新版本中被绑定到了Windows的ICS服务实现,所以才会触发报错。此前的旧版本WSL2使用独立的NAT转发逻辑,不需要调用ICS,所以你之前可以正常使用。
不启用ICS使用WSL2的解决方案
方案1:切换WSL2网络模式为镜像网络
镜像网络模式直接复用Windows宿主的网络栈,不需要依赖ICS做NAT转发。操作步骤如下:- 打开Windows用户目录(一般是
C:\Users\你的用户名),新建/编辑.wslconfig文件 - 写入以下配置:
[wsl2] networkingMode=mirrored dnsTunneling=true firewall=true autoProxy=true- 保存文件后,在CMD/PowerShell执行
wsl --shutdown关闭所有WSL实例,重启WSL即可生效。
注:镜像网络需要WSL版本≥0.58.3,版本过低可先执行wsl --update升级。
- 打开Windows用户目录(一般是
方案2:使用自定义Hyper-V虚拟交换机
如果你不想用镜像网络,也可以自行在Hyper-V管理器中创建专属虚拟交换机,配置好网络后,在.wslconfig中添加如下配置指定使用该交换机,即可绕开ICS依赖:[wsl2] vmSwitch=你创建的虚拟交换机名称安装阶段报错的临时处理方案
如果你是在首次安装WSL2发行版时就触发了报错,可以先将WSL默认版本切为1完成安装,再调整配置后转成WSL2:- 执行
wsl --set-default-version 1 - 正常完成发行版安装
- 按上述方案配置好
.wslconfig参数 - 执行
wsl --set-version 你的发行版名称 2即可完成版本转换,不会触发ICS检查。
- 执行
内容的提问来源于stack exchange,提问作者byeongjin Kim
相关产品推荐
相关产品推荐

