Windows WSL 2 无法 ping 主机

Jie*_*Jie 7 networking windows ubuntu windows-subsystem-for-linux

我今天刚刚升级到 Windows WSL 2。问题是我无法ping通主机。

我从 /etc/resolv.conf 获得了主机的 IP。

从 WSL 2 Ubuntu 控制台:

  • 我可以 ping 8.8.8.8。
  • 我无法 ping 172.17.12.65(主机)。
  • 我无法 ping 通 www.google.com

请帮忙,谢谢!

Joh*_*der 6

这个 github 线程的一些迹象表明它可能只是你的 Windows 主机上的防火墙阻止了流量......

https://github.com/microsoft/WSL/issues/4192#issuecomment-503804455

引用 xtremeperf:

“实际上……您可能被 Windows 防火墙阻止,因为 WSL2 被认为是在“公共网络”上。您需要在 Windows 防火墙上手动打开这些端口,因为它们尚未自动配置在这个早期的测试版中安装。”

就像harrymc和andoryu-说的,检查“/etc/resolv.conf”的内容来检查WSL2 IP。AFAIK 应该是解除封锁的那个。

不幸的是,WSL2 的虚拟交换机适配器连接配置文件默认为“公共”,除非您可以为适配器分配 VLAN ID,否则无法永久设置为“私有”,但我目前不知道如何使用 Microsoft 的虚拟机平台功能,这就是我正在使用的。希望 Microsoft 将允许在未来版本中轻松更改此设置。我还没有研究是否可以仅使用 Microsoft 的 Hypervisor 平台功能运行 WSL2。如果有人知道,那可能会有所帮助。

尽管这可能并不理想,但您可以简单地允许主机防火墙上的入站 ICMP 回显流量用于“公共”配置文件。使用 Windows Defender 的示例:

  1. 通过控制面板启动 Windows Defender 防火墙。
  2. 选择“高级设置”(在左侧)
  3. 右键单击“入站规则”并选择“新建规则...”
  4. 选择“自定义”,点击“下一步”
  5. 选择“所有程序”,点击“下一步”
  6. 选择“ICMPv4”协议类型,然后点击“自定义...”
  7. 选择“Specific ICMP types”并勾选“Echo Request”并点击“OK”,然后点击“Next”
  8. 选择“任何 IP 地址”或根据需要为本地和远程(在您的情况下)添加特定地址,然后单击“下一步”
  9. 选择“允许连接”,点击“下一步”
  10. 选择公共、域和私人,然后单击“下一步”
  11. 为规则指定一个有意义的名称,然后单击“完成”


小智 1

只是在我遇到同样的问题时才回答。

首先,一个不太可能的评论暗示,172.16。- 172.31。是保留的私有IP地址,所以我很确定172.17.12.65对您的主机有效。

我发现cmd.exe中的ipconfig显示/etc/resolv.conf中的名称服务器地址实际上是vEthernet(WSL)的地址。

也许这个问题与 hyper-v 以太网适配器有关?