无法通过虚拟交换机 NAT 从 Hyper-V VM 端口 forward/port 映射到主机 IP 地址

Can't port forward/port map from Hyper-V VM to Host IP Address via Virtual Switch NAT

我在 Hyper-V 中为我的 Ubuntu 虚拟机配置了我的网络,使其连接到一个内部网络虚拟交换机,该交换机通过 Internet 连接共享(网络连接 >以太网 > 属性 > 共享)。这是相关设置的图片:

我在下拉列表中 select 编辑了内部网络的虚拟适配器,它为网关分配了内部网络的 IP 地址 192.168.137.1,并且我配置了我的 Ubuntu 虚拟机在 192.168.137.XXX 范围内的静态 IP 上运行。我决定为虚拟交换机选择一个内部网络,因为我不想修改主机的静态 IP 地址,如果我 select 外部网络共享互联网,由于某种原因我不能保持相同这样连接。

问题是我托管 VM 是为了 运行 docker 服务,我打算这样做,我需要做的就是能够例如,将端口 3000 从 192.168.137.2:3000 的内部 NAT IP 公开到我的主机 IP 地址 192.168.0.2:3000。我输入了以下命令:

New-NetNat -Name UbuntuNAT -InternalIPInterfaceAddressPrefix 192.168.137.0/24

Add-NetNatStaticMapping -NatName UbuntuNAT -Protocol TCP -ExternalIPAddress 0.0.0.0 -ExternalPort 3000 -InternalIPAddress 192.168.137.2 -InternalPort 3000

它工作了一秒钟,然后虚拟机失去了互联网连接,现在将不再连接到互联网。也许在 192.168.137.0/24 上创建 NAT 会以某种方式扰乱互联网连接共享?我不知道有什么替代方法可以端口映射内部 NAT。我需要找到一种方法将内部 NAT 连接到主机的 IP,或者如果此方法不实用,则可以使用另一种方法来完成整个设置。

控制面板 > 网络和 Internet > 网络连接 > 更改适配器设置

Select 您要共享的已连接到 Internet 的连接,转到“属性”,“共享”选项卡,选中“允许其他用户连接到此 Internet 连接”,select 虚拟交换机内部网络在下拉列表中,然后 select 端口转发设置。在地址字段中使用 VM 的静态 IP。