
Estou executando o Windows 10 build 1809 e tenho o Hyper-V instalado. Eu tenho uma máquina Linux rodando atrás de um NAT com conectividade à Internet funcionando em IP 10.0.5.5. Basicamente segui as instruções no link abaixo
https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/setup-nat-network
Quando criei o mapeamento de portas chamei
Add-NetNatStaticMapping -ExternalIPAddress 0.0.0.0/24 -ExternalPort 8500 -Protocol TCP -InternalIPAddress 10.0.5.5 -InternalPort 8500 -NatName YetAnotherNAT
Se eu tentar acertarhttp://10.0.5.5:8500funciona (a página carrega). Se eu tentar acertarhttp://127.0.0.1:8500não funciona (nada carrega). Mesmo se eu tentar usar qualquer um dos meus IPs externos, isso não funciona.
É basicamente como se todo o encaminhamento de porta não estivesse fazendo nada.
Alguma ideia?
Get-VmSwitch retorna o seguinte
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 retorna o seguinte
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
Responder1
Você provavelmente está acertando isso:
Acessando endpoints internos diretamente do Host
Os endpoints internos atribuídos a VMs ou contêineres não podem ser acessados usando os IPs/portas externos referenciados nos mapeamentos de portas estáticas NAT diretamente do host NAT. No host NAT, esses endpoints internos devem ser endereçados diretamente por seus IP e portas internos. Por exemplo, suponha que um endpoint de contêiner tenha IP 172.16.1.100 e esteja executando um servidor web que esteja escutando na porta 80. Além disso, suponha que um mapeamento de porta foi criado por meio do docker para encaminhar o tráfego do endereço IP do host (10.10.50.20) recebido na porta TCP 8080 para o terminal do contêiner. Neste caso, um usuário no host do contêiner não pode acessar diretamente o servidor web usando as portas mapeadas externamente. por exemplo, um usuário operando no host do contêiner não pode acessar o servidor web do contêiner indiretamente emhttp://10.10.50.20:8080. Em vez disso, o usuário deve acessar diretamente o servidor web do contêiner emhttp://172.16.1.100:80.
A única ressalva a essa limitação é que o endpoint interno pode ser acessado usando o IP/porta externo de um endpoint de VM/contêiner separado em execução no mesmo host NAT: isso é chamado de hair-pinning. Por exemplo, um usuário operando no contêiner A pode acessar um servidor web em execução no contêiner B usando o IP interno e a porta do http://10.10.50.20:8080