Mit VNC remote auf VMs zugreifen in VMware Workstation und ESXi


    Tags: , ,

    VNCSowohl die VMware Workstation als auch ESXi bieten mehrere Optionen, um remote auf den Bildschirm von Gastbetriebssystemen zu­zu­grei­fen. Eine davon erfolgt über das VNC-Protokoll, wobei dieses in der Standardeinstellung von VMs deaktiviert ist. Während es unter der Workstation sehr einfach ist, VNC in Betrieb zu nehmen, muss man ESXi 5.x dafür erst manuell konfigurieren.

    VMware unterstützt in seinen Produkten VNC schon lange, während andere Mechanismen für den Remote-Zugriff auf VMs erst später hinzukamen. So zählt das Sharing von VMs zu den wichtigsten Neuerungen der Workstation 8. Es erlaubt Anwendern auf entfernten PCs, die freigegebenen VMs in der Workstation zu nutzen. Auf dieses Feature aufbauend führte die Workstation 9 den Zugriff auf VMs mittels HTML5-fähiger Web-Browser ein (WSX). Im Fall von ESXi besteht die Möglichkeit, vom vSphere Client das Gastsystem in der Konsole zu öffnen.

    Remote-Zugriff mit den Mitteln der Gäste

    Alle diese Formen des Remote-Zugriffs auf VMs laufen direkt über den Host, der die entsprechenden Mechanismen bereitstellt. Das gilt auch für VNC. Daneben kann man natürlich auch die Mittel des Gastbetriebssystems nutzen, um von einem entfernten Rechner aus mit ihm zu interagieren. Im Fall von Windows wird das in den meisten Fällen eine RDP-Verbindung sein.

    Vor- und Nachteile von VNC

    Angesichts der verschiedenen Optionen für den Remote-Zugriff auf VMs kann man sich fragen, warum man gerade VNC nehmen sollte. Während man etwa das neue VM-Sharing der Workstation durch ein rollenbasiertes Rechte-Management inklusive AD-Integration absichern kann, bietet VNC nur ein Passwort als Zugangsbarriere. Darüber hinaus geht die gesamte VNC-Kommunikation unverschlüsselt über das Netz.

    Zugriff über TightVNC auf Windows 8 in einer VM unter VMware Workstation.

    Der Vorzug von VNC besteht vor allem darin, dass es sich um eine leichtgewichtige und flexible Lösung handelt. Man muss sich eben nicht mit einem komplexen Rechte-Management herumschlagen und bekommt zudem einen Viewer für fast jedes Betriebssystem. Mittlerweile existieren dafür sogar einige freie HTML5-Implementierungen.

    VNC-Konfiguration in der VMware Workstation

    In der VMware Workstation erfolgt die VNC-Konfiguration über die Einstellungen einer VM. Dort findet sich in der Registerkarte Options der Eintrag VNC Connections. Wenn man im rechten Fenster Enable VNC Connections aktiviert, dann kann man anschließend den Port für die Verbindung zu dieser VM bestimmen und ein Passwort hinterlegen. Die Portnummer sollte für jede VM verschieden sein. Das Ein- und Ausschalten des VNC-Zugriffs kann auch während der Laufzeit einer VM erfolgen und ist sofort wirksam.

    Die Aktivierung des VNC-Zugriffs erfolgt in den Einstellungen einer VM, die Verbindung läuft jedoch über den Host.

    Um sich mit einer VM zu verbinden, braucht man einen VNC-Client, beispielsweise das viel genutzte TightVNC. Es handelt sich dabei um eine Open-Source-Software, die auch einen VNC-Server umfasst (den man aber für diesen Zweck hier nicht installieren muss). Man baut vom VNC-Client keine Verbindung mit einer VM auf, sondern mit der Adresse des Hosts, gefolgt von der Portnummer, also zum Beispiel 192.168.10.10:5901, wenn man in der Workstation den Port 5901 für eine VM festgelegt hat.

    VNC in ESXi aktivieren

    Bei VMware ESXi ist die Konfiguration weniger komfortabel und VNC wird dort von VMware in produktiven Umgebungen nicht offiziell unterstützt. Sie erfolgt nicht über einen Dialog in den Einstellungen einer VM, sondern sie erfordert das Editieren der .vmx-Datei.

    Um die Einstellungen für VNC in die .vmx-Datei einer VM zu schreiben, kann man den vSphere Client nutzen.

    Dies lässt sich allerdings bei ausgeschalteter VM über den vSphere Client erledigen, und zwar unter den Einstellungen einer VM, Registerkarte Optionen => Erweitert => Allgemein. Dort findet sich im rechten Fenster die Schaltfläche Konfigurations­parameter. Hier ergänzt man über den Befehl Zeile hinzufügen folgende Einträge:

    RemoteDisplay.vnc.enabled = true
    RemoteDisplay.vnc.port = 5900
    RemoteDisplay.vnc.password = MeinPasswort

    Zusätzlich ist es erforderlich, ab ESXi 5.x eine Firewall-Regel zu definieren, um VNC-Verbindungen zuzulassen. In einigen Anleitungen von Knowledge-Base-Artikeln wird vorgeschlagen, die vorhandene service.xml zu bearbeiten. Besser ist es, eine eigene XML-Datei zu erstellen und diese auf dem Host im Verzeichnis /etc/vmware/firewall abzuspeichern. Dazu muss man die Shell auf der ESXi-Konsole oder über eine SSH-Verbindung öffnen und die Ausnahme für VNC am besten über den vi-Editor erstellen. Diese Datei könnte man vnc.xml nennen und sie würde so aussehen:

    <ConfigRoot>
    <service>
    <id>VNC</id>
    <rule id='0000'>
     <direction>inbound</direction>
     <protocol>tcp</protocol>
     <porttype>dst</porttype>
     <port>
     <begin>5900</begin>
     <end>5950</end>
     </port>
    </rule>
    <enabled>true</enabled>
    </service>
    </ConfigRoot>

    Zu allem Überfluss haben solche Änderungen der Firewall-Konfiguration nicht Bestand, nach dem nächsten Neustart des Hypervisors sind sie verloren. Dieser KB-Artikel von VMware erläutert, wie man auch diese Hürde überwinden kann.

    Wenn man nicht unbedingt eine VNC-Verbindung benötigt, etwa weil man keinen vSphere-Client zur Verfügung hat und der Gast keine adäquaten Mittel anbietet, dann spricht alles dafür, auf diese Form des Remote-Zugriffs unter ESXi zu verzichten.

    Täglich Know-how für IT-Pros mit unserem Newsletter

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    Bild von Wolfgang Sommergut
    Wolfgang Sommergut hat lang­jährige Erfahrung als Fach­autor, Berater und Kon­ferenz­sprecher zu ver­schie­denen Themen der IT. Da­ne­ben war er als System­ad­mi­ni­stra­tor und Con­sultant tätig.
    // Kontakt: E-Mail, XING, LinkedIn //

    Verwandte Beiträge

    1 Kommentar

    Hallo Wolfgang,

    herzlichen Dank für diesen Beitrag. Nach langer langer Suche ist dieses Tutorial unsere Rettung und wir können die alten Win2000 und Win95 Maschinen auch direkt per VNC auf dem ESXi ansprechen.

    Gruß, Oliver