1. 检查网络是否通畅

1.1 通过ipconfig获得WSL的ip地址,如 172.28.30.1

1.2 进入Linux子系统,ping上面这个地址

ping 172.28.30.1

1.3 如果无法ping通(或使用过程中发现网络不通),则可在Windows系统上通过powershell(管理员启动)运行如下命令,开启Linux (WSL) 子系统访问Windows的防火墙

New-NetFirewallRule -DisplayName "WSL" -Direction Inbound  -InterfaceAlias "vEthernet (WSL)"  -Action Allow

2. 获取WSL自动配置的域名

方法1

  • 直接打开以下文件(可记事本打开或命令行查看),寻找172.28.30.1对应的域名
type C:\Windows\System32\drivers\etc\hosts.ics

方法2

  • 通过Linux子系统tracepath任意地址,如
tracepath baidu.com
  • 则此时域名为命令执行结果中前两行出现的域名

结果

  • 可以发现域名是 example.mshome.net 的形式,example一般为Windows及Linux子系统的主机名。比如,主机名为taissan,那么域名则是 taissan.mshome.net

3. Linux子系统访问Windows上的服务

  • Linux子系统访问Windows上的代理
export https_proxy=http://taissan.mshome.net:7890

4. Windows访问Linux子系统上的服务

  • 直接访问localhost+端口即可,如
curl http://127.0.0.1:8080

5. 使用域名访问解决的问题

  • 配置域名访问后,后续无需再做配置。防止因电脑重启后wsl的IP变化,使得需要每次重新在Linux子系统中配置IP.