NAT do Virtualbox e conexão somente de host

0

Como estou trabalhando em vários locais, tenho problemas com meus servidores de desenvolvimento. Como trabalho em várias redes, não desejo definir as configurações de rede de minhas máquinas virtuais sempre que mudar de rede. Às vezes, a rede exige que eu use o DHCP. (bibliotecas públicas e similares)

Além disso, eu tenho que mudar o adaptador de rede frequentemente, eu prefiro ethernet, mas às vezes eu tenho que trabalhar sem fio.

Portanto, muitas redes diferentes e até adaptadores diferentes.

Requisitos

  • conexão com a Internet
  • Acessar máquina host da máquina convidada
  • Acessar a máquina convidada da máquina host

Estou procurando uma configuração para que eu não precise alterar minhas configurações de rede (máquinas virtuais). Porque eu tive que mudar de rede (adaptador)

Especificações

máquina host: Ubuntu, Virtualbox máquina convidada: debian. interface sem fio: wlp2s0 adaptador eth: eth1

Tentativa nº 1

Apenas use NAT.

  • Adicionado um adaptador NAT ao Virtualbox: (10.0.2.0/24, DHCP ativado)
  • Adicionou um adaptador NAT à máquina Convidada.
  • Configure a interface de convidado:
    • auto eth1
    • allow-hotplug eth1
    • iface eth1 inet static
    • endereço 10.0.2.5
    • netmask 255.255.255.0
    • gateway 10.0.2.2
    • rede 10.0.2.0
    • transmissão
    • 10.0.2.255

Com esta configuração, o seguinte funciona:

  • conexão com a Internet
  • Acessar a máquina host da máquina convidada

Com esta configuração, o seguinte não funciona:

  • Acessar a máquina convidada da máquina host

Isso parece ser uma limitação ao usar o NAT.

Tentativa nº 2

NAT em combinação com conexão em ponte:

  • Adaptador NAT do Virtualbox (10.0.2.0/24, DHCP ativado)
  • Adaptador em ponte do Virtualbox (192.168.56.1/24, DHCP ativado)

Porque às vezes eu tenho que mudar de wireless para Ethernet Eu também tentei configurar um adaptador em ponte para ambos os adaptadores de rede na máquina host.

IP da máquina host: 192.168.56.101 IP da máquina convidada: 192.168.56.100

Com esta configuração, o seguinte funciona:

  • conexão com a Internet
  • Acessar a máquina host da máquina convidada

Com esta configuração, o seguinte não funciona:

  • Acessar a máquina convidada da máquina host

Este exemplo tem um problema porque, para uma conexão em ponte, o IP da máquina host deve ser definido no intervalo do intervalo IP do adaptador em ponte. Às vezes eu não posso porque sou obrigado a usar o DHCP.

Dado os detalhes das minhas tentativas, vocês podem me aconselhar uma configuração alternativa para alcançar meus objetivos?

    
por Beach Chicken 28.06.2017 / 22:39

2 respostas

0

OK, então existem duas maneiras de fazer isso.

1) Use a rede NAT do VirtualBox no cliente. Isso não fornece uma rota direta de sua máquina host, mas você pode definir preferências para encaminhar portas. É um pouco complicado configurar, mas se a máquina host era Windows ou Mac, isso é o que eu provavelmente faria, principalmente porque não tenho certeza sobre os recursos de firewall / natting / routing nesses sistemas (tenho certeza que o Mac não faria isso). t tem um problema, mas o Windows é desconhecido para mim)

2) Use a rede somente host do VirtualBox. De sua descrição, isso pode ser melhor. Esteja ciente de que você precisará alterar o script de firewall para apontar para qualquer dispositivo conectado ... Aqui estão os detalhes.

Na máquina host, configure primeiro a Rede somente host nas preferências da sua vbox. No gerenciador, clique em Arquivo, Preferências e, em seguida, selecione Rede. Passe para Host Only e adicione um, se necessário. Aqui está o meu:

Emseguida,nohost,configureainterfacevboxnet0.Issoaconteceautomaticamenteparamim,configurandominhamáquinahostparaoendereço.1nasub-rede.Aquiestáasaídadeifconfignomeuhost,referenciandomeuendereçoethernetevboxnet0.

Em sua máquina convidada, defina a rede para algum endereço em sua sub-rede (mesmo com o servidor DHCP ativado, isso facilita a obtenção do servidor gateway / dns) e defina um servidor de nomes da maneira usual (por exemplo, editar /etc/network/interfaces e definir o endereço estático / máscara de rede / gateway lá, em seguida, edite /etc/resolv.conf e defina um servidor de nomes lá).

Neste ponto, sua máquina host e sua máquina convidada devem poder se comunicar sem problemas. Você pode colocar as entradas apropriadas em /etc/hosts para não precisar inserir os IPs em todos os lugares ...

O último passo é levar a internet para o hóspede. Esta é uma simples questão de transformar o host em um roteador. Como a interface vboxnet0 não aparece até que o vbox esteja ativo e em execução, você não quer fazer isso no momento da inicialização do host.

Um script de firewall simples para permitir que o convidado vm acesse o mundo, e a máquina host ainda pode acessar o mundo e o convidado na rede vboxonly. Esteja ciente de que esse script pode ser MUITO mais seguro . Do jeito que está, ele aceitaria algum cliente em qualquer rede em que o host estivesse conectado usando sua máquina host como um gateway para o guest vm.

#!/bin/bash

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables='which iptables'

$iptables -F

/sbin/iptables -t nat -A POSTROUTING -o enp2s0 -j MASQUERADE

$iptables -A FORWARD -i enp2s0 -o vboxnet0 -j ACCEPT
$iptables -A FORWARD -i vboxnet0 -o enp2s0 -j ACCEPT
    
por 29.06.2017 / 02:26
0

Eu estava lutando com esse problema até alguns dias atrás. Para corrigir isso, uma configuração simples exigiria o uso de dois adaptadores no convidado.

  1. NAT: Isso permitiria a comunicação do convidado para redes externas e o também convidado para hospedar. Para visualizar o IP a ser usado para comunicação com o host, veja o IP do host na ifconfig / ipconfig output no convidado. Este é o gateway para a rede NAT. Isso não apareceria em ifconfig no host, já que um VirtualBox cria uma rede NAT para cada uma das VMs.

  2. Somente host: isso permitiria a comunicação entre o host e o convidado. Por padrão, o VirtualBox atribui IPs convidados usando DHCP, mas você pode atribuir IP estático para o convidado usando um IP abaixo de 192.168.56.100

Você também pode configurar um terceiro adaptador opcional interno se tiver mais de um convidado e quiser se comunicar entre os convidados. Aqui está a pergunta que eu havia feito na semana passada sobre esse assunto: * Edit * Make virtualbox host apenas bidirecional de rede

    
por 19.11.2017 / 15:43