这是我参与「第五届青训营」伴学笔记的第7天
阅前提示:这本来应该是一个非常快速的过程,但是因为我对wsl和网络通信的了解太少,导致踩了一个大坑,花费了很多时间,这篇文章就用来记录一下这个大坑,希望可以帮助到大家解决一点问题~
前期工作
clone Demo
demo在仓库里的位置:github.com/RaymondCode…
在自己手机下载并安装app
编译项目
大家根据自己用的是vscode还是goland自行编译
网络配置
查询本地ip地址
第一种方式
打开cmd,输入ipconfig就可以查询得到
如图,可以看到ip地址为 192.168.1.15
如果大家不太肯定究竟哪个才是正确的ip地址,也可以用下面这个方法
第二种方式
右键这个网络标志,然后点属性
往下扒拉,也可以看到ip地址啦
然后就是这里我踩了一个超大的坑!
查了很多资料都说,这里直接在手机端将原本localhost改成上面查到的这个ip就可以大功告成。
但是因为我们的项目运行在wsl下,而wsl和windows的ip不是同一个! 所以ip1(wsl的)无法ping通与ip2(windows的)处于同一网段下的ip,这种情况下,我们需要映射一下ip1和ip2!
获取wsl的ip
打开wsl,输入ifconfig,可以看到wsl的ip地址为172.20.104.70
映射
管理员身份在powershell输入以下指令(注:电脑重启一次会没有)
# 删除当前所有映射
netsh interface portproxy reset
# 映射windows 192.168.10.33的8080端口到WS2的ip的8080端口:
netsh interface portproxy add v4tov4 listenaddress=192.168.1.15 listenport=8080 connectaddress=172.20.104.70 connectport=8080
# 设置Windows的防火墙,允许监听端口的对内连接
netsh advfirewall firewall add rule name="Open Port 8080 for WSL2"dir=in action=allow protocol=TCP localport=8080
# 显示当前所有映射关系
netsh interface portproxy show all
手机端配置
手机打开抖声app,点两下“我的”,会出现高级设置,然后输入http://ip(你自己的ip):port(你选择监听并部署的端口), 如下图:
这样就大功告成啦~