게스트 브라우저에서 virtualbox의 호스트 localhost에 액세스하는 방법

게스트 브라우저에서 virtualbox의 호스트 localhost에 액세스하는 방법

지금은 2019년이고 VirtualBox에서 Win 10을 실행하고 있습니다. 그리고 기본적으로 localhost를 10.0.2.2(호스트 시스템의 IP)로 리디렉션하고 싶습니다.

10.0.2.2 localhost 

이것이 작동하지 않는 것 같습니다. 일부 사람들은 Window 10이 의도적으로 localhost 조회를 비활성화한다고 보고했습니다. 그들이 왜 그렇게 할지 잘 모르겠습니다.

하지만 내 호스트 localhost URL에 액세스할 수 있도록 이 문제를 해결할 수 있는 해결 방법을 찾으려고 노력 중입니다.

답변1

이제 머신 안팎에서 서비스를 제공하려면 앱이 localhost 원본에서 실행되어야 합니다. 그래서 10.0.2.2에서는 실행할 수 없습니다.

VM을 수신 localhost하고 실제 연결을 올바른 대상으로 전달하는 TCP 또는 HTTP 프록시/전달자를 구성합니다.

HTTP의 경우 Nginx 또는 Apache와 같은 역방향 프록시가 가장 쉬운 접근 방식입니다. 문자 그대로 VirtualHost가 필요합니다 ProxyPass / http://10.0.2.2/. 다른 프로토콜의 경우 Nginx와 HAproxy 모두 스트림 전달도 지원합니다.

SSH -L또는 -R전달(호스트 또는 게스트에 SSH 서버가 있는지 여부에 따라 다름) 또는 Windows에 내장된 netsh int portproxy.

예를 들어 Windows 게스트에서 포트 443을 전달하려면 다음을 수행하세요.

netsh interface portproxy add listenaddress=127.0.0.1 listenport=443 connectaddress=10.0.2.2 connectport=443

또는 게스트에 PuTTY가 설치되어 있고 호스트에 SSH 서버가 있는 경우:

plink -v -N -L 443:localhost:443 [email protected]

일부 사람들은 Window 10이 의도적으로 localhost 조회를 비활성화한다고 보고했습니다. 그들이 왜 그런 짓을 할지 모르겠어

일반적으로 Windows가 그렇게 한 이유는 두 가지입니다.

  1. 이름 localhost은 "잘 ​​알려진" 것입니다. 즉, 루프백 주소로 확인된다는 것이 널리 받아들여지고 있습니다.일어나 다127.0.0.1 또는 ::1로 확인하면대로하려고했는데127.0.0.1 또는 ::1로 확인하면 이미 수십 년 동안 그렇게 한 역사가 있습니다. 따라서 OS에 이러한 규칙이 내장되어 있는 것은 완전히 자연스러운 일입니다.

    실제로 Windows를 우회하는 방법을 찾더라도 그렇게 많은 것을 발견하게 될 것입니다.웹 브라우저또한 OS의 기능에 관계없이 이러한 규칙이 내장되어 있습니다. (예를 들어, 다음은Chromium의 소스 코드'localhost'에 대한 하드코딩된 매핑이 있고 OS에 묻지도 않을 것임을 보여줍니다.) 심지어 IETF도 있습니다.초안 표준이는 확인자 수준에서 이를 의무화합니다.

  2. 웹 브라우저는 종종 localhost안전한 출처로 간주됩니다. 즉, 다른 URL http://localhost보다 더 많은 API를 제공할 수 있습니다. http://물론 이는 localhost가 127.0.0.1/::1 이외의 다른 것으로 확인되도록 허용하면 보안 위험이 있음을 의미합니다.

관련 정보