如何从另一台机器 ping WSL

如何从另一台机器 ping WSL

我使用的 PC 安装了 Windows 10 Home 和 WSL2 Ubuntu,我想从笔记本电脑 ping 我的 WSL 实例。由于 WSL 使用 NAT 虚拟适配器,因此它与笔记本电脑不在同一网络上。

我尝试使用以下方法创建代理:

netsh interface portproxy add v4tov4 listenport=8090 listenaddress=0.0.0.0 connectport=8090 connectaddress=172.23.116.251

并允许使用端口:

netsh advfirewall firewall add rule name=”Open Port 8090 for WSL2” dir=in action=allow protocol=TCP localport=8090

但我无法从我的笔记本电脑 ping 通 WSL。

如何从网络中的另一台设备 ping WSL?有没有办法将其从 NAT 更改为 Bridged?

注意:我可以从我的笔记本电脑 ping 主机(我的 PC)。

编辑:我试过了

ping 172.23.116.251

Test-NetConnection 172.23.116.251

Test-NetConnection 172.23.116.251 -p 8090

Test-NetConnection 192.168.0.56 -p 8090

最后一个我尝试在端口 8090 上 ping 主机 PC(我不确定是否应该直接 ping WSL 或 ping 主机 PC 并让它将 ping 重定向到 WSL)

主机 IP:192.168.0.56

WSL-IP:172.23.116.251

答案1

WSL2,你基本上需要在主机上进行端口转发到 WSL(你已经完成了)。从微软文档

下面是一个示例 PowerShell 命令,用于添加一个端口代理,该代理侦听主机上的端口 4000,并将其连接到 IP 地址为 192.168.101.100 的 WSL 2 VM 的端口 4000。

netsh interface portproxy add v4tov4 listenport=4000 listenaddress=0.0.0.0 connectport=4000 connectaddress=192.168.101.100

也就是说,portproxy 不适用于默认 ping(ICMP)。您可以使用Test-NetConnection,但 WSL必须监听您要转发到的端口(问题中为 8090)。例如,尝试将主机上的端口 2222 转发到 WSL 上的端口 22,然后执行Test-NetConnection 192.168.0.56 -p 2222

相关内容