So installierst du VNC Server auf Rocky Linux
Virtual Network Computing (VNC) ist ein Desktop-Sharing-Protokoll, mit dem du einen Computer über eine VNC-Client-Software fernsteuern kannst. VNC arbeitet mit GUI-Umgebungen (Graphical User Interface) und überträgt Mausbewegungen und Tastatureingaben über das Netzwerk mit dem Remote Frame Buffer (RFB) Protokoll.
In der Regel wird VNC von Technikern zur Steuerung von Client-Desktops verwendet oder von jemandem, der von zu Hause aus auf seinen Desktop im Büro zugreifen muss. VNC kann sicher über das VPN-Netzwerk oder über eine SSH-Tunnelverbindung genutzt werden.
In diesem Lernprogramm wirst du den VNC Server mit TigerVNC auf einem Rocky Linux Server einrichten. Außerdem lernst du, wie du dich über SSH-Tunneling sicher mit dem VNC-Server verbinden kannst.
Voraussetzungen
Um dieses Tutorial durchzuführen, brauchst du einen Server mit den folgenden Voraussetzungen:
- Einen frischen Rocky Linux Server – Du kannst Rocky Linux v8.5 oder v9 verwenden.
- Einen Nicht-Root-Benutzer mit Root- oder Administrator-Rechten.
- Eine aktivierte Firewalld auf dem Server.
Installation der Desktop-Umgebung
Die Standardinstallation von Rocky Linux Server kommt ohne GUI. Um VNC Server einzurichten, musst du die Desktop-Umgebung auf deinem Rocky Linux Server installieren. Für VNC Server wird die leichtgewichtige Desktop-Umgebung empfohlen, die dir mehr Leistung und Geschwindigkeit bietet.
Unter Rocky Linux gibt es mehrere Gruppen von Paketen, die eine Desktop-Umgebung bereitstellen. In diesem Beispiel wirst du XFCE als Desktop-Umgebung für den VNC Server auf dem Rocky Linux System installieren und konfigurieren.
Bevor du mit der Installation der Pakete beginnst, führe den folgenden dnf-Befehl aus, um die installierten Pakete auf die neueste Version zu aktualisieren.
sudo dnf update
Füge nun das EPEL-Repository mit dem folgenden dnf-Befehl zu deinem Rocky Linux-System hinzu. Gib Y ein, um das EPEL-Repository hinzuzufügen und drücke ENTER.
sudo dnf epel-release
Als Nächstes installierst du die Desktop-Umgebung XFCE über das Gruppenpaket„Xfce“ aus dem Rocky Linux-Repository. Außerdem installierst du das Gruppenpaket„base-x„, das Xorg-Pakete enthält.
sudo dnf groupinstall "Xfce" "base-x"
Gib Y ein, wenn du aufgefordert wirst, die Installation zu bestätigen und drücke ENTER, um fortzufahren.
Sobald der XFCE-Desktop und base-x installiert sind, aktivierst du die grafische Umgebung mit dem folgenden systemctl-Befehl. Dadurch wird die grafische Umgebung aktiviert, wenn der Server gestartet wird.
sudo systemctl set-default graphical
Hinzufügen eines VNC-Benutzers
Aus Sicherheitsgründen wird empfohlen, einen Nicht-Root-Benutzer zu verwenden, um den VNC-Server zu betreiben. Du solltest einen eigenen Benutzer anlegen, der den VNC-Server betreibt. Wenn du als Benutzer die sudo-Rechte benötigst, kannst du deinen Benutzer zur Gruppe „wheel“ hinzufügen.
Führe den folgenden Befehl aus, um einen neuen Benutzer anzulegen. Lege dann das Passwort für den Benutzer fest. In diesem Beispiel legst du einen neuen Benutzer„jane“ an und achtest darauf, ein sicheres Passwort zu verwenden.
sudo useradd -m -s /bin/bash jane sudo passwd jane
Nachdem du den neuen Benutzer erstellt hast, fügst du ihn mit dem folgenden Befehl der Gruppe„wheel“ hinzu. Dadurch kann der neue Benutzer den sudo-Befehl ausführen und erhält Root-Rechte.
sudo usermod -aG wheel jane
Nachdem die XFCE-Desktop-Umgebung installiert und der VNC-Benutzer erstellt wurde, startest du als Nächstes die Installation und Konfiguration von TigerVNC.
Installation von TigerVNC Server
Um einen VNC-Server einzurichten, musst du die VNC-Server-Software installieren. In diesem Beispiel wirst du „TigerVNC Server“ installieren und verwenden, der standardmäßig im Rocky Linux Repository verfügbar ist.
Außerdem erstellst du die VNC-Serverkonfigurationen, richtest die Standard-Desktopumgebung ein und fügst den VNC-Benutzer zur TigerVNC-Server-Benutzerliste hinzu.
Führe den folgenden dnf-Befehl aus, um das Paket „tigervnc-server“ auf dem Rocky Linux-System zu installieren. Gib Y ein, wenn du aufgefordert wirst, die Installation zu bestätigen und drücke ENTER, um fortzufahren.
sudo dnf install tigervnc-server
Sobald die Installation abgeschlossen ist, richtest du als Nächstes den VNC-Server für jeden Benutzer (VNC-Benutzer) ein.
Melde dich mit dem folgenden Befehl bei deinem Benutzer an.
su - jane
Führe nun den folgenden Befehl aus, um den VNC-Server für den Benutzer„jane“ zu initialisieren. Während der Initialisierung des VNC-Servers wirst du aufgefordert, das Passwort für deinen VNC-Server zu erstellen, also gib das sichere Passwort ein und wiederhole es. Und für das„Nur-Ansicht-Passwort“ gibst du„n“ ein, um es zu deaktivieren.
vncserver
Mit diesem Befehl werden VNC-Serverkonfigurationen erstellt, die sich in„~/.vnc“ befinden. Die VNC-Serverkonfigurationen enthalten das xstartup-Skript, die Konfiguration der Desktop-Umgebung und die Protokolle für den VNC-Prozess.
Außerdem kannst du sehen, dass der neue VNC-Prozess mit einem Namen wie„HOSTNAME:N“ läuft – das bedeutet den System-Hostnamen und den Desktop/die Anzeige :N in Zahlen.
Überprüfe die Liste der VNC-Prozesse mit dem unten stehenden Befehl vncserver. Du solltest sehen, dass der VNC-Prozess des Displays „:1“ läuft.
vncserver -list
Jetzt musst du den aktuellen VNC-Prozess „:1“ beenden, um die XFCE Desktop-Umgebung einzurichten. Führe den unten stehenden Befehl vncserver aus, um den VNC-Prozess auf dem Display „:1“ zu beenden.
vncserver -kill :1
Sobald der VNC-Prozess beendet ist, solltest du eine Meldung wie„Killing Xvnc process ID PID“ erhalten.
Nachdem du nun die VNC-Serverkonfigurationen erstellt hast, öffne die Datei„~/.vnc/config“ mit dem Editor nano.
nano ~/.vnc/config
Ändere die Standardkonfiguration wie unten beschrieben. In diesem Beispiel verwendest du XFCE als Standard-Desktop-Umgebung für den VNC-Server, und wenn sich der Benutzer mit dem VNC-Server verbindet, ist der Standardbildschirm„1920×1200„. Der VNC-Server wird nur auf localhost laufen und freigegebene Desktops aktivieren.
session=xfce geometry=1920x1200 localhost alwaysshared
Speichere die Datei und beende den Editor, wenn du fertig bist.
Als Nächstes drückst du „Strg+d“ und kehrst zur Root-Benutzersitzung zurück. Öffne dann die Datei„/etc/tigervnc/vncserver.users“ mit dem Editor nano.
sudo nano /etc/tigervnc/vncserver.users
Füge die Display-Nummer und den VNC-Benutzer wie in der folgenden Konfiguration hinzu. In diesem Beispiel wird das Display „:1“ verwendet, um den VNC-Server für den Benutzer„jane“ auszuführen.
:1=jane
Speichere die Datei und beende den Editor, wenn du fertig bist.
Nachdem die VNC-Server-Konfigurationen erstellt, die Standard-Desktop-Umgebung konfiguriert und der VNC-Benutzer zur TigerVNC-Benutzerliste hinzugefügt wurde, kannst du den TigerVNC-Server starten und ihn als Dienst ausführen.
VNC Server starten
Der TigerVNC-Server bietet dynamische systemd-Dienstdateien, d.h. jeder Bildschirm oder Benutzer hat seinen eigenen systemd-Dienst. In diesem Beispiel führt der Benutzer„jane“ den VNC-Server mit dem Display „:1“ aus, also wäre die Dienstdatei„vncserver@:1.service“.
Jedes Mal, wenn du einen neuen VNC-Benutzer hinzufügst, musst du den systemd manager neu laden, um die neuen Änderungen zu übernehmen. Du kannst den systemd Manager über den systemctl-Befehl neu laden (siehe unten).
sudo systemctl daemon-reload
Als Nächstes startest und aktivierst du„vncserver@:1.service“ für das Display „:1“ mit dem folgenden systemctl-Befehl. Dadurch wird der VNC-Serverprozess display „:1“ beim Booten automatisch gestartet.
sudo systemctl start vncserver@:1.service sudo systemctl enable vncserver@:1.service
Überprüfe abschließend „vncserver@:1.service“, um sicherzustellen, dass der Dienst läuft.
sudo systemctl status vncserver@:1.service
Wenn„vncserver@:1.service“ läuft, solltest du eine ähnliche Ausgabe wie im folgenden Screenshot sehen.
An dieser Stelle hast du die Installation und Konfiguration des VNC-Servers über „Tiger-VNC“ auf dem Rocky Linux Server abgeschlossen. Außerdem hast du XFCE als Standard-Desktopumgebung für den VNC-Server konfiguriert. Als Nächstes richtest du die Firewalld ein, um den VNC-Server zu sichern.
Firewalld einrichten
Auf dem Standard Rocky Linux Server ist die Firewalld installiert und aktiviert. Du fügst einen neuen Dienst„vnc-server“ zur Firewalld hinzu.
Füge den Dienst „vnc-server“ mit dem unten stehenden Befehl firewall-cmd zur Firewalld hinzu. Lade dann die Firewall-Regeln neu, um die neuen Änderungen zu übernehmen.
sudo firewall-cmd --add-service=vnc-server --permanent sudo firewall-cmd --reload
Überprüfe abschließend die Liste der Firewall-Regeln mit dem folgenden Befehl. Wenn du den Dienst„vnc-server“ in der Liste der Dienste siehst, ist die Dienstregel hinzugefügt und aktiviert.
sudo firewall-cmd --list-services
Verbindung zum VNC-Server über einen sicheren SSH-Tunnel
Um das SSH-Tunneling zu starten, führe den folgenden ssh-Befehl aus. In diesem Beispiel erstellst du einen neuen Tunnel zum VNC-Server IP-Adresse„192.168.5.100“ mit dem Benutzer„jane“ zum localhost auf dem TCP-Port„5901„, der der gleiche Port wie der VNC-Server ist.
ssh -L 5901:127.0.0.1:5901 -N -f -l jane 192.168.5.100
Gib das Passwort für deinen Benutzer ein. Sobald du verbunden bist, kannst du dich mit dem VNC-Server über localhost mit Port 5901 verbinden.
Öffne deinen VNC-Viewer auf deinem lokalen Computer. In diesem Beispiel werden wir den „TigerVNC Viewer“ verwenden.
Gib bei der Adresse „VNC Server“ den Host als localhost oder 127.0.0.1 mit Port 5901 ein. Klicke dann auf„Verbinden„, um fortzufahren.
Gib nun das VNC-Server-Passwort für deinen Benutzer ein und klicke auf„OK„.
Wenn die Verbindung erfolgreich war, siehst du den XFCE-Desktop auf deinem Bildschirm, wie auf dem folgenden Screenshot.
Du kannst auch dein Terminal öffnen und den folgenden Befehl ausführen, um deinen Benutzer zu überprüfen.
id whoami sudo su
Schlussfolgerungen
In dieser Anleitung hast du den VNC Server mit TigerVNC auf dem Rocky Linux Server installiert. Außerdem hast du XFCE als Standard-Desktopumgebung für deinen VNC-Server installiert und konfiguriert. Und schließlich hast du gelernt, wie du dich sicher mit dem VNC-Server über SSH-Tunneling verbinden kannst.
Eine weitere Überlegung für den VNC-Server ist, dass du die IP-Adressen, die auf den Port des VNC-Servers zugreifen können, über die Firewalld einschränken kannst. Außerdem kannst du deine Verbindung über einen lokalen VPN-Server absichern. Hier geht es zum VNC Tutorial für Ubuntu.