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ídadeifconfig
nomeuhost,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