使用WSL的两平台互访问

linux下

在ubuntu上,使用

cat /etc/resolv.conf | grep nameserver | cut -d' ' -f2

能得出宿主的IP,这和在windows的命令行中ipconfig看到的一致。

如果你ping 172.28.64.1,如果是通的就不用看本文了。如果不通,就要在windows防火墙中添加入站规则。

windows下

有两种办法,建议使用命令行(并且是管理员权限下)。

New-NetFirewallRule -DisplayName "WSL" -Direction Inbound  -InterfaceAlias "vEthernet (WSL)"  -Action Allow

如果你执行时权限不够,要确认你的登陆是否为管理员。

一般宿主都是可以ping到linux上。所以,当执行上面命令成功后,到linux上ping一下那个网站,应该是通的了。

到此,完全可以把数据库等主要占资源的软件部署在windows这边了。

从github上查到的示例:

PS C:\WINDOWS\system32> $myIp = (Ubuntu1804 run "cat /etc/resolv.conf | grep nameserver | cut -d' ' -f2")

PS C:\WINDOWS\system32> $myIp

172.21.0.1

PS C:\WINDOWS\system32>  New-NetFirewallRule -DisplayName "WSL" -Direction Inbound  -LocalAddress $myIp -Action Allow