Add-NetNatStaticMapping이 로컬 VM으로 포트를 전달하지 않음

Add-NetNatStaticMapping이 로컬 VM으로 포트를 전달하지 않음

저는 Windows 10 빌드 1809를 실행 중이고 Hyper-V가 설치되어 있습니다. IP 10.0.5.5에서 작동하는 인터넷 연결을 사용하여 NAT 뒤에서 실행되는 Linux 시스템이 있습니다. 기본적으로 아래 링크의 지침을 따랐습니다.

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

당신은 아마 이것을 쳤을 것입니다 :

호스트에서 직접 내부 엔드포인트에 액세스

VM 또는 컨테이너에 할당된 내부 끝점은 NAT 호스트에서 직접 NAT 정적 포트 매핑에서 참조되는 외부 IP/포트를 사용하여 액세스할 수 없습니다. NAT 호스트에서 이러한 내부 끝점은 내부 IP 및 포트를 통해 직접 주소가 지정되어야 합니다. 예를 들어, 컨테이너 엔드포인트의 IP가 172.16.1.100이고 포트 80에서 수신 대기하는 웹 서버를 실행하고 있다고 가정합니다. 또한 수신된 호스트의 IP 주소(10.10.50.20)에서 트래픽을 전달하기 위해 docker를 통해 포트 매핑이 생성되었다고 가정합니다. TCP 포트 8080에서 컨테이너 엔드포인트로. 이 경우 컨테이너 호스트의 사용자는 외부 매핑된 포트를 사용하여 웹 서버에 직접 액세스할 수 없습니다. 예를 들어 컨테이너 호스트에서 작업하는 사용자는 컨테이너 웹 서버에 간접적으로 액세스할 수 없습니다.http://10.10.50.20:8080. 대신 사용자는 컨테이너 웹 서버에 직접 액세스해야 합니다.http://172.16.1.100:80.

이 제한 사항에 대한 한 가지 주의 사항은 동일한 NAT 호스트에서 실행되는 별도의 VM/컨테이너 끝점에서 외부 IP/포트를 사용하여 내부 끝점에 액세스할 수 있다는 것입니다. 이를 헤어 고정이라고 합니다. 예를 들어 컨테이너 A에서 작업하는 사용자는 내부 IP와 포트를 사용하여 컨테이너 B에서 실행되는 웹 서버에 액세스할 수 있습니다. http://10.10.50.20:8080

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

관련 정보