Windows Subsystem for Linux此前不支持分配外部IP即使用NAT进行虚拟,因此在实际使用过程中我们需要通过Windows主机访问,如果想要在局域网里直接访问特定端口虽然可以成功实现但非常麻烦,因此在WSL1时代就有开发者建议微软支持分配外部IP。
最近有开发者发现微软已经在WSL2预览版中实现桥接,但不知道为什么微软并没有对此功能发布公告,现在要使用桥接的开发者都可以通过手动配置文件的方式分配外部IP。
版本要求:WSL2 Preview 0.51.2 (通过Microsoft Store下载)
系统版本:Windows 10 Build 18362及更高版本,支持Windows 11
要使用桥接和分配外部IP需要启用Hyper-V虚拟机并创建外部虚拟交换机(switch),然后使用wsl --shutdown命令关闭WSL子系统,最后将修改.wslconfig配置文件添加以下命令:
- [wsl2]
- networkingMode=bridged
- vmSwitch=替换成你创建的虚拟交换机名称
重新启动WSL子系统即可实现桥接并获得外部IP地址(路由器记得开启DHCP)
hyper-v都支持设置虚拟交换机,那问题来了, 如果要设置多个网络,例如,vmSwitch=wan_switch,wifi_switch那这样可以吗?