Cómo acceder al host localhost de virtualbox desde el navegador invitado

Cómo acceder al host localhost de virtualbox desde el navegador invitado

Estamos en 2019, estoy ejecutando Win 10 en mi VirtualBox. Y básicamente quiero redirigir localhost a 10.0.2.2 (que es la ip de la máquina host)

10.0.2.2 localhost 

Esto no parece funcionar, algunas personas han informado que Windows 10 deshabilita intencionalmente la búsqueda de localhost. No estoy seguro de por qué harían eso.

Pero estoy tratando de encontrar una solución alternativa que pueda resolver este problema para poder acceder a las URL de mi host localhost.

Respuesta1

Ahora los servicios dentro y fuera de la máquina requieren que la aplicación se ejecute en un origen de host local. Entonces no puedo ejecutarlo en 10.0.2.2

Configure un proxy/reenviador TCP o HTTP que escuche las máquinas virtuales localhosty reenvíe las conexiones reales al destino correcto.

Para HTTP, un proxy inverso como Nginx o Apache sería el enfoque más sencillo. Literalmente, solo necesitarías un VirtualHost con ProxyPass / http://10.0.2.2/. Para otros protocolos, tanto Nginx como HAproxy también admiten el reenvío de flujo.

También puede utilizar cualquier otro reenviador TCP, como SSH -Lo -Rreenvío (dependiendo de si el host o el invitado tiene un servidor SSH), o incluso el netsh int portproxy.

Por ejemplo, para reenviar el puerto 443 en el invitado de Windows:

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

Alternativamente, si el invitado tiene PuTTY instalado y el host tiene un servidor SSH:

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

Algunas personas han informado que Windows 10 deshabilita intencionalmente la búsqueda de localhost. No estoy seguro de por qué harían eso.

En general, hay dos razones principales por las que Windows podría haber hecho esto:

  1. El nombre localhostes "bien conocido", es decir, se acepta ampliamente que se resuelve en direcciones de bucle invertido; no solosuceder aresolver a 127.0.0.1 o ::1, esdestinado aresuelve en 127.0.0.1 o ::1 y ya tiene varias décadas de historia haciéndolo. Por lo tanto, es completamente natural que un sistema operativo tenga dicha regla incorporada.

    De hecho, incluso si encuentra una manera de evitar Windows, encontrará que muchosnavegadores webTambién tenemos dicha regla incorporada, independientemente de lo que haga el sistema operativo. (Por ejemplo, aquí estáEl código fuente de Chromiummostrando que tiene un mapeo codificado para 'localhost' y ni siquiera se molestará en preguntarle al sistema operativo). Incluso hay un IETFproyecto de normalo que lo exigiría a nivel de resolución.

  2. Los navegadores web a menudo se consideran localhostun origen seguro: pueden proporcionar más API para otras URL http://localhostque para otras http://. Por supuesto, esto significa que permitir que localhost resuelva cualquier cosa que no sea 127.0.0.1/::1 sería un riesgo para la seguridad.

información relacionada