网络上的大部分解决方案是

在Hyper-V 的WSL的虚拟交换机中的连接类型改成外部网络

然后在用户目录 %USERPROFILE% 下面创建一个配置文件 .wslconfig

[wsl2]
networkingMode=bridged # 桥接模式
vmSwitch=WSL # 你想使用的网卡
ipv6=true # 启用 IPv6

以上在win11上可行,但在win10上会有如下报错

虚拟机或容器 JSON 文档无效。

Error code: Wsl/Service/CreateInstance/CreateVm/ConfigureNetworking/0x8037010d

这个issue对应讨论已经提交在github上

https://github.com/microsoft/WSL/discussions/9227​github.com/microsoft/WSL/discussions/9227

根据讨论来看,就算把它写成json格式也并不生效。

摘录下colin4k 大佬的解决方法

在 .wlsconfig 中,它应该是:

{
"networkingMode": "bridged",
"vmSwitch": "WSL",
"dhcp": "false",
"ipv6": "true",
"localhostForwarding": "true"
}

然后你需要创建一个文件,路径为:/usr/lib/systemd/network/wsl_external.network,然后输入:

[Match]
Name=eth0
[Network]
Description=WSLBridge
DHCP=false
Address=192.168.1.222/24
Gateway=192.168.1.1
DNS=192.168.1.1

编辑 /etc/wsl.conf

[boot]
systemd=true
[network]
generateResolvConf = false

然后进行操作

rm -f /etc/resolv.conf
echo "nameserver 192.168.1.1" > /etc/resolv.conf

systemctl list-unit-files --type=service
systemctl enable systemd-networkd
systemctl restart systemd-networkd
systemctl enable systemd-resolved.service
systemctl restart systemd-resolved.service

然后输入'wsl --shutdown'停止wsl,然后再次输入wsl

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐