Si vous avez déjà utilisé VMware Workstation Pro sur votre ordinateur, vous avez surement déjà remarqué qu'il était possible de contrôler une machine virtuelle VMware Workstation à distance en utilisant n'importe quel client VNC.
Bien que cela ne soit indiqué nulle part pour l'hyperviseur VMware ESXi, il est tout de même possible de faire la même chose. Autrement dit, contrôler une machine virtuelle de votre hyperviseur VMware ESXi à distance depuis votre client VNC favori.
Attention : bien que cela fonctionne aussi bien que sous VMware Workstation, cette technique n'est pas supportée officiellement par VMware.
Vous ne devriez donc pas utiliser cette technique en entreprise. De plus, cela nécessite la modification d'un fichier de configuration de votre hyperviseur VMware ESXi, ainsi que la configuration de son pare-feu.
Ce qui pourra poser problème si vous souhaitez contacter plus tard le support de VMware, car ils verront que ce fichier aura été modifié manuellement.
Ce tutoriel est donc destiné aux personnes utilisant un serveur sous VMware ESXi à la maison ou pour des tests, mais qui n'ont pas besoin du support de VMware.
Important : cette fonctionnalité cachée a été retirée depuis VMware vSphere 7.0, comme vous pouvez le voir sur la page "Notes de mise à jour de VMware vSphere 7.0".
Pour commencer, vous devrez activer le protocole SSH de votre hyperviseur VMware ESXi afin de pouvoir effectuer les modifications nécessaires en ligne de commandes.
En effet, cette option n'est pas disponible via l'interface graphique étant donné que VMware ne la supporte pas par défaut pour VMware ESXi.
Utilisez votre client SSH préféré.
Par exemple : PuTTY sous Windows.
Pour pouvoir accéder à vos machines virtuelles via le protocole VNC, vous devez modifier le fichier de configuration "/etc/vmware/firewall" de votre hyperviseur VMware ESXi.
Néanmoins, comme vous pouvez le voir, ce fichier est en lecture seule par défaut (droit "r" = "read" = "droit de lecture").
Bash
ls -an /etc/vmware/firewall
Plain Text
-r--r--r-- 1 0 0 20822 Aug 5 2019 service.xml
Pour pouvoir modifier ce fichier, vous devez donc d'abord modifier ses droits grâce à ces commandes :
Bash
chmod 644 /etc/vmware/firewall/service.xml chmod +t /etc/vmware/firewall/service.xml
Comme vous pouvez le voir, les droits ont été modifiés pour ce fichier :
Bash
ls -an /etc/vmware/firewall
Plain Text
-rw-r--r-T 1 0 0 21167 Nov 16 10:02 service.xml
Ensuite, modifier ce fichier de configuration grâce à "vi" :
Bash
vi /etc/vmware/firewall/service.xml
Allez à la fin de ce fichier en appuyant sur "SHIFT + G", puis passer en mode insertion dans "vi" en appuyant une fois sur la lettre "i".
Juste avant le "</ConfigRoot>" situé à la fin de ce fichier, rajoutez le bloc ci-dessous.
Note : remplacez la valeur "SERVICE_UNIQUE_ID" par un ID de service unique dans ce fichier.
Notez que les services sont triés par défaut par leur ID.
Dans notre cas, le dernier service de ce fichier à l'ID "0044".
Donc, nous avons utilisé l'ID de service "0045" pour le service VNC.
Plain Text
<!-- VNC server --> <service id='SERVICE_UNIQUE_ID'> <id>VNC</id> <rule id='0000'> <direction>inbound</direction> <protocol>tcp</protocol> <porttype>dst</porttype> <port> <begin>5900</begin> <end>5964</end> </port> </rule> <enabled>true</enabled> <required>false</required> </service>
Ensuite, appuyez une fois sur la touche "Esc" (ou "Echap") de votre clavier pour passer en mode "commandes" et tapez ":wq" (sans les guillemets).
Ensuite, pour restaurer les droits par défaut de ce fichier, utilisez la commande :
Bash
chmod 444 /etc/vmware/firewall/service.xml
Vérifiez les droits de ce fichier grâce à cette commande :
Bash
ls -an /etc/vmware/firewall
Comme prévu, ce fichier est de nouveau en lecture seule.
Plain Text
-r--r--r-- 1 0 0 21167 Nov 16 10:02 service.xml
Rafraichissez les règles du pare-feu de votre hyperviseur VMware ESXi pour que ce changement soit pris en compte.
Bash
esxcli network firewall refresh
Activez la nouvelle règle "VNC" que vous venez de créer dans le pare-feu de votre hyperviseur :
Bash
esxcli network firewall ruleset set --ruleset-id VNC --enabled true
Affichez la liste des règles du pare-feu.
Bash
esxcli network firewall ruleset list
Vers la fin de la liste qui s'affiche, vous devriez voir votre règle "VNC" apparaitre :
Plain Text
Name Enabled ---------------------- ------- ... VNC true
Ensuite, liste les règles présentes dans les règles du pare-feu :
Bash
esxcli network firewall ruleset rule list
Plain Text
Ruleset Direction Protocol Port Type Port Begin Port End ---------------------- --------- -------- --------- ---------- -------- ... VNC Inbound TCP Dst 5900 5964
Dans l'interface web de votre hyperviseur VMware ESXi, allez dans : Mise en réseau -> Règles du pare-feu.
A la fin de la liste qui s'affiche, vous trouverez votre règle concernant VNC.
Sources officielles utilisées :
Maintenant que le pare-feu de votre hyperviseur VMware ESXi a été configuré, vous devez activer le contrôle à distance via VNC sur les machines virtuelles souhaitées.
Pour cela, sélectionnez la machine virtuelle souhaitée et cliquez sur "Modifier".
Allez dans "Options VM -> Avancé" et cliquez sur le bouton : Modifier la configuration.
Dans la fenêtre "Paramètres de configuration" qui apparait, cliquez sur : Ajouter un paramètre.
Plusieurs lignes apparaitront.
Cliquez sur les cases pour ajouter les paramètres suivants :
Plain Text
RemoteDisplay.vnc.enabled="TRUE" RemoteDisplay.vnc.port=5900
Le paramètre "RemoteDisplay.vnc.enabled" permet d'activer le contrôle à distance de cette machine virtuelle via le protocole VNC.
Le paramètre "RemoteDisplay.vnc.port" permet de définir sur quel port sera accessible cette machine virtuelle via votre client VNC préféré.
Important : le port utilisé doit être unique par machine virtuelle.
En effet, étant donné que le serveur VNC se trouve sur votre hyperviseur VMware ESXi, vous devez indiquer l'adresse IP de votre serveur ESXi, ainsi que le port indiqué pour la machine virtuelle souhaitée pour vous connecter à celle-ci.
Le port doit donc être unique pour chaque machine virtuelle.
La plage de ports valide étant celle définie précédemment dans le fichier "/etc/vmware/firewall" : 5900-5964.
En plus de ces paramètres obligatoires, vous pourrez aussi spécifier le layout de votre clavier pour que celui-ci soit correct lorsque vous vous connecterez à votre machine virtuelle via le protocole VNC.
Pour cela, utilisez le paramètre "RemoteDisplay.vnc.keyMap" et indiquez "fr" pour le clavier "Français (France)" ou "fr-be" pour le clavier "Français (Belgique)".
Pour connaitre toutes les valeurs possibles pour les autres layouts claviers, consultez la page "Language Codes" du site de VMWare.
Plain Text
RemoteDisplay.vnc.keyMap="fr"
Pour finir, vous pourrez aussi définir un mot de passe pour le contrôle à distance de cette machine virtuelle via votre client VNC préféré.
Ce paramètre facultatif est "remoteDisplay.vnc.password" et le mot de passe à utiliser doit être indiqué en tant que valeur.
Plain Text
remoteDisplay.vnc.password="MyPassword"
Une fois que vous avez ajouté les paramètres souhaités, cliquez sur OK.
Puis, cliquez sur : Enregistrer.
Le message "La machine virtuelle [nom de la VM] a été reconfigurée" apparait.
Si vous avez activé l'accès via le protocole VNC sur plusieurs machines virtuelles, il est possible que vous ne sachiez plus quels ports sont déjà utilisés et quels ports sont libres.
Pour trouver rapidement quels ports sont utilisés et par quelles machines virtuelles (y compris si elles sont éteintes en ce moment), utilisez la commande :
Bash
grep "vnc.port" */*/*/*/*.vmx
Ce qui donne ceci dans notre cas.
Notez que les machines virtuelles apparaitront 2 fois :
Plain Text
vmfs/volumes/xxxxxxxx-xxxxxxxx-.../Win 10 v2004 x64/Win 10 v2004 x64.vmx:RemoteDisplay.vnc.port = "5900" vmfs/volumes/RAID Vol/Win 10 v2004 x64/Win 10 v2004 x64.vmx:RemoteDisplay.vnc.port = "5900"
Pour accéder à votre machine virtuelle, démarrez celle-ci, puis téléchargez et lancez votre client VNC favori.
Dans notre cas, nous avons choisi le client "VNC Viewer" de "RealVNC".
Une fois ce client VNC installé, lancez-le et indiquez l'adresse IP de votre hyperviseur VMware ESXi, suivi du symbole ":", puis le port correspondant à la machine virtuelle à laquelle vous souhaitez accéder.
Dans notre cas, cela donne "10.0.0.5:5900". Puis, cliquez sur l'option "Connexion à l'adresse ou au nom d'ordinateur ..." qui s'affiche.
Une fenêtre de connexion apparait.
Puis, une fenêtre vous indique que la connexion n'est pas chiffrée.
Ignorez cet avertissement en cochant la case "Ne plus afficher cet avertissement", puis en cliquant sur "Continuer".
Si vous avez défini un mot de passe grâce au paramètre vmx "remoteDisplay.vnc.password", alors une fenêtre "Authentification" apparaitra.
Dans ce cas, indiquez ce mot de passe ici et cliquez sur OK.
Comme prévu, l'écran de votre machine virtuelle apparait dans ce client VNC.
Important : le transfert de fichiers n'est pas supporté par le serveur VNC se trouvant sur votre hyperviseur VMware ESXi.
Que vous utilisiez le client VNC de RealVNC (comme c'est le cas ici) ou n'importe quel autre client VNC (tel que "TightVNC Client" qui supporte aussi le transfert de fichiers lorsque le serveur VNC distant le support aussi), cela ne fonctionnera pas.
A vrai dire, nous avons testé tous les clients VNC existant sur Internet et aucun n'a permis de transférer des fichiers via le serveur VNC hébergé par VMware ESXi.
Si vous avez configuré correctement le paramètre "RemoteDisplay.vnc.keyMap" dans la configuration de votre machine virtuelle, le layout de votre clavier devrait être bon.
Sinon, vérifiez la configuration de votre client VNC.
Dans notre cas, aucune modification n'a été nécessaire pour ce client VNC.
Un des avantages du protocole VNC dans ce cas-ci est que vous êtes connecté au serveur VNC de votre hyperviseur VMware ESXi et non à celui que vous auriez installé dans votre machine virtuelle.
Ce qui signifie que si vous redémarrez la machine virtuelle, vous ne perdrez pas l'accès à celle-ci.
Par contre, la connexion sera perdue si vous arrêtez la machine virtuelle au lieu de la redémarrer.
Comme vous pouvez le voir, même le logo de VMware (affiché notamment au démarrage d'une machine virtuelle, mais aussi lors de son redémarrage) apparaitra.
La machine virtuelle continue de démarrer.
Et voilà, le redémarrage est terminé et la connexion n'a pas été interrompue.
VMware 25/5/2022
VMware 27/5/2022
VMware 27/1/2023
VMware 9/12/2022
Contenu épinglé
Contact
® InformatiWeb-Pro.net - InformatiWeb.net 2008-2022 - © Lionel Eppe - Tous droits réservés.
Toute reproduction totale ou partielle de ce site est interdite et constituerait une contrefaçon sanctionnée par les articles L.335-2 et suivants du Code de la propriété intellectuelle.
Vous devez être connecté pour pouvoir poster un commentaire