wsl2 ip 与 wsl2 适配器不匹配?

wsl2 ip 与 wsl2 适配器不匹配?

这种情况从未发生过,但突然我无法访问在 wsl2 中在本地主机上运行的服务器。

进一步分析发现,IP 存在差异

wsl hostname -I
192.168.40.75

ipconfig
Ethernet adapter vEthernet (WSL):

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::491e:.......
   IPv4 Address. . . . . . . . . . . : 192.168.40.65
   Subnet Mask . . . . . . . . . . . : 255.255.255.240
   Default Gateway . . . . . . . . . :
   .......

是什么原因造成的?我以后该如何预防?

答案1

您看到的 IP 地址是正常的。它wsl hostname -I为您提供的是虚拟 NIC 的地址里面WSL,同时ipconfig向您展示该连接的 Windows 端。

wsl ip route show应该显示从 WSL 实例出来的默认路由是 Windows IP。

至于无法通过 Windows 访问 WSL 服务localhost,这可能是由于错误/问题导致的,即当 Windows 处于休眠状态时,WSL 会丢失本地主机转发。虽然您可能认为您最近没有休眠,但正常的 Windows 关机实际上会导致伪休眠,这是因为 Windows 中的“快速启动”功能默认启用。

解决方案通常(希望)只是退出 WSL 实例,执行wsl --shutdown,然后重新启动 WSL。请参阅这个答案更多细节。

相关内容