简单记录一下吧
宿主机中搭建了一个网络服务,例如:http://localhost:3000/test
,然后在wsl2中尝试去访问,首先需要找到宿主机的IP,然后再去访问,网上找了好多方案,都可以获取wsl2的ip:
ifconfig // 找到eth0的ip
ip addr // 找到eth0的ip
hostname -I
cat /etc/resolv.conf
但是在我的设备上都不行,例如,通过上面的方案,我找到的ip是172.29.215.171
,然后访问:http://172.29.215.171:3000/test
,返回下面的错误:
curl: (7) Failed to connect to 172.29.215.171 port 3000 after 0 ms: Connection refused
各种拒绝访问,然后网上又找了好多方案,例如设置windows防火墙的入站出站规则,关闭windows防火墙,试过了都不行,奇怪的是ping是可以通的,就是http服务不行。
后来终于找到了一个方案:
里面有一条命令:
ip route | grep default | awk '{print $3}'
172.29.208.1
这样就能够查看wsl2的默认网关地址,然后使用网关地址来访问,竟然就可以了。
curl http://172.29.208.1:3000/docs
wsl2的网络还真的是,很奇怪!