Desktop Sharing via x11vnc+SSH
Einleitung¶
x11vnc ist ein leistungsstarkes VNC-Programm. Der Unterschied zwischen x11vnc und anderen VNC-Programmen besteht darin, dass ein Administrator die vorhandene X-Sitzung eines Benutzers übernehmen kann, anstatt gezwungen zu sein, eine neue zu erstellen. Dies macht X11VNC ideal für die Fernwartung von Linux-Desktops.
In diesem Handbuch erfahren Sie, wie Sie einen x11vnc-Server einrichten und eine Remote-Verbindung dazu herstellen.
Anmerkung
Einer der Hauptvorteile der Verwendung von x11vnc gegenüber SSH besteht darin, dass Sie keine zusätzlichen Ports auf Ihrem Computer öffnen müssen, wodurch die Angriffsfläche minimiert wird.
Voraussetzungen¶
Für diese Anleitung wird davon ausgegangen, dass Sie Folgendes bereits eingerichtet haben:
- Rocky Linux Workstation
sudo
-Berechtigungen
VNC-Server einrichten¶
Um Ihre X-Sitzung aufzuzeichnen, müssen Sie den x11vnc-Server auf Ihrer Rocky-Workstation installieren.
Wayland deaktivieren¶
Zuerst müssen Sie Wayland deaktivieren. Öffnen Sie die Datei custom.conf
mit einem Texteditor Ihrer Wahl:
sudo vim /etc/gdm/custom.conf
Kommentar-Zeichen entfernen, WaylandEnable=false
:
# GDM configuration storage
[daemon]
WaylandEnable=false
[security]
[xdmcp]
[chooser]
[debug]
# Uncomment the line below to turn on debugging
#Enable=true
gdm
-Dienst neu starten:
sudo systemctl restart gdm
x11vnc
Installieren und Konfigurieren¶
Installieren Sie das EPEL-Repository:
sudo dnf install epel-release
Erstellen Sie ein Passwort für x11vnc:
x11vnc -storepasswd ~/.x11vnc.pwd
Erstellen Sie eine neue Datei mit einem Texteditor Ihrer Wahl. Damit erstellen Sie einen Dienst zum Ausführen von x11vnc:
sudo vim /etc/systemd/system/x11vnc.service
Kopieren Sie den folgenden Text, fügen Sie ihn in die Datei ein, speichern Sie und beenden Sie das Programm:
Anmerkung
Ersetzen Sie den Pfad `rfbauth` durch den Pfad zur Passwortdatei, die Sie zuvor erstellt haben. Ersetzen Sie die Werte `User` und `Group` durch den Benutzer, dem Sie Remote-Support bereitstellen möchten.
[Unit]
Description=Start x11vnc at startup
After=display-manager.service
[Service]
Type=simple
Environment=DISPLAY=:1
Environment=XAUTHORITY=/run/user/1000/gdm/Xauthority
ExecStart=/usr/bin/x11vnc -auth /var/lib/gdm/.Xauthority -forever -loop -noxdamage -repeat -rfbauth /home/server/.x11vnc.pwd -rfbport 5900 -shared
User=server
Group=server
[Install]
WantedBy=multi-user.target
Aktivieren und starten Sie den x11vnc-Dienst:
sudo systemctl enable --now x11vnc.service
Verbindung zum VNC-Server von Ihrer Rocky-Workstation aus herstellen¶
Installieren Sie das EPEL-Repository:¶
sudo dnf install epel-release
Installieren Sie einen VNC-Client¶
TigerVNC – Installation. Der Server wird nicht verwendet, Sie nutzen jedoch den Client:
sudo dnf install tigervnc
SSH-Tunnel anlegen¶
Erstellen Sie einen SSH-Tunnel, um eine sichere Verbindung zum VNC-Server herzustellen:
ssh -L 5900:localhost:5900 REMOTEIP
Starten Sie den VNC-Viewer¶
Öffnen Sie den VNC-Viewer mit folgendem Befehl:
vncviewer
Stellen Sie eine Verbindung zum VNC-Server her, indem Sie 127.0.0.1 oder localhost in TigerVNC eingeben und die Angabe bestätigen.
Geben Sie das zuvor erstellte x11vnc-Passwort ein.
Herzlichen Glückwunsch! Jetzt können Sie Ihren Desktop aus der Ferne kontrollieren!
Verbindung zur Maschine über das Internet herstellen¶
Bisher hat Ihnen dieser Artikel gezeigt, wie Sie einen x11vnc-Server einrichten und mithilfe von VNC, das über einen SSH-Tunnel weitergeleitet wird, eine Verbindung zu ihm herstellen. Bitte beachten Sie, dass diese Methode nur für Computer funktioniert, die sich im gleichen lokalen Netzwerk (LAN) befinden. Angenommen, Sie möchten eine Verbindung zu einem Computer herstellen, der sich in einem anderen LAN befindet. Eine Möglichkeit, dies zu erreichen, besteht darin, ein VPN einzurichten. Nachfolgend finden Sie einige Anleitungen zum Einrichten eines VPN:
Zusammenfassung¶
Herzlichen Glückwunsch! Sie haben erfolgreich einen x11vnc
-Server eingerichtet und über einen TigerVNC
-Client eine Verbindung dazu hergestellt. Diese Lösung ist ideal für die Fernwartung, da sie dieselbe X-Sitzung wie der Benutzer nutzt und so einen nahtlosen Support gewährleistet.
Author: Joseph Brinkman
Contributors: Steven Spencer, Ganna Zhyrnova