WSL2 网络的最终解决方案
如今我们需要区分和理解 mirrored
和 virtioproxy
模式:
mirrored
模式:把 Windows 主机的网络接口“镜像”(mirror)到 WSL 实例,使 WSL 内的网络配置几乎与主机保持一致。也就是说,WSL 与 Windows 在同一个网络环境里、使用相似的 IP 地址等。virtioproxy
模式:利用一种 “代理 / 转发” 机制,在 WSL 与 Windows 主机之间建立 Virtio 通道或代理,负责把网络流量在 WSL 和主机网络之间转发。它不完全是镜像主机接口,而是做一种更灵活的代理。微软文档中把它作为一种可选网络模式。
解决
最新版的WSL2允许用户自行指定用于WSL2的网卡,不再需要脚本等方式固定WSL2地址,同时支持IPv6和外部访问。
使用方法很简单,在用户目录%USERPROFILE%
下创建一个配置文件.wslconfig
,内容为:
1 | [wsl2] |
然后使用wsl --shutdown; wsl
重启WSL2即可。
这里使用Hyper-V创建了一个名为WSLBridge的外部虚拟交换机给WSL2用,则配置文件为:
1 | [wsl2] |
参考
WSL2 网络的最终解决方案 - 知乎 (zhihu.com)