解决方案

目前不明确到底是哪一步解决了问题,如果只想看解决问题的话最可能的解决步骤是这一步:
在wsl当中使用ifconfig查看wsl的ip地址(红框里面的是最后起作用的地址,加上端口就可以起作用)
图片.png

排查过程

排查过程基本就是大杂烩,在知乎,谷歌,百度里面把前几页搜索到的方法都给试了试

排查两个小时,我终于连通wsl2里面的web服务了哈哈哈哈哈哈哈哈哈哈
太不容易了
wsl里面可以curl通127.0.0.1:3000
win里面curl不通

ipconfig /all查到win的ip,wsl的ip

wsl里面ping不通win的ip,后来通过关闭防火墙解决了
win里面可以ping到wsl的ip

win访问0.0.0.0,localhost都不能访问
感觉就是win是一块网,wsl是一块网
网上查的宿主机localhost就应该能访问wsl的

改防火墙的入站规则,改了两个
一个是2222端口连ssh
一个是增加所有程序的所有端口

试了试改梯子的白名单,改hosts
改wsl里面的hosts
改web服务的端口
wsl加ssh
全都不能用

最后是偶然间在关闭了梯子的情况下按照之前改过的hosts,通过在wsl里面ifconfig查到的ip地址加上端口号在宿主机里访问到了。之前这样试的时候是不行的,不知道是上面哪一步里起作用了,还是哪几步加起来一起起作用了

结语

如果大家有知道具体是哪一步出了问题的话欢迎告诉我
愿天堂没有没有意义的环境配置