windows主机和wsl子系统相互网络服务访问
编写目的:在windows下的wsl子系统(ubuntn系统)实现服务局域网访问
注:如本机访问,无需配置。只适用于在wsl子系统部署服务后,提供给同一局域网络里访问。相当于把wsl子系统网络公域化(限定同一局域网)。
文章目录
第一步:关闭windows自带防火墙,以win11为例。见下图。
第二步:
1.查看win子系统wsl的网络IP
2. 在win主机上用管理员身份打开powershell
3. 设置ip连接wsl中的服务(局域网)
第一步:关闭windows自带防火墙
第二步:1、查看win子系统wsl的网络IP
查看eth0 IP地址
ip a |grep "global eth0"
查看nameserver IP
cat /etc/resolv.conf | grep nameserver | awk '{ print $2 }'
敲重点:两个IP均可提供访问
第二步:2、在win主机上用管理员身份打开powershell
第二步:3、设置ip连接wsl中的服务(局域网)
在windows中,用管理员方式打开powershell,输入命令如下:
这里我的wsl的ip为172.24.24.171,要启动服务的端口为8080:
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=8080 connectaddress=172.24.24.171 connectport=8080
敲重点:记录 connectaddress和listenport和connectport需替换参数值。
在windows中,用管理员方式打开powershell,输入命令如下:
New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow
敲重点:添加WSL规则
访问测试:
同一局域网下:本机与另一台设备上,打开浏览器,输入http://win主机IP:8080,访问OK。