wsl2访问宿主机搭建的本地服务踩坑

简单记录一下吧

宿主机中搭建了一个网络服务,例如: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服务不行。

后来终于找到了一个方案:

WSL2 的一些网络访问问题 - 野声 (cat.ms)

里面有一条命令:

ip route | grep default | awk '{print $3}'
172.29.208.1

这样就能够查看wsl2的默认网关地址,然后使用网关地址来访问,竟然就可以了。

curl http://172.29.208.1:3000/docs

wsl2的网络还真的是,很奇怪!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容