Como acessar o host localhost do virtualbox a partir do navegador convidado

Como acessar o host localhost do virtualbox a partir do navegador convidado

Então é 2019, estou executando um Win 10 no meu VirtualBox. E quero basicamente redirecionar o localhost para 10.0.2.2 (que é o ip da máquina host)

10.0.2.2 localhost 

Isso parece não funcionar, algumas pessoas relataram que o Windows 10 desativa intencionalmente a pesquisa do host local. Não sei por que eles fariam isso.

Mas estou tentando encontrar uma solução alternativa que possa resolver esse problema para que eu possa acessar os URLs do host local do meu host.

Responder1

Agora, os serviços dentro e fora da máquina exigem que o aplicativo esteja em execução em uma origem localhost. Então não posso executá-lo em 10.0.2.2

Configure um proxy/encaminhador TCP ou HTTP que escute nas VMs localhoste encaminhe as conexões reais para o destino correto.

Para HTTP, um proxy reverso como Nginx ou Apache seria a abordagem mais fácil. Você literalmente só precisaria de um VirtualHost com ProxyPass / http://10.0.2.2/. Para outros protocolos, tanto o Nginx quanto o HAproxy também suportam encaminhamento de fluxo.

Você também pode usar qualquer outro encaminhador TCP, como SSH -Lou -Rencaminhamento (dependendo se o host ou o convidado possui um servidor SSH), ou mesmo o netsh int portproxy.

Por exemplo, para encaminhar a porta 443 no convidado do Windows:

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

Alternativamente, se o convidado tiver o PuTTY instalado e o host tiver um servidor SSH:

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

algumas pessoas relataram que o Windows 10 desativa intencionalmente a procura de localhost. Não sei por que eles fariam isso

Em geral, existem duas razões principais pelas quais o Windows pode ter feito isso:

  1. O nome localhosté "bem conhecido", ou seja, é amplamente aceito que ele resolve endereços de loopback – não apenasacontecerresolver para 127.0.0.1 ou ::1, épretendiaresolve para 127.0.0.1 ou ::1 e já tem várias décadas de história fazendo isso. Portanto, é completamente natural que um sistema operacional tenha tal regra integrada.

    Na verdade, mesmo que você encontre uma maneira de contornar o Windows, você descobrirá que muitosnavegadores da webtambém possuem essa regra integrada, independentemente do que o sistema operacional faz. (Por exemplo, aqui estáCódigo fonte do Chromiummostrando que ele possui um mapeamento codificado para 'localhost' e nem se incomoda em perguntar ao sistema operacional.) Existe até um IETFprojeto de normao que o obrigaria no nível do resolvedor.

  2. Os navegadores da Web geralmente consideram localhostuma origem segura – eles podem fornecer mais APIs do http://localhostque outras http://URLs. É claro que isso significa que permitir que o host local resolva algo diferente de 127.0.0.1/::1 seria um risco de segurança.

informação relacionada