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

时间:2021-05-26 12:02:12

标签: windows virtual-machine hyper-v portforwarding

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

Internet Connection Sharing Dialog

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

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

New-NetNat -Name UbuntuNAT -InternalIPInterfaceAddressPrefix 192.168.137.0/24

添加-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,或者如果这种方法不实用,则可以采用另一种方法来完成整个设置。

1 个答案:

答案 0 :(得分:0)

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

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