Die meiste Zeit verwalten Sie als Linux-Systemadministrator Ihre Server über das Netzwerk. Es kommt sehr selten vor, dass Sie physischen Zugriff auf einen Ihrer verwalteten Server benötigen. In den meisten Fällen benötigen Sie lediglich eine Remote-SSH-Verbindung, um Ihre Verwaltungsaufgaben zu erledigen. In diesem Artikel konfigurieren wir eine GUI-Alternative zum Fernzugriff auf Ihren RHEL-Server, nämlich VNC. VNC ermöglicht es Ihnen, eine Remote-GUI-Sitzung zu Ihrem Server zu öffnen und bietet Ihnen somit eine vollständige grafische Benutzeroberfläche, auf die von jedem Remote-Standort aus zugegriffen werden kann.
In diesem Tutorial lernen Sie:
- So installieren Sie erforderliche VNC-Pakete
- So richten Sie den VNC-Server auf RHEL ein und starten ihn
- So verbinden Sie sich aus der Ferne mit einer grafischen Sitzung
- Wie man grafische Programme in der xterm-Sitzung ausführt
VNC-Verbindung zu RHEL
Kategorie | Anforderungen, Konventionen oder verwendete Softwareversion |
---|---|
System | Red Hat Enterprise Linux |
Software | TigerVNC |
Andere | Privilegierter Zugriff auf Ihr Linux-System als root oder über sudo Befehl. |
Konventionen | # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder durch Verwendung von sudo Befehl$ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden |
Installation und Einrichtung des VNC-Servers
Es gibt viele Fenstermanager, die wir mit dem VNC-Server verwenden können, aber für den Zweck dieses Tutorials werden wir eine einfache xterm-Sitzung als xterm
einrichten befindet sich in den Basis-Repositories von Red Hat Enterprise Linux. Wir werden jedoch zeigen, dass dieser einfache Ausgangspunkt mit einem einfachen Trick die volle Funktionalität ergibt. Beachten Sie auch, dass es viel ausgefeiltere Fenstermanager gibt, wie xfce
, aber das würde den Rahmen dieses Tutorials sprengen.
- Zuerst müssen wir die erforderlichen Pakete für die Serveranwendung installieren:
# dnf install tigervnc-server xterm
- Als nächstes müssen wir die Firewall für den Dienst öffnen. Um zu überprüfen, welche Dienste derzeit erlaubt sind, listen wir aktivierte Dienste auf:
# firewall-cmd --list-services cockpit dhcpv6-client ssh
Öffnen Sie den
vnc-server
Dienst:# firewall-cmd --permanent --zone=public --add-service vnc-server success
Wenden Sie die Konfigurationsänderung an:
# firewall-cmd --reload
Und listen Sie die Dienste erneut auf, um sie zu überprüfen:
# firewall-cmd --list-services cockpit dhcpv6-client ssh vnc-server
WARNUNG
Öffnen Sie den VNC-Dienst Ihres Computers nicht! Die obige Firewall-Regel wird in einer eingeschränkten Umgebung ausgeführt und dient nur zu Demonstrationszwecken. Machen Sie sich unbedingt mit den Risiken vertraut, bevor Sie etwas auf einem mit dem Internet verbundenen Server oder sogar Desktop öffnen. - Wir müssen die Umgebung einrichten, in der der Server ausgeführt wird. In diesem Beispiel ist es unser Ziel, den Server mit einem bestimmten Benutzer
testuser
auszuführen der keinroot
hat Privilegien. Beachten Sie, dass dieser Schritt mit dem Benutzer durchgeführt wird, der den Server ausführt, nichtroot
. Wir richten ein Passwort ein, das die Verbindung zulässt (das nichts mit dem Passwort des Benutzers zu tun hat, das mitssh
verwendet wird ):$ vncpasswd Password: Verify: Would you like to enter a view-only password (y/n)? n
In diesem Beispiel benötigen wir keine Nur-Anzeige-Logins. Als nächstes bearbeiten wir
/home/testuser/.vnc/xstartup
Textdatei mit einem Texteditor wienano
. Die Datei sollte nach der Installation leer sein, und wir fügen nur einen minimalen Inhalt hinzu, umxterm
zu starten Sitzung auf Verbindung. Wir fügen der leeren Datei die folgende Zeile hinzu:xterm -geometry 1044x810+10+10 &
Passen Sie die Geometrieparameter so an, dass sie in Ihren Bildschirm passen. Jetzt können wir den Server starten:
$ vncserver New 'rhel8beta.lab:1 (testuser)' desktop is rhel8beta.home.hu:1 Starting applications specified in /home/testuser/.vnc/xstartup Log file is /home/testuser/.vnc/rhel8beta.lab:1.log
Wie die Ausgabe vermuten lässt, können wir die vom Server bereitgestellten Protokolle in den Logfiles unter
verfolgen/home/<username>/.vnc/<hostname>:1.log
, ändert sich dieser Dateiname, wenn mehr als ein VNC-Server läuft (ebenso wie der Port, den Sie verbinden müssen). Die Protokolldatei gibt auch an, auf welchem Port der Server lauscht:
vncext: Listening for VNC connections on all interface(s), port 5901
Dies ist der Standard-VNC-Port.
- Wir können viele VNC-Clients verwenden, um uns mit dem jetzt gestarteten Server zu verbinden.
Remmina
ist ein Client, der standardmäßig mit den neuesten Gnome-Desktops geliefert wird und SSH-, RDP- und VNC-Sitzungen verarbeiten kann. Wir müssen den Hostnamen oder die IP-Adresse des Hosts angeben, auf dem der VNC-Server ausgeführt wird, sowie den Port. Das folgende Beispiel verwendet192.168.1.14
als Adresse und den Standardport5901
fanden wir im Logfile des Servers im vorherigen Schritt. Wir müssen „VNC“ als Protokoll neben dem Adressfeld auswählen und das Passwort eingeben, das wir mitvncpasswd
angegeben haben vorhin.Wenn alles wie erwartet funktioniert, sind wir mit dem VNC-Server verbunden und führen
xterm
aus , Annehmen und Bereitstellen von Inhalten aus der Zwischenablage, geschützt vor Netzwerkausfällen. Dietop
Beispiel unten läuft ununterbrochen, wenn wir die Sitzung trennen und später wieder verbinden. - Während diese Schritte im Wesentlichen zeigen, wie man den VNC-Server einrichtet und sich mit ihm verbindet, macht es nicht viel Sinn,
top
auszuführen auf einem entferntenxterm
session, wie wir es mit viel weniger Aufwand mit ssh machen könnten, und einem Session-Server wiescreen
. Um die Leistungsfähigkeit eines so einfachen xterm-Setups zu sehen, geben Sie einfachgedit
ein auf der entfernten xterm-Konsole (vorausgesetzt, ein Gnome-Desktop ist installiert).
Grafische Programme innerhalb von xterm ausführen
Ein leeres Dokument wird in gedit angezeigt, genau wie jedes grafische Programm, wenn es von der Befehlszeile aus gestartet wird. Beachten Sie, dass das Dokument, das remote bearbeitet wird, und das Programm, das es geöffnet hält, ebenfalls durch die VNC-Sitzung geschützt sind. Ein Netzwerkausfall hat keine Auswirkungen darauf, wir können uns einfach wieder verbinden und mit der Arbeit am Text fortfahren, selbst wenn auf unserem Client-Computer ein nicht behebbarer Fehler auftritt und wir vergessen haben, unsere Arbeit für die letzten paar Stunden zu speichern. Natürlich schützt der VNC-Server nicht vor dem Ausfall des Rechners, auf dem er läuft.
Fehlerbehebung
Wenn Sie die Fehlermeldung „Verbindung abgelehnt“ erhalten, liegt höchstwahrscheinlich ein Problem mit Ihren Firewall-Einstellungen vor. Stellen Sie sicher, dass Sie den Zugriff für VNC mit den folgenden Befehlen konfiguriert haben:
# firewall-cmd --permanent --zone=public --add-service vnc-server # firewall-cmd --reload
Andernfalls könnte es ein Gerät zwischen den beiden Systemen sein, das die Verbindung blockiert, oder einfach ein Routing-Problem mit dem Netzwerk.
Wenn Sie versuchen, sich mit dem VNC-Server zu verbinden und nur einen schwarzen Bildschirm sehen, liegt das wahrscheinlich daran, dass es keinen Fenstermanager für VNC gibt. In den obigen Anweisungen zeigen wir, wie Sie xterm
konfigurieren für diesen Zweck. Sie können auch einen vollwertigen Fenstermanager wie GNOME oder XFCE verwenden, aber Sie müssen etwas einstellen. Stellen Sie sicher, dass xterm gemäß den obigen Anweisungen als VNC-Fenstermanager konfiguriert ist.