失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 同一局域网下windows主机和wsl子系统相互网络服务访问

同一局域网下windows主机和wsl子系统相互网络服务访问

时间:2018-11-13 21:04:54

相关推荐

同一局域网下windows主机和wsl子系统相互网络服务访问

文章目录

1. 从主机访问wsl的服务2. 从wsl访问主机的服务3. 通过远程ip连接wsl中的服务(局域网)

进行以下操作之前,请关掉主机上的防火墙和360。

防火墙关闭之后是这个样子:

1. 从主机访问wsl的服务

在wsl子系统中,使用以下命令,获取wsl的ip

ip addr | grep eth0

我这里的显示是:

6: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000inet 172.30.64.232/20 brd 172.30.79.255 scope global eth0

wsl的ip即为inet后面的一串,也就是172.30.64.232。

然后找一个目录,新建一个index.html文件,内容为:

<html><head><meta charset="UTF-8"></head><body><h1>点个赞再走</h1><p>这么好的文章还不点赞</p><h2>一键三连关注一下</h2><p>不点赞不许白嫖</p></body></html>

在这个目录下,输入python -m http.server 8080来启动一个服务。

回到主机,打开浏览器,输入172.30.64.232:8080,应该可以看到这个界面:

2. 从wsl访问主机的服务

首先,在主机上用管理员身份打开powershell,具体来说,可以点击windows左下角的“小窗户”,然后输入powershell进行搜索,点击以管理员身份运行。

输入命令

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

然后在wsl中输入命令:

cat /etc/resolv.conf | grep nameserver | awk '{ print $2 }'

就会出现一个ip,这个ip可以用ping + ip测试一下,应该可以连通

在主机上随便找一个文件夹,创建上面的index.html,运行python -m http.server 8080来启动一个服务。

由于wsl中没有浏览器,我们用curl命令来测试访问网络服务。输入curl http://{IP}:8080,比如我这里ip是172.30.64.1,那么结果如下图所示:

3. 通过远程ip连接wsl中的服务(局域网)

我们知道,如果多台机器位于同一局域网下,访问的时候可以使用http://ip:port的方式来访问,那如果我们的服务启动在wsl中,同一局域网下的其他机器该怎么访问呢?分为3步:

(注意:以下步骤对防火墙很敏感,尽量确保自己的设备像文章开头那样,关闭了所有的防火墙)

在wsl子系统中,使用以下命令,获取wsl的ip

ip addr | grep eth0

inet后面跟着的就是wsl的ip,复制一下

在windows中,用管理员方式打开powershell,输入命令,这里我的wsl的ip为172.30.64.232,要启动服务的端口为2345,这里因为8080端口限制比较多,所以换了一个普通的端口,因此命令如下:

netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=2345 connectaddress=172.30.64.232 connectport=2345

记得在使用的时候,替换connectaddress和listenport、connectport为你需要的值。

还是和上面的方法一样,在wsl中输入python -m http.server 2345,启动一个python的服务,端口2345。

然后在Windows的powershell中,输入ipconfig,找到无线局域网适配器 WLAN:IPV4地址,我这里为10.46.84.134:

在同一局域网下的另一台设备上,打开浏览器,输入http://10.46.84.134:2345,即可看到我们期待的网页:

经过测试,用手机去访问也没有问题的。

如果觉得《同一局域网下windows主机和wsl子系统相互网络服务访问》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。