Como acesso um servidor Web em uma caixa virtual a partir da máquina host [fechada]

29

Eu tenho uma máquina Windows Vista na qual o VirtualBox está executando o Ubuntu.

No ubuntu, estou executando um servidor da web no endereço http://127.0.0.1:3000/

Como faço para acessar esse endereço da minha máquina host (a caixa do Windows)?

Argh
fonte
A opção mais simples é usar o encaminhamento de porta. Pode ser configurado em Configuração-> Rede. Verifique este link
spartan
Se você realmente configurou o servidor da Web do convidado em 127.0.0.1, não poderá acessá-lo de fora do convidado. O localhost / 127.0.0.1 é um adaptador de loopback (na memória) e nem exige a instalação da placa de rede para funcionar corretamente. Se você alterar o ip do servidor da web para algo diferente do loopback, as respostas abaixo poderão ajudar.
precisa

Respostas:

28

Você pode alterar o modo de rede de convidado de NAT para Bridged. Apenas feche seu convidado Ubuntu, vá para a página Configurações no VirtualBox, selecione a categoria Rede e altere a caixa de listagem Anexado para do NAT para o Modo ponte.

Editar:

Depois de seguir as etapas acima, reinicie o Ubuntu e o IP alocado será exibido na tela de boas-vindas após o carregamento. na mensagem de boas-vindas, deve dizer algo como:

Endereço IP para eth0: 192.168.1.3

Use esse endereço na barra do navegador da máquina host, seguida pela porta que você está usando. Se for algo diferente da porta 80. ou seja, se você a configurou para usar a porta 666, o endereço seria 192.168.1.3:666

Outra maneira de encontrar o IP é conectar-se ao servidor HTTP incorporado ao seu roteador e procurar nas configurações da LAN. Todas as máquinas da rede devem ser listadas por nome de host e IP. No meu roteador, na maioria dos outros que já tive, você pode fazer isso digitando 192.168.1.1 na barra de endereços. se isso falhar, tente o mesmo endereço na porta 81. Se isso falhar, LEIA O MANUAL.

slm
fonte
Mas então, como você pode descobrir qual é o endereço IP? Thx
SSH Este
Isso vai funcionar, mas a opção de acolhimento somente didnt expor que vm à rede corporativa
Carlos Garcia
2
Eu sou o único aqui que pensa que o ponto de extremidade 127.0.0.1 do convidado pode ser alcançado apenas dentro do convidado (esse é o ponto do host local)? Não deve haver maneira de acessar esse tipo de terminal a partir de qualquer coisa fora da máquina convidada (por ser um adaptador de loopback, ele nem sequer requer uma placa de rede instalada).
Mladen B.
se eu inserir esse 192.1681.3 como o IP para um registro A no Godaddy, ele não funcionará, obviamente ele espera um endereço IP externo; se eu colocar isso, ainda não funciona por algum tempo, quero testar um nome de domínio localmente antes acontecendo EC2
PirateApp
10

Depende de como você configura a rede no sistema operacional convidado do Ubuntu. Se você o configurou para usar o NAT e possui um servidor DHCP em execução na sua rede, basta executar o seguinte:

ifconfig | grep inet

na caixa do Ubuntu - você verá o endereço IP atribuído ao convidado do Ubuntu.

Exemplo:

#ifconfig | grep inet
  inet addr:10.0.0.2  Bcast:10.255.255.255  Mask:255.255.255.0
  inet addr:127.0.0.1  Mask:255.0.0.0

Em seguida, basta clicar em http://10.0.0.2:3000

fsckin
fonte
Bem, no meu caso, o endereço deve ser 10.0.2.15:3000/public e, por padrão, o Vista é executado no modo DHCP .. (a máquina ubuntu também está configurada para usar NAT), no entanto, não estou recebendo uma resposta :(
Argh
Hmmm só percebi que eu não tenho um servidor DHCP - Eu estou correndo para casa vista ...
Argh
O VirtualBox possui seu próprio servidor DHCP que lida com máquinas virtuais - caso contrário, as máquinas virtuais não obteriam automaticamente um endereço IP sem defini-las estaticamente. Acho que seu problema pode ser o fato de você não ter o Apache ouvindo em todas as interfaces - apenas localhost (127.0.0.1). Certifique-se que em / etc / apache2 / sites-available / default a diretriz Listen diz que 80, não 127.0.0.1:80 per help.ubuntu.com/9.04/serverguide/C/httpd.html
Cory Plastek
Esta é provavelmente a causa.
Fsckin
4

Sua caixa do Windows e a caixa do Ubuntu (sejam elas físicas ou virtuais não importam realmente neste caso) precisam ter um endereço IP na mesma sub-rede para que possam se comunicar via TCP / IP. Você pode atribuir um endereço adicional a cada sistema operacional usando uma das sub-redes IP privadas (consulte RFC 1918 ). Quando os dois tiverem um endereço na mesma sub-rede, configure o servidor da Web para escutar o que você deu ao Ubuntu e use esse IP no navegador do Windows para carregá-lo.

O IP que você configurou agora, 127.0.0.1, é o endereço de loopback da interface de rede local. Você nunca usaria esse endereço para acessar algo em um sistema diferente, apenas para se referir ao mesmo sistema em que está. Ao usar um sistema virtual, trate-o como se fosse um computador separado do ponto de vista da rede.

Justin Scott
fonte
2

Para resolver seu problema, sugiro que você adicione um novo adaptador de rede e o configure como adaptador somente para host .

Agora você executa a instância da caixa virtual e o que o fsckin sugeriu para ver qual é o ip da nova rede .

Dessa forma, você tem uma sub-rede com seu computador e sua máquina virtual.

fampinheiro
fonte
So... I did as you said grabbed my IP address. I then tried to access the webserver (which I can access within the guest as 127.0.0.1:3000) using allocatedIP:3000 and I didnt get a response. I could however ping the ip from the host
Argh
Você precisa abrir o firewall na porta 3000.
fampinheiro
Host-única não vai funcionar fora da caixa: serverfault.com/questions/205477/...
givanse
0

Primeiro de tudo, você precisa fazer o que a resposta 1 diz:

"Você pode alterar o modo de rede de convidado do NAT para o Bridged. Basta fechar o seu convidado do Ubuntu, vá para a página Configurações no VirtualBox, selecione a categoria Rede e altere a caixa de listagem Anexado ao do NAT para o modo Bridged."

Então, para obter seu endereço IP:

Na sua máquina virtual, abra um prompt de comando e faça:

ip addr show

Você provavelmente verá uma linha parecida com esta:

inet 192.168.43.96/24 ....

Há também uma linha antes disso com

inet 127.0.0.1

Mas você não quer esse! Você quer o endereço 192. Esse é o endereço da sua máquina virtual na sua rede local. Deve ser acessível por qualquer dispositivo conectado à mesma rede local.

Agora em sua máquina host, edite o arquivo / etc / hosts (Não ~ / etc) O nome do arquivo é hosts (não é um nome de pasta)

adicione uma linha assim:

192.168.43.96 myvm.nameofmywebsite.com

Agora vá ao navegador da máquina host e digite myvm.nameofmywebsite.com

Espero que isso aconteça!

No entanto, você pode ter um roteador com recursos de segurança que atrapalham a visualização do seu endereço local. O que você pode tentar fazer é usar o ponto de acesso do seu celular como sua rede. Isso funciona para mim. Lembre-se de quando você muda de rede na máquina host e precisa reiniciar sua caixa virtual.

Andy Weinstein
fonte