
Я использую 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
Вероятно, вы нажмете на это:
Доступ к внутренним конечным точкам напрямую с хоста
Внутренние конечные точки, назначенные виртуальным машинам или контейнерам, не могут быть доступны с использованием внешних IP-адресов / портов, указанных в сопоставлениях статических портов NAT, напрямую с хоста NAT. С хоста NAT эти внутренние конечные точки должны быть адресованы напрямую по их внутреннему IP-адресу и портам. Например, предположим, что конечная точка контейнера имеет IP-адрес 172.16.1.100 и запускает веб-сервер, который прослушивает порт 80. Кроме того, предположим, что сопоставление портов было создано через docker для пересылки трафика с IP-адреса хоста (10.10.50.20), полученного на порт TCP 8080, на конечную точку контейнера. В этом случае пользователь на хосте контейнера не может напрямую получить доступ к веб-серверу с помощью внешних сопоставленных портов. Например, пользователь, работающий на хосте контейнера, не может получить косвенный доступ к веб-серверу контейнера наhttp://10.10.50.20:8080. Вместо этого пользователь должен напрямую получить доступ к веб-серверу контейнера наhttp://172.16.1.100:80.
Единственным предостережением к этому ограничению является то, что доступ к внутренней конечной точке может осуществляться с использованием внешнего IP/порта из отдельной конечной точки виртуальной машины/контейнера, работающей на том же хосте NAT: это называется прикреплением. Например, пользователь, работающий в контейнере A, может получить доступ к веб-серверу, работающему в контейнере B, используя внутренний IP и порт http://10.10.50.20:8080