Add-NetNatStaticMapping не перенаправляет порт на локальную виртуальную машину

Я ' m под управлением 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
3
задан 11 September 2018 в 21:04
1 ответ

Вы, вероятно, столкнулись с этим:

Доступ к внутренним конечным точкам напрямую с хоста

Невозможно получить доступ к внутренним конечным точкам, назначенным виртуальным машинам или контейнерам использование внешних IP-адресов / портов, указанных в сопоставлении статических портов NAT прямо с NAT-хоста. От хоста NAT эти внутренние к конечным точкам следует обращаться напрямую по их внутреннему IP-адресу и портам. Например, предположим, что конечная точка контейнера имеет IP-адрес 172.16.1.100 и является запущен веб-сервер, который прослушивает порт 80. Кроме того, предположим, что сопоставление портов было создано через докер для перенаправления трафика от 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

Источник: https://techcommunity.microsoft.com/t5/Virtualization/Windows-NAT-WinNAT-Capabilities-and-limitations/ba-p/ 382303

0
ответ дан 3 December 2019 в 07:49

Теги

Похожие вопросы