지금은 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가 그렇게 한 이유는 두 가지입니다.
이름
localhost
은 "잘 알려진" 것입니다. 즉, 루프백 주소로 확인된다는 것이 널리 받아들여지고 있습니다.일어나 다127.0.0.1 또는 ::1로 확인하면대로하려고했는데127.0.0.1 또는 ::1로 확인하면 이미 수십 년 동안 그렇게 한 역사가 있습니다. 따라서 OS에 이러한 규칙이 내장되어 있는 것은 완전히 자연스러운 일입니다.실제로 Windows를 우회하는 방법을 찾더라도 그렇게 많은 것을 발견하게 될 것입니다.웹 브라우저또한 OS의 기능에 관계없이 이러한 규칙이 내장되어 있습니다. (예를 들어, 다음은Chromium의 소스 코드'localhost'에 대한 하드코딩된 매핑이 있고 OS에 묻지도 않을 것임을 보여줍니다.) 심지어 IETF도 있습니다.초안 표준이는 확인자 수준에서 이를 의무화합니다.
웹 브라우저는 종종
localhost
안전한 출처로 간주됩니다. 즉, 다른 URLhttp://localhost
보다 더 많은 API를 제공할 수 있습니다.http://
물론 이는 localhost가 127.0.0.1/::1 이외의 다른 것으로 확인되도록 허용하면 보안 위험이 있음을 의미합니다.