日常百科
从睡眠/休眠状态恢复后,WSL2 时钟不同步
在 WSL2 中执行:
sudo hwclock -s
WSL2 服务访问
由于 WSL2 与主机之间是通过私有网络访问,那么外网需要访问 WSL2 中的服务时,需要在主机设置端口转发。 例如需要访问 WSL2 中的 5000 端口时,则需在主机设置:
netsh interface portproxy add v4tov4 listenport=8000 listenaddress=* connectport=8080 connectaddress=172.30.144.91 protocol=tcp
- listenport:表示在主机上监听的端口,这里设置为5000,也可设置为其他端口;
- listenaddress: 表示可访问监听端口的 IP 地址范围, * 表示任意地址;
- connectport:表示转发至 WSL2 的端口;
- connectaddress:表示 WSL2 的地址;
caution
需要注意的是:
- WSL2 中的服务需监听 0.0.0.0 地址段,而不能是 localhost;
- 主机防火墙需设置规则,允许监听端口,否则主机外网无法访问。
tip
另外,每次重启电脑后,WSL2 的 IP 地址会改变,笨办法就是重新再设置一次,无需删除原有规则,直接可覆盖;当然,也可以长期不重启电脑;其它网上也有很多办法,比如动态设置域名访问 WSL2 等,可自行参考。
查看端口转发命令:
netsh interface portproxy show all
删除端口转发命令:
netsh interface portproxy delete v4tov4 listenport=8000 listenaddress=*