我的 WSL2 实例当前通过以太网适配器 vEthernet (WSL) 连接到 Internet。我可以让它改用以太网适配器 vEthernet(默认交换机或其他)吗?
目前,可以在 Hyper-V 管理器中创建一个新的虚拟交换机(外部),并在 Windows 上的用户主目录中创建 .wslconfig 文件。
[wsl2]
vmSwitch=New Virtual Switch
networkingMode=bridged
ipv6=true
不幸的是,这在 Windows 10 中已经损坏。
答案1
我认为您的需求是由于需要连接两个接口。
此 PowerShell 命令应导致交换机之间转发消息:
Get-NetIPInterface | where {$_.InterfaceAlias -eq 'vEthernet (WSL)' -or $_.InterfaceAlias -eq 'vEthernet (Default Switch)'} | Set-NetIPInterface -Forwarding Enabled -Verbose
更多信息请参阅文章
允许适用于 Linux 的 Windows 子系统与 Hyper-V VM 通信
请注意,无法替换“vEthernet (WSL)”交换机本身。有关该主题的错误报告可在帖子中找到 [WSL2] - 系统重启后 vEthernet(WSL)交换机重置/丢失配置 #6406 发帖者手动修改了开关,但却发现这些修改在重启后就消失了。
微软的官方答案是:
这才是真正的目的。这个问题表达了一种行不通的解决方法。
这是合乎逻辑的,因为 WSL 环境本身是一个轻量级虚拟机,因此每次重新启动时都会重新初始化。要永久实现这些更改,需要修改此虚拟机,目前尚无已知方法。此外,每次 Windows Update 更新 WSL 时,此类修改都会消失。