Wie man VNC Server in CentOS 7 installiert und konfiguriert

In dieser Anleitung wird erklärt, wie man VNC Remote Access in der neuesten Version von CentOS 7 und RHEL 7 Desktop Edition über das Programm tigervnc-server installiert und konfiguriert.

VNC (Virtual Network Computing) ist ein Server-Client-Protokoll, das es Benutzerkonten ermöglicht, eine Fernverbindung zu einem entfernten System herzustellen und dieses zu steuern, indem sie die von der grafischen Benutzeroberfläche bereitgestellten Ressourcen nutzen.

Im Gegensatz zu anderen verfügbaren VNC-Servern, die sich direkt mit dem Runtime-Desktop verbinden, wie VNC X oder Vino, verwendet tigervnc-vncserver einen anderen Mechanismus, der für jeden Benutzer einen eigenständigen virtuellen Desktop konfiguriert.

Voraussetzungen

  1. CentOS 7-Installationsverfahren
  2. RHEL 7-Installationsverfahren

Schritt 1: VNC in CentOS 7 installieren und konfigurieren

1. Tigervnc-server ist ein Programm, das einen Xvnc-Server ausführt und parallele Sitzungen von Gnome oder anderen Desktop-Umgebungen auf dem VNC-Desktop startet.

Eine gestartete VNC-Benutzersitzung kann vom selben Benutzer von mehreren VNC-Clients aus aufgerufen werden. Um den TigerVNC-Server in CentOS 7 zu installieren, öffnen Sie eine Terminal-Sitzung und geben Sie den folgenden Befehl mit Root-Rechten ein.

$ sudo yum install tigervnc-server

2. Nachdem Sie das Programm installiert haben, melden Sie sich mit dem Benutzer an, mit dem Sie das VNC-Programm ausführen möchten und geben Sie den folgenden Befehl im Terminal ein, um ein Passwort für den VNC-Server zu konfigurieren.

Bitte beachten Sie, dass das Passwort mindestens sechs Zeichen lang sein muss.

$ su - your_user # If you want to configure VNC server to run under this user directly from CLI without switching users from GUI$ vncpasswd

3. Als Nächstes fügen Sie eine VNC-Dienstkonfigurationsdatei für Ihren Benutzer über eine Daemon-Konfigurationsdatei im systemd-Verzeichnisbaum hinzu. Um die VNC-Vorlagendatei zu kopieren, müssen Sie den folgenden Befehl mit Root-Rechten ausführen.

Wenn Ihr Benutzer nicht über sudo-Rechte verfügt, wechseln Sie entweder direkt zum Root-Konto oder führen Sie den Befehl von einem Konto mit Root-Rechten aus.

# cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service

4. Im nächsten Schritt bearbeiten Sie die kopierte VNC-Vorlagenkonfigurationsdatei aus dem Verzeichnis /etc/systemd/system/ und ersetzen die -Werte so, dass sie Ihrem Benutzer entsprechen, wie im folgenden Beispiel gezeigt.

Der Wert 1 nach dem @-Zeichen steht für die Anzeigenummer (Port 5900+Display). Außerdem wird für jeden gestarteten VNC-Server der Port 5900 um 1 erhöht.

# vi /etc/systemd/system/vncserver@\:1.service

Fügen Sie die folgenden Zeilen in die Datei vncserver@:1.service ein.

Description=Remote desktop service (VNC)After=syslog.target network.targetType=forkingExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'ExecStart=/sbin/runuser -l my_user -c "/usr/bin/vncserver %i -geometry 1280x1024"PIDFile=/home/my_user/.vnc/%H%i.pidExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'WantedBy=multi-user.target

5. Nachdem Sie die richtigen Änderungen an der VNC-Dienstdatei vorgenommen haben, laden Sie das Systeminitialisierungsprogramm systemd neu, um die neue vnc-Konfigurationsdatei zu übernehmen und den TigerVNC-Server zu starten.

Überprüfen Sie außerdem den VNC-Dienststatus und aktivieren Sie den VNC-Daemon systemweit, indem Sie die folgenden Befehle eingeben.

# systemctl daemon-reload# systemctl start vncserver@:1# systemctl status vncserver@:1# systemctl enable vncserver@:1
Start VNC Service

6. Um die geöffneten Ports im Listening-Status des VNC-Servers aufzulisten, führen Sie den Befehl ss aus, der in CentOS 7 verwendet wird, um Netzwerksockel anzuzeigen. Da Sie nur eine Instanz des VNC-Servers gestartet haben, ist der erste offene Port 5901/TCP.

Auch hier muss der ss-Befehl mit root-Rechten ausgeführt werden. Falls Sie weitere VNC-Instanzen parallel für verschiedene Benutzer starten, lautet der Portwert 5902 für die zweite, 5903 für die dritte usw. Die Ports 6000+ werden verwendet, damit sich die X-Anwendungen mit dem VNC-Server verbinden können.

# ss -tulpn| grep vnc
Überprüfen Sie die VNC-Listening-Ports

7. Damit sich externe VNC-Clients mit dem VNC-Server in CentOS verbinden können, müssen Sie sicherstellen, dass die richtigen offenen VNC-Ports Ihre Firewall passieren dürfen.

Wenn nur eine Instanz des VNC-Servers gestartet wird, müssen Sie nur den ersten zugewiesenen VNC-Port öffnen: 5901/TCP, indem Sie die folgenden Befehle eingeben, um die Firewall-Konfiguration zur Laufzeit anzuwenden.

# firewall-cmd --add-port=5901/tcp# firewall-cmd --add-port=5901/tcp --permanent

Schritt 2: Verbindung zum CentOS-Desktop über VNC-Client

8. Da es sich um ein plattformunabhängiges Protokoll handelt, können VNC-Verbindungen mit grafischer Benutzeroberfläche von fast jedem Betriebssystem mit einer grafischen Benutzeroberfläche und einem speziellen VNC-Client hergestellt werden.

Ein beliebter VNC-Client, der in Microsoft-basierten Betriebssystemen verwendet wird und vollständig mit dem Linux TigerVNC-Server kompatibel ist, ist der RealVNC VNC Viewer.

Um sich von einem Microsoft-Betriebssystem aus über das VNC-Protokoll mit dem CentOS-Desktop zu verbinden, öffnen Sie das Programm VNC Viewer, fügen Sie die IP-Adresse und die Portnummer des CentOS-VNC-Servers hinzu und drücken Sie die Taste.

Nachdem die VNC-Verbindung hergestellt wurde, sollte eine Warnung auf Ihrem Bildschirm erscheinen, die besagt, dass die Verbindung nicht verschlüsselt ist, wie in den folgenden Screenshots dargestellt.

VNC Viewer Client
VNC Viewer Client Connection

9. Um die Warnung zu umgehen, klicken Sie auf die Schaltfläche Weiter, fügen Sie das Passwort für den VNC-Server unter Punkt 2 hinzu und Sie sollten mit dem Benutzer, der für die Ausführung der VNC-Serverinstanz konfiguriert ist, mit CentOS Desktop verbunden sein.

VNC Server User Password
VNC Remote CentOS Desktop

10. Falls eine neue Authentifizierungsmeldung auf dem Bildschirm erscheint und Ihr Benutzer keine Root-Rechte hat, klicken Sie einfach auf die Schaltfläche Abbrechen, um mit dem CentOS Desktop fortzufahren, wie im folgenden Screenshot gezeigt.

VNC Server Authentication Warning

Seien Sie sich bewusst, dass die aufgebaute VNC-Kommunikation zwischen dem Server und dem Client und alle ausgetauschten Daten (außer dem Passwort) über einen unverschlüsselten Kanal laufen. Um den VPN-Datentransfer zu verschlüsseln und zu sichern, müssen Sie zunächst einen sicheren SSH-Tunnel einrichten und jeden nachfolgenden VPN-Datenverkehr über den SSH-Tunnel laufen lassen.

11. Um sich von einem anderen CentOS-Desktop aus über das VNC-Protokoll mit dem CentOS-Desktop zu verbinden, stellen Sie zunächst sicher, dass das vinagre-Paket auf Ihrem System installiert ist, indem Sie den folgenden Befehl eingeben.

$ sudo yum install vinagre

12. Um das Vinagre-Dienstprogramm zu öffnen, gehen Sie zu Anwendungen -> Dienstprogramme -> Remote Desktop Viewer, wie im folgenden Screenshot gezeigt.

Vinagre Tool öffnen

13. Um eine Fernverbindung zu einem CentOS-Desktop herzustellen, klicken Sie auf die Schaltfläche Verbinden, wählen Sie das VNC-Protokoll aus der Liste aus und fügen Sie die IP-Adresse und den Port (5900+Anzeigenummer) des entfernten VNC-Servers hinzu. Geben Sie auch das Passwort für den VNC-Benutzer ein, wie in den folgenden Screenshots dargestellt.

Remote-Desktop-Protokoll auswählen
Remote-VNC-Details eingeben
Remote-VNC CentOS Desktop

14. Ein weiterer beliebter VNC-Client für Linux-basierte Plattformen ist Remmina, ist ein Remote-Desktop-Client vor allem in Debian-basierten Distributionen, die die GNOME-Desktop-Umgebung laufen verwendet.

Um Remmina Remote-Desktop-Client in Debian-basierten Distros zu installieren, geben Sie den folgenden Befehl.

$ sudo apt-get install remmina

Schritt 3: Konfigurieren Sie mehrere VNC-Sitzungen in CentOS 7

15. Falls Sie eine neue parallele VNC-Sitzung unter demselben Benutzer starten möchten, öffnen Sie eine Terminal-Konsole, melden Sie sich mit dem Benutzer an, mit dem Sie die neue VNC-Sitzung starten möchten, und führen Sie den folgenden Befehl aus.

Beim ersten Start des Servers werden Sie aufgefordert, ein neues Passwort für diese Sitzung einzugeben. Beachten Sie jedoch, dass diese Sitzung mit den Rechten Ihres angemeldeten Benutzers und unabhängig von der gestarteten systemd-VNC-Serversitzung läuft.

$ vncserver
Neue VNC-Sitzung starten

16. Die neuen VNC-Sitzungen öffnen die nächsten verfügbaren VNC-basierten Ports (in diesem Beispiel die Anzeige 5900+3). Um die geöffneten Ports anzuzeigen, führen Sie den Befehl ss ohne Root-Rechte aus, wie im folgenden Auszug dargestellt. Es werden nur die gestarteten VNC-Sitzungen aufgelistet, die Ihrem Benutzer gehören.

$ ss -tlpn| grep Xvnc
List VNC Open Ports

17. Stellen Sie nun mit dieser neuen VNC-Sitzung eine Fernverbindung zum CentOS-Desktop her und geben Sie im VNC-Client die IP:Port-Kombination (192.168.1.23:5903) ein, wie in der folgenden Abbildung dargestellt.

Verbindung zum VNC-Remote-Desktop herstellen

Um die mit diesen angemeldeten Benutzerrechten gestarteten VNC-Serverinstanzen zu beenden, geben Sie den folgenden Befehl ohne Root-Rechte ein. Dieser Befehl wird alle gestarteten VNC-Instanzen zerstören, die nur dem Benutzer gehören, der sie angegeben hat.

$ su - your_user$ killall Xvnc

Lesen Sie auch: CentOS 7 oder RHEL 7 im VNC-Modus aus der Ferne installieren

Das ist alles! Sie können nun auf Ihr CentOS 7-System zugreifen und administrative Aufgaben über die grafische Benutzeroberfläche des Betriebssystems ausführen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.