众所周知 WSL 默认安装后,只允许windows访问 Windows Subsystem for Linux,而WSL是不能反之访问本地windows。我之前用vmware的思路认为是nat的网络模式,于是改成了桥接,结果wsl的桥接模式被我改的能访问本地,但是却不能Internet,而且网络模式很难改回来。害我重装了电脑(手残easeus,备份还原不会用,重装完分区才研究明白备份软件,不过我原来的Ubuntu WSL 也有点憨憨)
步骤
默认安装WSL,记得 wslupdate.exe运行一下
从终端 powershell 输入 ipconfig , 基本在ubuntu(WSL)里 ping不了
但是可以看到
以太网适配器 vEthernet (Default Switch):
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : xxxxxxxxxxxxxx
IPv4 地址 . . . . . . . . . . . . : xxxxxxxxxxxxxx
子网掩码 . . . . . . . . . . . . : xxxxxxxxxxxxxx
默认网关. . . . . . . . . . . . . :
以太网适配器 vEthernet (WSL):
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : xxxxxxxxxxxxxx
IPv4 地址 . . . . . . . . . . . . : xxxxxxxxxxxxxx
子网掩码 . . . . . . . . . . . . : xxxxxxxxxxxxxx
默认网关. . . . . . . . . . . . . :
这是hyper-v的vmswitch(虚拟交换机),wsl利用这个适配器来连接Internet或localhost的
用管理员模式运行powershell
> New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow
给防火墙添加新的WSL入栈规则
抱歉里面太多企业 VPN 和 Proxy 程序,截图就只能这么点
看到这个WSL后,ping vEthernet (WSL)的IP就可以了,但是telnet连接端口是失败的,无法连接,原因还是这个适配器对wsl虚拟化的网络使用的不是物理网络配置。
在cmd中输入 wsl hostname -i,就显示了wsl内部的访问windows的host ip。
telnet是需要端口的,我这个就没截