web-dev-qa-db-fra.com

Comment exécuter une application client-serveur sur des machines virtuelles s'exécutant sur différents ordinateurs?

Bonjour, j'ai deux ordinateurs portables sous Ubuntu 16.04 et Ubuntu 14.04. Chacun d'entre eux dispose d'une machine virtuelle exécutant Solaris 11. Je souhaite exécuter un programme serveur sur une machine virtuelle et un programme client sur une autre machine virtuelle d'un ordinateur portable différent. Est-ce possible?

J'ai essayé googler mais tout ce que j'ai trouvé était des informations sur la connexion de machines virtuelles sur le même ordinateur. S'il vous plaît suggérer comment cela peut être fait.

Merci

Edit: J'essaie de faire cela sur Virtual Box et en utilisant mon wifi à la maison.

3
vikramreddym

Vous avez deux options du point de vue du réseautage:

  1. Beaucoup de NAT. Par défaut, je suppose que vos ordinateurs virtuels sont configurés pour utiliser le mode NAT dans la solution de virtualisation existante, ce qui rend la tâche un peu délicate. Faisable, mais difficile.

  2. "Relie" les ordinateurs virtuels au réseau sur lequel se trouvent les systèmes hôtes, ce qui supprime les maux de tête NAT. C'est l'option la plus facile.



Option 1: VM Mise en réseau en NAT Mode

NOTE: Je n'ai jamais réussi à ce que cela fonctionne de manière fiable, j'ai toujours utilisé le mode ponté qui est beaucoup plus fiable.

VMware et la VBox sont tous deux configurés pour autoriser la traduction d'adresses de réseau et les transferts de port. Tout cela est bien beau, mais il y a quelques maux de tête que cela apporte.


VMWare

Vous ne pouvez pas facilement configurer le transfert de port NAT à moins de disposer de VMware Workstation Pro. En effet, l'éditeur de réseau virtuel pour les transferts de port NAT est non expédié avec Workstation Player ou les anciennes versions du logiciel VMware Player.

En supposant que vous ayez le gestionnaire/éditeur de réseau virtuel, procédez comme suit sur le système doté du VM qui constituera le "serveur":

(1) Ouvrez le gestionnaire de réseau virtuel/éditeur et sélectionnez l’adaptateur avec "NAT" comme liste "connexion externe". On dirait que cette image montre: enter image description here

(2) Sélectionnez "Paramètres NAT", et vous obtiendrez une fenêtre comme celle-ci:

enter image description here

(3) Sous la zone "Redirection de port", cliquez sur "Ajouter". Vous obtenez une fenêtre comme celle-ci:

enter image description here

Définissez les informations comme suit:

Host Port (Port hôte): Il est probable que le serveur écoute le même port sur la machine virtuelle, mais il peut être autre chose si vous le souhaitez.

Tapez: TCP ou UDP dépend de votre serveur et de son écoute. Coffre-fort à assumer TCP ici, cependant, la plupart des tâches du serveur de connexion active sont TCP.

Adresse IP: l'adresse IP de la machine virtuelle. Vous pouvez l'obtenir avec ip -4 addr list depuis l'intérieur de VM sur la ligne de commande.

Virtual Machine Port (Port de la machine virtuelle): port sur lequel l'application serveur va écouter.

Description: Description de l’utilisation de ce port forward.

Vous devrez probablement éteindre temporairement votre VM et redémarrer les services VMware avec Sudo systemctl restart vmware pour qu'il recharge toutes les règles de transfert/pontage de ports.

(4) Démarrez le VM avec le serveur dessus. Sur la machine virtuelle client, assurez-vous d’indiquer au client de se connecter à l’adresse IP de l’ordinateur qui exécute le serveur VM (si le portable avec le serveur VM sur lequel Adresse IP 192.168.250.20, l’application de la machine virtuelle client doit essayer de se connecter à 192.168.250.20.)

Notez que cela ne fonctionnera pas dans tous les cas et je recommande fortement d'utiliser le mode ponté.


VirtualBox

J'ai jamais obtenu VBox NAT transfert de port réseau à se comporter. Si vous utilisez VBox, je vous suggère fortement d'utiliser le mode ponté au lieu du NAT. (Bien que cela ne corresponde pas clairement à la VBox, j’ai essayé de tester ces Port Forwards à partir de la VBox et je n’arrivais pas à le faire fonctionner).

Non pas que je n'ai pas essayé, mais le 16.04, VirtualBox n'a pas été en mesure de se connecter en sortie, et n'a jamais configuré d'interface réseau virtuelle pour les capacités NAT; J'ai alors supposé que cela ne pouvait pas fonctionner correctement sans pontage, mais je ne trouvais pas pourquoi il n'élevait jamais la capacité de NAT.



Option 2: VM Mise en réseau: mode ponté

Vous devrez exécuter les ordinateurs virtuels en mode "ponté", puis utiliser les adresses IP de votre propre réseau LAN/Wifi attribuées aux ordinateurs virtuels (à la suite de l'opération "ponté" permettant aux ordinateurs virtuels de se connecter et de ressembler à ceux-ci). sur le réseau actuel des ordinateurs hôtes).

Tout d’abord, configurez les ordinateurs virtuels sur les deux systèmes pour utiliser le mode "Réseau ponté". La façon dont cela s’affichera sera différente de la solution VM à la solution VM, mais elle indiquera toujours "ponté" ou similaire (au moins, dans VMware ou VBox). Assurez-vous que le périphérique auquel vous êtes "ponté" est votre carte réseau préférée (wifi ou ethernet), de sorte que vous vous connectez correctement au bon réseau avec le VM comme adresse IP.

Deuxièmement, redémarrez les machines virtuelles si elles sont déjà en ligne. Cela devrait leur procurer une nouvelle adresse IP du même réseau que les ordinateurs hôtes. (Il devrait être dans la même plage de sous-réseau même).

Troisièmement, pointez le client de l'un VM vers l'IP du serveur sur l'autre VM. Parce que le réseau est ponté, il devrait simplement se connecter. Vous devrez peut-être modifier les ordinateurs virtuels sur les invités pour vous assurer qu'il autorise les connexions.

Cela devrait être le cas pour les machines virtuelles et elles devraient pouvoir s’interconnecter sans problème.

3
AquariusOne