我最近在我的 Windows 10 PC 上安装了 WSL2,我想了解如何处理往返于 WSL2 的流量。下面的文章指出 WSL2 作为托管 Hyper-V VM 运行,并使用 NAT 服务作为其虚拟网络,这很好,我理解。
https://learn.microsoft.com/en-us/windows/wsl/compare-versions
但是,我想知道如何列出并最终操纵这些 NAT 规则以适应特定用例。例如,假设我的 PC 有两个物理 NIC(LAN1 和 LAN2),并为其分配了两个不同的 IP。默认情况下,Windows 10 通过 LAN1 路由和 SNAT 所有出站 WSL2 流量。我该如何配置 Windows 10 以通过 LAN2 路由和 SNAT 所有出站 WSL2 流量?
到目前为止,我还没有找到任何类型的解决方案。我使用“Get-NetNat”Powershell cmdlet 列出 NAT 规则,但没有任何结果。“Get-NetRoute”cmdlet 没有列出任何转发规则来解释 Windows 10 如何选择将出站 WSL2 流量转发到何处。还有其他命令或实用程序我应该用于这些操作吗?
我还使用“netsh”实用程序转储了整个 Windows 10 网络配置,但没有提到任何 NAT 或转发规则。我能找到的转储中唯一相关的部分是 WSL2 虚拟适配器的 IPv4 配置:
set interface interface="vEthernet (WSL)" forwarding=enabled advertise=enabled nud=enabled ignoredefaultroutes=disabled
add address name="vEthernet (WSL)" address=172.27.128.1 mask=255.255.240.0
奇怪的是,Hyper-V“Get-VM”cmdlet 甚至无法将 WSL2 识别为托管 VM,它不会出现。这是为什么?还有其他方法可以检查主机上运行的 VM 吗?