
문제가 있습니다. 내 네트워크 다이어그램은 다음과 같습니다.
- WIFI 라우터가 인터넷에 연결되어 있고 ISP로부터 고정 IP를 주문하여 인터넷을 통해 로컬 PC에 액세스할 수 있습니다.
- 내 라우터는 네트워크 192.168.0.0/24를 생성합니다.
- 내 로컬 PC 서버(192.168.0.101)에 일부 포트가 전달되었습니다.
- 로컬 PC에 가상 박스가 설치되어 있습니다
- vagrant를 통해 생성되고 유지되는 두 개의 노드가 있지만 우리는 첫 번째 노드에 관심이 있습니다.
- 각 VM에는 두 개의 NIC가 있습니다. 첫 번째는 Vagrant 통신을 위한 NAT이고 두 번째는 로컬 PC 인터페이스 enp3s0을 통한 브리지 어댑터입니다.
- 모든 노드에는 고정 IP(192.168.0.110 및 192.168.0.111)를 제공하기 위해 라우터 DHCP 설정에 바인딩된 특정 MAC 주소가 있습니다.
- 모든 것이 로컬 네트워크 내에서 작동하고 노드는 올바른 IP 주소를 받으며 로컬 네트워크를 통해 모든 노드 포트에 액세스할 수 있습니다.
- IP가 192.168.0.110인 내 노드는 Apache 서버를 실행하고 로컬 네트워크 내부에서는 정상적으로 작동합니다.
- 외부에서 이 노드 아파치 서버에 액세스하고 싶기 때문에 위 스크린샷에서 볼 수 있듯이 외부 포트 8888을 IP 192.168.0.110을 사용하는 시스템의 로컬 포트 80으로 전달했습니다.
하지만 문제는 외부에서 노드 아파치에 접근할 수 없다는 것이다. 연결 시간이 초과되었거나 재설정되었습니다. Wireshark를 사용하여 트래픽을 캡처하려고 시도했는데 다음과 같은 오류가 표시됩니다.
이 작업을 수행하는 것이 가능합니까? 아니면 포트 전달 기능이 있는 NAT를 사용하여 노드에 패킷을 전달하는 것보다 포트를 192.168.0.101 PC에 전달하는 것이 유일한 해결책입니까?
이 문제를 해결하는 데 도움을 주세요. 감사해요.
답변1
나는 이것이 당신이 찾고 있는 대답이 아니라는 것을 알고 있지만 하루 넘게 머리를 쥐어짜며 이 결론에 도달했습니다.작동해야 하지만 작동하지 않습니다.. 저는 Linux 전문가이고 네트워킹에 정통합니다. 다른 포럼에서는 귀하가 올바르게 수행하고 있으며 동의하며 작동해야 한다고 말합니다. 나는 완전히 다른 두 네트워크에서 똑같은 설정을 시도했지만 작동하지 않습니다.
브리지 어댑터와 함께 NAT 어댑터를 사용하여 수행해야 합니다. NAT에서 포트 전달을 설정하고 호스트 IP를 0.0.0.0으로 설정합니다.
라우터에서 클라이언트 VM 브리지 IP가 아닌 호스트 IP 주소로 포트 전달을 수행합니다. 따라서 예제 포트에 따라 8888을 동일한 포트 8888의 호스트 IP 주소로 전달합니다.
그런 다음 Vagrant에서 NAT 포트 전달은 다음과 같습니다.
config.vm.network "forwarded_port", guest: 80, host_ip: "0.0.0.0", host: 8888