Você precisa criar uma rede de ponte entre o host e a VM. A configuração varia no fornecedor de hipervisor.
Caso você esteja usando o Oracle Virtual Box
- Abra
Oracle VM VirtualBox Manager, selecione a VM e vá para a seção de rede. - Na guia
Adopter 1, altere oNATparaBridged Adopterpadrão e escolha o Network Adopter do host no menu suspensoName. Aplique-o. - Agora configure a rede dentro do VirtualBox de acordo com a configuração do seu provedor, como dinâmica estática, etc.
Se você estiver usando QEMU-KVM
- Abra a ferramenta GUI
Virtual Machine Manager(caso você esteja usando a GUI) - Selecione a máquina virtual específica e
Open. Em seguida, selecione oNIC - Chnage padrão
NATtoHost Device xxxxxx: macvtapapply e, em seguida, configure a rede dentro da Virtual Machine conforme a configuração do ISP. - Se você não tiver a ferramenta GUI, use
virsh edit virtual-machine-namee modifique a configuração conforme descrito anteriormente.
Uma terceira alternativa é criar a regra iptable NAT no host. Em seguida, encaminhe todo o tráfego para esse IP (que você deseja atribuir à VM) ao endereço IP interno da VM. Você tem que escrever alguns iptables linha, por favor google para isso. Mas para mim é o método menos preferido.
NOTE-1 Bridged Network e macvtap não funcionam com a maioria dos WiFi usuários no host.
NOTE-2 No caso de macvtap , seu host estará inacessível da VM e vice-versa. Ambos serão acessíveis a partir da rede externa. Além disso, se você tiver várias VM, elas permanecerão acessíveis umas às outras. Esta é a maneira como o macvtap funciona. Para acessar VM's do host e vice-versa, crie mais um adotador de NAT no caso do Oracle VirtualBox e mais uma NIC com NAT para o QEMU-KVM.
NOTE-3 Para os Bridged Network e macvtap , o adotante de rede do host deve ter um endereço IP reservado por VM, como a pergunta já mencionada.