Skip to main content

日常百科

从睡眠/休眠状态恢复后,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

需要注意的是:

  1. WSL2 中的服务需监听 0.0.0.0 地址段,而不能是 localhost
  2. 主机防火墙需设置规则,允许监听端口,否则主机外网无法访问。
tip

另外,每次重启电脑后,WSL2IP 地址会改变,笨办法就是重新再设置一次,无需删除原有规则,直接可覆盖;当然,也可以长期不重启电脑;其它网上也有很多办法,比如动态设置域名访问 WSL2 等,可自行参考。

查看端口转发命令:

netsh interface portproxy show all

删除端口转发命令:

netsh interface portproxy delete v4tov4 listenport=8000 listenaddress=*