Como executar um aplicativo cliente-servidor em máquinas virtuais em execução em computadores diferentes?

3

Olá eu tenho dois laptops rodando Ubuntu 16.04 e Ubuntu 14.04. Cada um deles tem uma máquina virtual executando o Solaris 11. Eu quero executar um programa de servidor em uma máquina virtual e um programa cliente em outra máquina virtual de um laptop diferente. Isso é possível fazer?

Eu tentei pesquisar no Google, mas tudo que encontrei foi informações sobre a conexão de máquinas virtuais no mesmo computador. Por favor, sugira como isso pode ser feito.

Obrigado

Edit: Eu estou tentando fazer isso na caixa virtual e usando meu wifi em casa.

    
por vikramreddym 24.02.2017 / 01:44

1 resposta

2

Você tem duas opções de uma perspectiva de rede:

  1. 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.

  2. "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.

    
por AquariusOne 24.02.2017 / 03:34