Endereçamento localhost a partir de uma máquina virtual VirtualBox
-
12-09-2019 - |
Pergunta
Eu tenho um servidor de teste / desenvolvimento local (HTTP, é claro), ouvindo a porta 8000.
Eu estou trabalhando em Linux, de modo a testar a página no Internet Explorer 6, 7, 8, etc. I executar uma máquina virtual utilizando VirtualBox; Eu também preciso ver como ele olhar para o Firefox em um ambiente Windows (fontes por exemplo, são diferentes).
Na minha máquina real, eu abro o site simplesmente usando o http://localhost:8000
URL, como posso resolver esse localhost da máquina virtual?
Agora minha solução é usar o endereço IP. Alguma idéia melhor?
Solução
Googling virou isto: http://data.agaric.com / localhost-de-virtualbox-xp-install-ubuntu
Ele sugere o uso de IP:. http://10.0.2.2
, e funcionou para mim
Então, eu editei o arquivo hosts, C:\windows\system32\drivers\etc\hosts
, e acrescentou esta entrada:
10.0.2.2 outer
Se você está testando no IE8, lembre-se de colocar http://
na barra de endereços. Basta colocar o ip diretamente não vai funcionar.
Por exemplo:
http://10.0.2.2:3000/
Outras dicas
MacOS
Estou executando o Virtual Box no MacOS (anteriormente OS X), usando o Virtual Box para testar o IE no Windows, etc.
Vá para o IE no Virtual Box e acesso localhost
via http://10.0.2.2
para localhost
, ou http://10.0.2.2:3000
para localhost:3000
.
Eu mantive configurações de rede como NAT, sem necessidade de ponte como sugerido acima, no meu caso. Não há necessidade de editar quaisquer arquivos de configuração.
Para ativar isso em OSX eu tinha que fazer o seguinte:
- Cala a baixo máquina virtual.
- Vá para
VirtualBox Preferences -> Network -> Host-only Networks ->
clique no ícone "+". Clique em OK. - Selecione sua caixa e clique no
"Settings" icon -> Network -> Adapter 2 ->
Por "Anexado ao:" suspensa, selecione "host-only Adapter" e sua rede (vboxnet0
) deve aparecer abaixo por padrão. Clique em OK. - Uma vez que você começar a sua caixa de novo, você deve ser capaz de acessar localhost na
http://10.0.2.2/
Você pode se referir a ele por localhost
e acessar outros sites localhosted adicionando suas referências ao arquivo de hosts (C:\windows\system32\drivers\etc\hosts
) como o seguinte:
10.0.2.2 localhost
10.0.2.2 subdomain.localhost
É mais provável ter set rede da sua máquina virtual para NAT. Se você definir sua rede de ponte você deve ser capaz de acessar sua máquina host por seu nome de host. Por exemplo, se o seu nome de host é “jsmith-Precision-7510” e que pretende abrir http: // localhost: 3000 / , você será capaz de visualizar essa página em http: // jsmith-Precision-7510: 3000 / .
Para encontrar o seu hostname, abra um / console terminal e, em seguida, executar o hostname
comando. Seu nome de host será mostrado na próxima linha.
Veja a VirtualBox documentação para obter instruções sobre como configurar sua rede setttings a ponte.
Eu tive que ir para o VirtualBox e mudar minhas configurações de rede para 'NAT'. Depois disso, eu era capaz de bater localhost
em execução no meu computador central do meu emulador no VirtualBox através http://10.0.2.2:3000
Eu achei que as obras 10.0.2.2:<port>
, mas somente se o modo promíscuo está configurado corretamente. Depois de instalar a minha VM, fui para Configurações> Rede> Adaptador 1.
NAT é definido por padrão, eo suspenso modo promíscuo é desativado. Troquei de NAT para ponte adaptador, o que permitiu a lista suspensa modo promíscuo, e depois mudou o valor de "Deny" para "Permitir VMs". Eu, então, voltou para NAT, que pessoas com deficiência modo promíscuo novamente, mas manteve o novo valor.
Depois de apenas esta mudança, eu era capaz de lançar meu VM e vê as minhas máquinas host
localhost:<port>
no meu VM em 10.0.2.2:<port>
.
Se você tiver adaptador ligado para NAT , hoje em dia é melhor e mais elegante solução para o encaminhamento de porta conjunto de portas locais.
Settings
> Network
> Adapter
> Advanced
> Port forwarding
Apenas inserção nova regra e conjunto Host port
e Guest port
para 80
(para http) ou 22
(para ssh), e assim por diante.
Em seguida, você pode acessar essa máquina, digitando apenas http://localhost
MacOS
Se você quiser configurar um ambiente de janelas com o VirtualBox em um mac, basta usar as configurações de NAT padrão no adaptador, e em suas janelas VM, vá para o arquivo hosts e adicione a seguinte:
10.0.2.2 localhost
10.0.2.2 127.0.0.1
Diferentemente das respostas acima, é importante incluir ambas as linhas, caso contrário não vai funcionar.
Você precisa editar o arquivo hosts em sua máquina virtual do Windows da mesma forma que você faz para a sua máquina host local:
C: \ WINDOWS \ system32 \ drivers \ etc \ hosts
E vincular seus hosts virtuais para 10.0.2.2, Se você estiver usando apenas localhost, em seguida, substitua
127.0.0.1 localhost com 10.0.2.2 localhost
Por exemplo:
10.0.2.2 localhost
10.0.2.2 local.site1.com
10.0.2.2 local.site2.com
Isto diz sua máquina virtual para apontar para sua máquina local para esses nomes de domínio.
Você não precisa de arquivo de mudança hospedeiros ou qualquer configuração Virtual Box. Mantenha as configurações no NAT. Vá para a sua instância do Windows e executar "cmd" ou cmd.exe aberto. Executar comando "ipconfig" e obter o Gateway padrão Endereço IP. Navegar http://10.0.2.2:8080 no Windows IE você vai ver é o mesmo do que o seu Mac Safari http: // localhost: 8080 / ou http://127.0.0.1:8080
A combinação de algumas coisas, eventualmente, tem coisas que trabalham no meu fim. Executando um servidor frasco em MacOSX.
Em minhas janelas VM eu editei o arquivo hosts:
- Executar o bloco de notas como administrador
-
C:\windows\system32\drivers\etc\hosts
aberta ??li> - adicionar esta entrada:
10.0.2.2 outer
Shutdown VM e no meu Mac no VirtualBox:
- Vá para
VirtualBox > preferences > Network > Host-only Networks > +
para adicionar uma redevboxnet1
- Vá para
My_VM > settings > Network > Adapter 1
. - Selecionar
Enable Network Adapter
e conjuntoAttached to:
paraBridged Adapter
. - Em seguida, defina
Advanced > Promiscuous Mode:
paraAllow VMs
. - Clique
OK
- Vá para
My_VM > settings > Network > Adapter 1
. - Set
Attached to:
volta paraNAT
.
Depois fui para Adapter 2
- Set
Attached to:
paraHost-only Adapter
e selecione ovboxnet1
rede adicional anterior.
Eu comecei meu servidor no meu mac, rodando em 127.0.0.1:5000
e este foi agora acessível no meu vm em http://10.0.2.2:5000
O homem que é um pesadelo para teste no IE no Mac. Como não existe uma maneira mais simples?
I resolvido adicionando um encaminhamento de porta em ambientes VirtualBox em rede. Host IP definir 127.0.0.1 port: 8080 ip visitantes: Dê qualquer IP para o site (digamos 10.0.2.5) port: 8080 Agora, a partir de acesso máquina convidada http://10.0.2.5:8080 usando o IE
Na Caixa virtual como disse superior, você pode adicionar este arquivo linha anfitriões
10.0.2.2 outer
mas para salvá-lo, se você não tem administradores direito em sua VM apenas mover o arquivo hosts para desktop, em seguida, editá-lo para adicionar a linha de 10,0 .... exterior, salve o arquivo, e passar para seu lugar original .
verificar se você pode bater a sua máquina principal com:
ipconfig
(obter o seu endereço IP)
ping <ip>
ou telnet <ip> <port>
Se você não pode chegar ao porto, tente adicionar uma nova regra de entrada em seu pai firewall permitindo portas locais.
Eu era então capaz de acesso http://<ip>:<port>
Em Virtual Box
- Definir sua rede de ponte de rede
- Vá para Avançado definir modo promíscuo: Permitir todos
Agora, a pouco complicado é o seu localhost, se você estiver executando a partir Node.js definir o endereço IP para 0.0.0.0, em seguida, pesquisar o seu próprio endereço IP, por exemplo cmd: ipconfig -> 10.0.1.3
Digite o endereço com o número da porta. E ele vai trabalhar.
General etapas:
- Uma rede comum, (host-only add ou ponte NIC)
- serviço preferido configure para escutar na interface apropriada (interface conectada à NIC compartilhada)
- Use IP: Porto para chegar serviço alvo, use um IP que pertencem a rede compartilhada .
No Windows com um virtual do Windows 7, a única coisa que funcionou para mim estava usando NAT e porta-forwarding (conexão não pôde se em ponte em execução). Eu encontrei um tutorial aqui: http://www.howtogeek.com/122641/how-to-forward-ports-to-a-virtual-machine-and-use-it-as-a-server/ (desloque-se para a parte com " Encaminhamento de Portas a uma máquina virtual ").
Com estas mudanças que eu pudesse alcançar o site xampp com " http: //192.168.xx.x: 8888 / mywebsite " no Internet explorer 10 na minha máquina virtual.
Eu encontrei o IP no Painel de Controle XAMPP> Netstat ( "Sistema").
Se você usar o Virtual Box você pode conectar Mac OSX (e eu acho Linux) para sua máquina Windows virtual usando uma linha de código -.> Sugiro parar a caixa antes de executar este no Terminal
VBoxManage modifyvm "YOUR VM NAME" --natdnshostresolver1 on
Vou tomar nota que este é dos docs bote, que estou correndo, mas é um comando Virtual Box por isso não deve realmente importa o que você usar, contanto que seu Virtual Box
Eu preciso correr em localhost, não algum IP estranho.
1) A partir do seu terminal de Mac, faça iconfig -a
para encontrar o seu endereço IP local. É provavelmente a última.
en7: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=10b<RXCSUM,TXCSUM,VLAN_HWTAGGING,AV>
ether 38:c9:86:32:0e:69
inet6 fe80::ea:393e:a54f:635%en7 prefixlen 64 secured scopeid 0xe
inet 10.1.5.60 netmask 0xfffffe00 broadcast 10.1.5.255
nd6 options=201<PERFORMNUD,DAD>
media: autoselect (1000baseT <full-duplex,flow-control>)
status: active
por exemplo. 10.1.5.60
2) inicialização imagem de suas janelas. Iniciar> tipo cmd
para obter um terminal
3) notepad c:\windows\system32\drivers\etc\hosts
4) adicione a seguinte linha
10.1.5.60 localhost
5) abra o IE, e o seguinte url deve bater o servidor rodando em seu Mac: http://localhost:3000/
Obter o IP para a máquina rodando Apache (inet addr: em ifconfig
). E digite que na barra de endereço do navegador caixa virtual
Na verdade, a resposta de user477494 é, em princípio correto.
Eu apliquei a mesma lógica em outros ambientes (OS X acolhimento - virtual do Windows XP) e que faz o truque. Eu tive que ciclo o anfitrião LAMP pilha para obter o endereço IP e Apache porta para resolver, mas uma vez que eu percebi isso, eu estava rindo.