Add-NetNatStaticMapping 不是端口转发到本地虚拟机

Add-NetNatStaticMapping 不是端口转发到本地虚拟机

我正在运行 Windows 10 build 1809 并安装了 Hyper-V。我有一台 Linux 机器在 NAT 后面运行,互联网连接在 IP 10.0.5.5 上工作。我基本上按照以下链接上的说明进行操作

https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/setup-nat-network

创建端口映射时我调用

Add-NetNatStaticMapping -ExternalIPAddress 0.0.0.0/24 -ExternalPort 8500 -Protocol TCP -InternalIPAddress 10.0.5.5 -InternalPort 8500 -NatName YetAnotherNAT

如果我试图打http://10.0.5.5:8500它起作用了(页面加载)。如果我尝试点击http://127.0.0.1:8500它不起作用(什么都没加载)。即使我尝试使用我的任何外部 IP,它也不工作。

这基本上就像整个端口转发没有执行任何操作一样。

有任何想法吗?

Get-VmSwitch 返回以下内容

PS C:\> Get-VMSwitch

Name             SwitchType NetAdapterInterfaceDescription
----             ---------- ------------------------------
nat              Internal
Wifi             External   Intel(R) Dual Band Wireless-AC 7265
DockerNAT        Internal
Default Switch   Internal   Teamed-Interface
MyNATSwitch      Internal
YetAnotherSwitch Internal

Get-NetNat 返回以下内容

PS C:\> get-netnat


Name                             : YetAnotherNAT
ExternalIPInterfaceAddressPrefix :
InternalIPInterfaceAddressPrefix : 10.0.5.0/24
IcmpQueryTimeout                 : 30
TcpEstablishedConnectionTimeout  : 1800
TcpTransientConnectionTimeout    : 120
TcpFilteringBehavior             : AddressDependentFiltering
UdpFilteringBehavior             : AddressDependentFiltering
UdpIdleSessionTimeout            : 120
UdpInboundRefresh                : False
Store                            : Local
Active                           : True

答案1

你可能会遇到这种情况:

直接从主机访问内部端点

无法使用 NAT 静态端口映射中引用的外部 IP/端口直接从 NAT 主机访问分配给虚拟机或容器的内部端点。从 NAT 主机,这些内部端点必须通过其内部 IP 和端口直接寻址。例如,假设容器端点的 IP 为 172.16.1.100,并且正在运行一个在端口 80 上侦听的 Web 服务器。此外,假设已通过 docker 创建端口映射,以将 TCP 端口 8080 上接收的来自主机 IP 地址 (10.10.50.20) 的流量转发到容器端点。在这种情况下,容器主机上的用户无法使用外部映射的端口直接访问 Web 服务器。例如,在容器主机上操作的用户无法间接访问容器 Web 服务器http://10.10.50.20:8080。相反,用户必须直接访问http://172.16.1.100:80

此限制的一个警告是,可以使用外部 IP/端口从在同一 NAT 主机上运行的单独 VM/容器端点访问内部端点:这称为 hair-pinning。例如,在容器 A 上运行的用户可以使用容器 B 的内部 IP 和端口访问在容器 B 中运行的 Web 服务器 http://10.10.50.20:8080

来源:https://techcommunity.microsoft.com/t5/Virtualization/Windows-NAT-WinNAT-Capabilities-and-limitations/ba-p/382303

相关内容