Aktivieren von VNC für Linux-VMs

VMs sind möglicherweise nicht für die Unterstützung von Virtual Network Computing (VNC) eingerichtet, die Citrix Hypervisor zur Remotesteuerung von VMs verwendet. Bevor Sie eine Verbindung mit XenCenter herstellen können, stellen Sie sicher, dass der VNC-Server und ein X-Display-Manager auf der VM installiert und ordnungsgemäß konfiguriert sind. In diesem Abschnitt wird beschrieben, wie VNC für jede der unterstützten Linux-Betriebssystemverteilungen konfiguriert wird, um korrekte Interaktionen mit XenCenter zu ermöglichen.

Verwenden Sie für Centos-basierte VMs die Anweisungen für die Red Hat-basierten VMs unten, da sie denselben Basiscode verwenden, um grafischen VNC-Zugriff bereitzustellen. CentOS X basiert auf Red Hat Enterprise Linux X.

Aktivieren einer grafischen Konsole auf Debian-VMs

Hinweis:

Bevor Sie eine grafische Konsole auf Ihrer Debian-VM aktivieren, stellen Sie sicher, dass Sie die Citrix VM Tools für Linux installiert haben. Weitere Informationen finden Sie unter Installieren der Citrix VM-Tools für Linux.

Die grafische Konsole für virtuelle Debian-Maschinen wird von einem VNC-Server bereitgestellt, der innerhalb der VM läuft. In der empfohlenen Konfiguration steuert ein Standard-Anzeigemanager die Konsole so, dass ein Anmeldedialogfeld bereitgestellt wird.

  1. Installieren Sie Ihren Debian-Gast mit den Desktop-System-Paketen oder installieren Sie GDM (den Display-Manager) mit apt (folgende Standardverfahren).

  2. Installieren Sie den Xvnc Server mit apt-get (oder ähnlichem):

    apt-get install vnc4server
    

    Hinweis:

    Die Debian Graphical Desktop Environment, die den Gnome Display Manager Version 3 Daemon verwendet, kann erhebliche CPU-Zeit in Anspruch nehmen. Deinstallieren Sie das Gnome Display gdm3 Manager-Paket und installieren Sie das gdm Paket wie folgt:

    apt-get install gdm
    apt-get purge gdm3
    
  3. Richten Sie mit dem Befehl vncpasswd ein VNC-Kennwort ein (kein einziges ist ein schwerwiegendes Sicherheitsrisiko). Geben Sie einen Dateinamen ein, in den die Kennwortinformationen geschrieben werden sollen. Beispiel:

    vncpasswd /etc/vncpass
    
  4. Ändern Sie Ihre gdm.conf Datei (/etc/gdm/gdm.conf), um einen VNC-Server für die Verwaltung der Anzeige zu konfigurieren, 0 indem Sie [servers] die [daemon] wie folgt:

        [servers]
        0=VNC
        [daemon]
        VTAllocation=false
        [server-VNC]
        name=VNC
        command=/usr/bin/Xvnc -geometry 800x600 -PasswordFile /etc/vncpass BlacklistTimeout=0
        flexible=true
    
  5. Starten Sie GDM neu, und warten Sie, bis XenCenter die grafische Konsole erkennt:

    /etc/init.d/gdm restart
    

Hinweis:

Sie können überprüfen, ob der VNC-Server ausgeführt wird, indem Sie einen Befehl wie ps ax | grep vnc verwenden.

Aktivieren einer grafischen Konsole auf Red Hat, CentOS oder Oracle Linux VMs

Hinweis:

Stellen Sie vor dem Einrichten Ihrer Red Hat VMs für VNC sicher, dass Sie den Linux-Gast-Agent installiert haben. Weitere Informationen finden Sie unter Installieren Sie den Linux-Gast-Agent.

Um VNC auf Red Hat VMs zu konfigurieren, ändern Sie die GDM-Konfiguration. Die GDM-Konfiguration wird in einer Datei gespeichert, deren Speicherort je nach verwendeter Version von Red Hat Linux variiert. Bevor Sie es ändern, bestimmen Sie zuerst den Speicherort dieser Konfigurationsdatei. Diese Datei wird in mehreren nachfolgenden Verfahren in diesem Abschnitt geändert.

Bestimmen Sie den Speicherort Ihrer VNC-Konfigurationsdatei

Wenn Sie Red Hat Linux verwenden, lautet die GDM-Konfigurationsdatei /etc/gdm/custom.conf. Bei dieser Datei handelt es sich um eine geteilte Konfigurationsdatei, die nur vom Benutzer angegebene Werte enthält, die die Standardkonfiguration überschreiben. Dieser Dateityp wird standardmäßig in neueren Versionen von GDM verwendet. Es ist in diesen Versionen von Red Hat Linux enthalten.

Konfigurieren von GDM für die Verwendung von VNC

  1. Führen Sie als Stammverzeichnis auf der Text-CLI in der VM den Befehl rpm -q vnc-server gdm aus . Die Paketnamen vnc-server und gdm werden angezeigt, wobei die Versionsnummern angegeben sind.

    Die angezeigten Paketnamen zeigen die Pakete an, die bereits installiert sind. Wenn eine Meldung angezeigt wird, die besagt, dass ein Paket nicht installiert ist, haben Sie möglicherweise die grafischen Desktop-Optionen während der Installation nicht ausgewählt. Installieren Sie diese Pakete, bevor Sie fortfahren können. Weitere Informationen zur Installation weiterer Software auf Ihrer VM finden Sie im entsprechenden Red Hat Linux x86 Installationshandbuch.

  2. Öffnen Sie die GDM-Konfigurationsdatei mit Ihrem bevorzugten Texteditor und fügen Sie der Datei die folgenden Zeilen hinzu:

        [server-VNC]
        name=VNC Server
        command=/usr/bin/Xvnc -SecurityTypes None -geometry 1024x768 -depth 16 \
        -BlacklistTimeout 0
        flexible=true
    

    Fügen Sie bei Konfigurationsdateien unter Red Hat Linux diese Zeilen in den leeren [servers] Abschnitt ein.

  3. Ändern Sie die Konfiguration so, dass der Xvnc Server anstelle des standardmäßigen X-Servers verwendet wird:

    • 0=Standard

      Ändern Sie es so, dass es gelesen wird:

      0=VNC

    • Wenn Sie Red Hat Linux verwenden, fügen Sie die obige Zeile direkt unterhalb des [servers] Abschnitts und vor dem [server-VNC] Abschnitt hinzu.

  4. Speichern und schließen Sie die Datei.

Starten Sie GDM neu, damit Ihre Konfigurationsänderung wirksam wird, indem Sie den Befehl /usr/sbin/gdm-restart ausführen .

Hinweis:

Red Hat Linux verwendet Runlevel 5 für den grafischen Start. Wenn Ihre Installation in Runlevel 3 gestartet wird, ändern Sie diese Konfiguration, damit der Display-Manager gestartet wird, und erhalten Sie Zugriff auf eine grafische Konsole. Weitere Informationen finden Sie unter Runlevels überprüfen.

Firewalleinstellungen

Die Firewallkonfiguration erlaubt standardmäßig keinen VNC-Datenverkehr. Wenn Sie über eine Firewall zwischen der VM und XenCenter verfügen, lassen Sie den Datenverkehr über den Port zu, den die VNC-Verbindung verwendet. Standardmäßig überwacht ein VNC-Server Verbindungen von einem VNC-Viewer am TCP-Port 5900 + n, wobei die Anzeigenummer (normalerweise Null) n ist. So hört ein VNC-Server-Setup für Display-0 auf TCP-Port 5900TCP-5901``, Display-1 ist usw. Überprüfen Sie die Firewall-Dokumentation, um sicherzustellen, dass diese Ports geöffnet sind.

Wenn Sie die IP-Verbindungsverfolgung verwenden oder die Initiierung von Verbindungen nur von einer Seite beschränken möchten, konfigurieren Sie die Firewall weiter.

So konfigurieren Sie die Red Hat-Base VMS-Firewall zum Öffnen des VNC-Ports:

  1. Verwenden Sie für Red Hat Linux system-config-securitylevel-tui.

  2. Wählen Sie Anpassen aus, und fügen 5900 Sie sie der Liste der anderen Ports hinzu.

Alternativ können Sie die Firewall bis zum nächsten Neustart deaktivieren, indem Sie den Befehl service iptables stop ausführen oder dauerhaft chkconfig iptables off ausführen. Diese Konfiguration kann zusätzliche Dienste für die Außenwelt bereitstellen und die allgemeine Sicherheit Ihrer VM verringern.

VNC-Bildschirmauflösung

Nach der Verbindung mit einer VM über die grafische Konsole stimmt die Bildschirmauflösung manchmal nicht überein. Beispielsweise ist die VM-Anzeige zu groß, um bequem in den grafischen Konsolenbereich zu passen. Steuern Sie dieses Verhalten, indem Sie den VNC-Serverparameter geometry wie folgt festlegen:

  1. Öffnen Sie die GDM-Konfigurationsdatei mit Ihrem bevorzugten Texteditor. Weitere Informationen finden Sie unter Ermitteln des Speicherorts der VNC-Konfigurationsdatei.

  2. Suchen Sie den [server-VNC] Abschnitt, den Sie oben hinzugefügt haben.

  3. Bearbeiten Sie die zu lesende Befehlszeile, zum Beispiel:

    command=/usr/bin/Xvnc -SecurityTypes None -geometry 800x600
    

    Der Wert des Parameters geometry kann eine beliebige gültige Bildschirmbreite und -höhe sein.

  4. Speichern und schließen Sie die Datei.

Aktivieren von VNC für RHEL-, CentOS- oder OEL-VMs

Wenn Sie Red Hat Linux verwenden, lautet die GDM-Konfigurationsdatei /etc/gdm/custom.conf. Bei dieser Datei handelt es sich um eine geteilte Konfigurationsdatei, die nur vom Benutzer angegebene Werte enthält, die die Standardkonfiguration überschreiben. Standardmäßig wird dieser Dateityp in neueren Versionen von GDM verwendet und ist in diesen Versionen von Red Hat Linux enthalten.

Wählen Sie während der Installation des Betriebssystems Desktopmodus aus. Wählen Sie im RHEL-Installationsbildschirm Desktop > Jetzt anpassen aus, und klicken Sie dann auf Weiter:

Screenshot des RHEL-Installationsbildschirms

Mit dieser Aktion wird das Fenster “Basissystem” angezeigt. Stellen Sie sicher, dass die Legacy-UNIX-Kompatibilität ausgewählt ist:

Screenshot des Base-System-Bildschirms

Wählen Sie Desktops > Optionale Paketeaus, und klicken Sie dann auf Weiter:

Screenshot des Bildschirms "Desktops"

Diese Aktion zeigt das Fenster Pakete in Desktop an, wählen Sie tigervnc-server- <version_number> und klicken Sie dann auf Weiter:

Screenshot des Fensters "Pakete im Desktop"

Führen Sie die folgenden Schritte durch, um die Einrichtung Ihrer RHEL-VMs fortzusetzen:

  1. Öffnen Sie die GDM-Konfigurationsdatei mit Ihrem bevorzugten Texteditor und fügen Sie den entsprechenden Abschnitten die folgenden Zeilen hinzu:

        [security]
        DisallowTCP=false
    
        [xdmcp]
        Enable=true
    
  2. Erstellen Sie die Datei, /etc/xinetd.d/vnc-server-stream:

        service vnc-server
        {
                      id = vnc-server
                 disable = no
                    type = UNLISTED
                    port = 5900
             socket_type = stream
                    wait = no
                    user = nobody
                   group = tty
                  server = /usr/bin/Xvnc
             server_args = -inetd -once -query localhost -SecurityTypes None \
             -geometry 800x600 -depth 16
        }
    
  3. Geben Sie den folgenden Befehl ein, um den Dienst xinetd zu starten:

    # service xinetd start
    
  4. Öffnen Sie die Datei /etc/sysconfig/iptables. Fügen Sie die folgende Zeile oberhalb der Zeilenlesung hinzu -A INPUT -j REJECT --reject-with icmp-host-prohibited:

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 5900 -j ACCEPT
    
  5. Geben Sie den folgenden Befehl ein, um iptables neu zu starten:

    # service iptables restart
    
  6. Geben Sie den folgenden Befehl ein, um gdm neu zu starten:

        # telinit 3
        # telinit 5
    

Hinweis:

Red Hat Linux verwendet Runlevel 5 für den grafischen Start. Wenn Ihre Installation in Runlevel 3 startet, ändern Sie diese Konfiguration für den Display-Manager gestartet werden und erhalten Zugriff auf eine grafische Konsole. Weitere Informationen finden Sie unter Runlevel überprüfen.

Einrichten von SLES-basierten VMs für VNC

Hinweis:

Stellen Sie vor dem Einrichten der SUSE Linux Enterprise Server-VMs für VNC sicher, dass Sie den Linux-Gast-Agent installiert haben. Details hierzu finden Sie unter Installieren Sie den Linux-Gast-Agent.

SLES bietet Unterstützung für die Aktivierung von “Remote Administration” als Konfigurationsoption in YaST. Sie können die Remoteverwaltung bei der Installation aktivieren, die im Fenster “ Netzwerkdienste “ des SLES-Installationsprogramms verfügbar ist. Mit dieser Funktion können Sie einen externen VNC-Viewer mit Ihrem Gast verbinden, damit Sie die grafische Konsole anzeigen können. Die Methode zur Verwendung des SLES-Remoteverwaltungsfeatures unterscheidet sich geringfügig von der von XenCenter bereitgestellten Methode. Es ist jedoch möglich, die Konfigurationsdateien in Ihrer SUSE Linux VM so zu ändern, dass sie in die grafische Konsolenfunktion integriert ist.

Auf einen VNC-Server prüfen

Bevor Sie Konfigurationsänderungen vornehmen, überprüfen Sie, ob ein VNC-Server installiert ist. SUSE liefert den tightvnc Server standardmäßig aus. Dieser Server ist ein geeigneter VNC-Server, aber Sie können auch die Standard-RealVNC-Distribution verwenden.

Sie können überprüfen, ob die tightvnc-Software installiert ist, indem Sie den folgenden Befehl ausführen:

rpm -q tightvnc

Remote-Verwaltung aktivieren

Wenn die Remoteverwaltung während der Installation der SLES-Software nicht aktiviert wurde, können Sie sie wie folgt aktivieren:

  1. Öffnen Sie eine Textkonsole auf der VM und führen Sie das Dienstprogramm YaST aus:

    yast
    
  2. Verwenden Sie die Pfeiltasten, um Netzwerkdienste im linken Menü auszuwählen. Tabulatortaste im rechten Menü, und wählen Sie mit den Pfeiltasten die Option Remote Administrationaus. Drücken Sie die Eingabetaste.

  3. Klicken Sie im Bildschirm Remoteverwaltung auf die Registerkarte zum Abschnitt Einstellungen für die Remoteverwaltung. Wählen Sie mit der Pfeiltasten die Option Remoteverwaltung zulassen aus, und drücken Sie die EINGABETASTE, um ein X in das Kontrollkästchen zu setzen.

  4. Registerkarte zum Abschnitt Firewall-Einstellungen. Wählen Sie mit den Pfeiltasten Port in Firewall öffnen aus, und drücken Sie die EINGABETASTE, um ein X in das Kontrollkästchen zu setzen.

  5. Tabulatortaste zur Schaltfläche Fertig stellen, und drücken Sie die Eingabetaste

  6. Es wird ein Meldungsfeld angezeigt, in dem Sie aufgefordert werden, den Display-Manager neu zu starten, damit Ihre Einstellungen wirksam werden. Drücken Sie die Eingabetaste, um die Nachricht zu bestätigen.

  7. Das ursprüngliche Menü der obersten Ebene von YaST wird angezeigt. Tabulatortaste zur Schaltfläche Beenden, und drücken Sie die Eingabetaste.

Ändern der xinetd-Konfiguration

Ändern Sie nach dem Aktivieren der Remoteverwaltung eine Konfigurationsdatei, wenn XenCenter eine Verbindung herstellen kann. Alternativ können Sie einen VNC-Client eines Drittanbieters verwenden.

  1. Öffnen Sie die Datei /etc/xinetd.d/vnc in Ihrem bevorzugten Texteditor.

  2. Die Datei enthält Abschnitte wie die folgenden:

        service vnc1
        {
        socket_type = stream
        protocol    = tcp
        wait        = no
        user        = nobody
        server      = /usr/X11R6/bin/Xvnc
        server_args = :42 -inetd -once -query localhost -geometry 1024x768 -depth 16
        type        = UNLISTED
        port        = 5901
        }
    
  3. Bearbeiten Sie die zu lesende port Zeile

    port = 5900
    
  4. Speichern und schließen Sie die Datei.

  5. Starten Sie den Display-Manager und den Dienst xinetd mit den folgenden Befehlen neu:

    /etc/init.d/xinetd restart
    rcxdm restart
    

SUSE Linux verwendet Runlevel 5 für den grafischen Start. Wenn Ihr Remote-Desktop nicht angezeigt wird, überprüfen Sie, ob Ihre VM für den Start in Runlevel 5 konfiguriert ist. Weitere Informationen finden Sie unter Runlevels überprüfen.

Firewalleinstellungen

Standardmäßig lässt die Firewallkonfiguration keinen VNC-Datenverkehr zu. Wenn Sie über eine Firewall zwischen der VM und XenCenter verfügen, lassen Sie den Datenverkehr über den Port zu, den die VNC-Verbindung verwendet. Standardmäßig überwacht ein VNC-Server Verbindungen von einem VNC-Viewer am TCP-Port 5900 + n, wobei die Anzeigenummer (normalerweise Null) n ist. So hört ein VNC-Server-Setup für Display-0 auf TCP-Port 5900, Display-1 ist TCP-5901und so weiter. Überprüfen Sie die Firewall-Dokumentation, um sicherzustellen, dass diese Ports geöffnet sind.

Wenn Sie die IP-Verbindungsverfolgung verwenden oder die Initiierung von Verbindungen nur von einer Seite beschränken möchten, konfigurieren Sie die Firewall weiter.

So öffnen Sie den VNC-Port auf der SLES 11.x-VMs Firewall:

  1. Öffnen Sie eine Textkonsole auf der VM und führen Sie das Dienstprogramm YaST aus:

    yast
    
  2. Verwenden Sie die Pfeiltasten, um Sicherheit und Benutzer im linken Menü auszuwählen. Tabulatortaste zum rechten Menü, und wählen Sie mit den Pfeiltasten Firewallaus. Drücken Sie die Eingabetaste.

  3. Wählen Sie im Firewall-Bildschirm im linken Menü mit den Pfeiltasten Benutzerdefinierte Regeln aus, und drücken Sie dann die EINGABETASTE.

  4. Klicken Sie auf die Schaltfläche Hinzufügen im Abschnitt Benutzerdefinierte zulässige Regeln, und drücken Sie dann die EINGABETASTE.

  5. Geben Sie im Feld Quellnetzwerk0/0ein. Tabulatortaste in das Feld Zielport, und geben Sie 5900ein.

  6. Tabulatortaste zur Schaltfläche Hinzufügen, und drücken Sie dann die Eingabetaste.

  7. Tabulatortaste zur Schaltfläche Weiter und drücken Sie die Eingabetaste.

  8. Klicken Sie auf der Registerkarte “ **Zusammenfassung “ auf** die Schaltfläche “ Fertig stellen “, und drücken Sie die Eingabetaste.

  9. Klicken Sie auf der obersten Ebene YaSTTab auf die Schaltfläche Beenden und drücken Sie die Eingabetaste.

  10. Starten Sie den Display-Manager und den Dienst xinetd mit den folgenden Befehlen neu:

    /etc/init.d/xinetd restart
    rcxdm restart
    

Alternativ können Sie die Firewall bis zum nächsten Neustart deaktivieren, indem Sie den Befehl RCSuseFirewall2 stop ausführen oder dauerhaft mit YaST. Diese Konfiguration kann zusätzliche Dienste für die Außenwelt bereitstellen und die allgemeine Sicherheit Ihrer VM verringern.

VNC-Bildschirmauflösung

Nach der Verbindung mit einer virtuellen Maschine mit der grafischen Konsole stimmt die Bildschirmauflösung manchmal nicht überein. Beispielsweise ist die VM-Anzeige zu groß, um bequem in den grafischen Konsolenbereich zu passen. Steuern Sie dieses Verhalten, indem Sie den VNC-Serverparameter geometry wie folgt festlegen:

  1. Öffnen Sie die /etc/xinetd.d/vnc Datei mit Ihrem bevorzugten Texteditor und suchen Sie den service_vnc1 Abschnitt (entsprechend displayID 1).

  2. Bearbeiten Sie das geometry Argument in der server-args Zeile auf die gewünschte Anzeigeauflösung. Beispiel:

    server_args  = :42 -inetd -once -query localhost -geometry 800x600 -depth 16
    

    Der Wert des Parameters geometry kann eine beliebige gültige Bildschirmbreite und -höhe sein.

  3. Speichern und schließen Sie die Datei.

  4. Starten Sie den VNC-Server neu:

    /etc/init.d/xinetd restart
    rcxdm restart
    

Runlevel überprüfen

Red Hat und SUSE Linux VMs verwenden Runlevel 5 für den grafischen Start. In diesem Abschnitt wird beschrieben, wie Sie überprüfen, ob Ihre VM in Runlevel 5 gestartet wird und wie Sie diese Einstellung ändern.

  1. Überprüfen /etc/inittab Sie, wie der Standard-Runlevel eingestellt ist. Suchen Sie nach der Zeile, die lautet:

    id:n:initdefault:
    

    Wenn n nicht 5 ist, bearbeiten Sie die Datei, um sie so zu machen.

  2. Sie können den Befehl telinit q ; telinit 5 nach dieser Änderung ausführen, um einen Neustart zu vermeiden, um Runlevels zu wechseln.