WSL2 mirrored network 不生效

发布于 2024-04-05  887 次阅读


问题描述

在 WSL2.0.0 版本中,引入了镜像网络模式,打通了宿主机和 WSL 容器间的访问,同时 WSL 能够直接使用宿主机的代理。

去年年底我曾尝试过一次,但是没有成功,具体表现为开启镜像网络模式后,WSL 无法连接网络,遂放弃。

最近有了在 WSL 中使用 Arch 的想法,今天又开始折腾,还是一样的问题,一下午没有头绪,issue 和 google 都翻了不少,没什么有用的信息。

偶然在 ifconfig 的输出中注意到,仅有一个 lo 接口,难怪没网。以此为线索,再尝试解决。

先是在 issue 中搜索,没什么有用的结果,于是直接发 issue(虽然 Open 状态的 issue 还有上千个,但碰碰运气嘛)。

刚准备全关了等回复,发现有 Bot 回复说需要补充材料,否则不会被 review,看着一直转圈的 windows 反馈窗口,想着放弃。发现 Bot 回复下面还列了一些相关 issue:

file

先看了这篇,这位老兄跟我一样的问题,然而他在几番交流和补充材料之后便无下文。

随后是这篇,直接拉到最下面,erikspigle-payroc好像对此颇有理解,但是 GPO、J0F3 两个字眼让我一头雾水,GPO 倒是搜出来是组策略(大概),J0F3 是真的理解不能。点进他的链接才明白,原来是是个 ID……这下发现宝藏了,在这段 分析中终于定位到问题,原来是由于一个注册表键值将 IPV6 禁用了,只要改掉它就行(虽然不清楚具体原理)。

解决方法

regedit 打开注册表编辑器,定位到

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\

DisabledComponents 的值从 0XFF 改为其他值,比如十进制的 32。重启电脑,再打开 WSL 发现一切都完美了。

参考