Você tem duas opções de uma perspectiva de rede:
-
Muita NAT. Por padrão, suponho que suas VMs estejam configuradas para usar o modo NAT em qualquer solução de virtualização que você tenha, o que torna isso um pouco complicado. Factível, mas complicado.
-
"Conecte" as VMs à rede real em que os sistemas host também estão, o que remove as dores de cabeça do NAT. Essa é a opção mais fácil.
Opção 1: Rede de VMs no modo NAT
NOTA: Nunca consegui que isso funcionasse de forma confiável, sempre usei o modo Bridged, que é muito mais confiável.
VMware e VBox estão configurados para permitir NAT e encaminhamento de porta. Tudo isso é bom e elegante, mas há algumas dores de cabeça que isso traz.
VMWare
Você não pode configurar facilmente o encaminhamento de porta NAT, a menos que tenha o VMware Workstation Pro. Isso ocorre porque o editor de rede virtual para encaminhamento de porta NAT é não enviado com o Workstation Player ou as versões mais antigas do software VMware Player.
Supondo que você tenha o Virtual Network Manager / Editor, faça o seguinte no sistema que tem a VM que será o 'servidor':
(1) Abra o Virtual Network Manager / Editor e selecione o adaptador com "NAT" como a listagem "conexão externa". Vai parecer algo como esta imagem mostra:
(2) Selecione "Configurações NAT" e você terá uma janela como esta:
(3) Na área "Port Forwarding", clique em "Add". Você tem uma janela como esta:
Defina as informações da seguinte forma:
Host Port: Provavelmente a mesma porta que você está tendo o servidor escuta na VM, mas pode ser outra coisa se você quiser.
Tipo: TCP ou UDP depende do seu servidor e de como ele ouve. Seguro para assumir TCP aqui, no entanto, a maioria das coisas do servidor de conexão ativa são TCP.
Endereço IP: o endereço IP da VM. Você pode obter isso com
ip -4 addr list
de dentro da VM na linha de comando.Porta da máquina virtual: a porta em que o aplicativo do servidor será escutando.
Descrição: uma descrição do que é este encaminhamento de porta.
Você provavelmente terá que desligar sua VM temporariamente e reiniciar os serviços VMware com sudo systemctl restart vmware
para recarregar todas as regras de encaminhamento de porta / bridging.
(4) Inicie a VM com o servidor nela. Na VM do cliente, certifique-se de informar ao cliente para se conectar ao endereço IP do computador que está executando a VM do servidor (portanto, se o laptop com a VM do servidor tiver o endereço IP 192.168.250.20, o aplicativo da VM cliente deve tente conectar-se a 192.168.250.20.)
Note que isso não funcionará em todos os casos, e eu recomendo strongmente o uso do modo Bridged.
VirtualBox
Eu tenho nunca consegui encaminhamento de porta de rede VBox NAT para me comportar. Se você estiver usando o VBox, sugiro strongmente que use o modo Bridged em vez do NAT. (Embora isso não responda claramente ao VBox, tentei testar esses Port Forwards do VBox e não consegui fazê-lo funcionar).
Não que eu não tenha tentado, mas no 16.04, o VirtualBox não conseguiu se conectar de saída a nada e nunca configurou interfaces de rede virtual para os recursos NAT; Assumi então que não pode funcionar sem o Bridged, mas não consigo descobrir por que ele nunca trouxe a capacidade do NAT.
Opção 2: Rede de VMs: modo em ponte
Você precisará executar as VMs no modo "Bridged" e, em seguida, usar os endereços IP de sua própria rede LAN / Wifi atribuídos às VMs (como resultado de "ponte" permitindo que as VMs se conectem e se pareçam eles estão na rede real dos computadores host).
Primeiramente, configure as VMs nos dois sistemas para usar o modo "Bridged Network". Como isso é mostrado será diferente da solução de VM para a solução de VM, mas sempre será "Bridged" ou semelhante (pelo menos no VMware ou no VBox). Certifique-se de que o dispositivo com o qual você está "em ponte" seja sua placa de rede preferida (Wi-Fi ou Ethernet), para que você esteja saindo corretamente para a rede correta com a VM para um endereço IP.
Em segundo lugar, reinicie as VMs se elas já estiverem on-line. Isso deve fornecer a eles um novo endereço IP da mesma rede que as máquinas host. (Deve estar no mesmo intervalo de sub-rede mesmo).
Em terceiro lugar, aponte o cliente da VM para o IP do servidor na outra VM. Como a rede é Bridged, ela deve se conectar. Você pode ter que ajustar as VMs nos convidados para ter certeza de que permite conexões.
Deveria ser, então, para as VMs, e elas devem poder se interconectar sem problemas.