Virtual Network Computing (VNC) ist ein System zur Bildschirmfreigabe, das für den Fernzugriff auf grafische Benutzeroberflächen verwendet wird. Es nutzt das Remote-Frame-Buffer-Protokoll, das es einem Server (Benutzerseite) ermöglicht, sich mit einer anderen Seite (Client) zu verbinden. VNC ist sicher, zuverlässig und funktioniert auf allen Betriebssystemen.
RealVNC, UltraVNC, Xfce, TightVNC, um nur einige zu nennen, sind die beliebtesten VNC-Clients, die heute verwendet werden. Aus der Liste der verfügbaren Alternativen können Sie ganz nach Belieben ein beliebiges VNC auswählen. In dieser Anleitung führen wir Sie durch die Schritte zur Installation und Konfiguration von VNC auf Ubuntu 20.04. Wir installieren Xfce wegen seiner Geschwindigkeit, Leichtigkeit und hervorragenden Leistung.
Wir beginnen mit der Einrichtung eines VNC-Servers auf einem Ubuntu Server und dem Aufbau einer sicheren Verbindung über den SSH-Tunnel. Schließlich werden wir ein VNC-Client-Programm auf unserem lokalen Rechner verwenden, um über eine grafische Desktop-Umgebung mit dem Server zu interagieren.
Voraussetzungen
Um dieser Anleitung zu folgen, benötigen Sie:
-
Einen Ubuntu 20.04-Server mit einem Nicht-Root-Benutzer und einer unkomplizierten Firewall (UFW).
-
Ein lokaler Computer mit einem installierten VNC-Client. Der VNC-Client, den wir verwenden werden, verbindet sich über die SSH-Tunnel.
Schritt 1 — Installieren der Desktop-Umgebung und des VNC-Servers
Im Gegensatz zu früheren Ubuntu-Versionen wird Ubuntu 20.04 nicht mit einem vorinstallierten VNC ausgeliefert. Als ersten Schritt installieren wir die erforderlichen Pakete aus dem offiziellen Ubuntu-Repository. Bevor wir fortfahren, aktualisieren wir die vorhandenen Pakete:
|
1 |
sudo apt update |
Jetzt installieren wir Xfce und das xfce4-goodies Paket mit dem Befehl:
|
1 |
sudo apt install xfce4 xfce4-goodies |
Während Ihr Paket installiert wird, sehen Sie einen Bildschirm, der Sie auffordert, einen Standard-Display-Manager für Xfce auszuwählen. Ignorieren Sie die Meldung oder legen Sie ihn als Standard fest und drücken Sie dann EINGABETASTE.
Ein Display-Manager ist ein Programm, das es Benutzern ermöglicht, sich über eine grafische Benutzeroberfläche in einer Desktop-Umgebung anzumelden. In diesem Tutorial verwenden wir Xfce, wenn wir uns mit einem VNC-Client verbinden, bei dem wir als Ubuntu-Benutzer ohne Root-Rechte angemeldet sind. Daher hat die Auswahl des Display-Managers keinen Einfluss auf unsere Installation.
Nach der Installation von Xfce installieren wir den TightVNC-Server:
|
1 |
sudo apt install tightvncserver |
Verwenden Sie im nächsten Schritt den vncserver Befehl, um ein VNC-Zugriffspasswort einzurichten und die ersten Konfigurationsdateien zu erstellen. Geben Sie Folgendes ein, um die VNC-Serverinstanz zu starten:
|
1 |
vncserver |
Richten Sie danach ein Passwort mit einer Länge zwischen 6 und 8 Zeichen ein und drücken Sie ENTER. Sie sehen eine Eingabeaufforderung:
|
1 2 3 4 5 |
Ausgabe Sie werden benötigen ein Passwort für den Zugriff auf Ihre Desktops. Passwort: Bestätigen: |
Wenn Sie in Zukunft Ihr Passwort ändern oder ein Nur-Lese-Passwort hinzufügen möchten, verwenden Sie den Befehl:
|
1 |
vncpasswd |
Mittlerweile wurden alle Standardkonfigurationen für den Server erstellt und ein Display-Port 5901 gestartet als :1. VNC kann mehrere Instanzen auf anderen Display-Ports starten, wie :2, :3, und :4 bezogen auf Port 5902, 5903, und 5904 beziehungsweise:
|
1 2 3 4 5 6 7 8 9 |
Ausgabe Möchten Sie gern zu eingeben ein nur--Lese- Passwort (y/n)? n xauth: Datei /home/cloudsigma/.Xauthority existiert nicht existieren Neuer 'X' Desktop ist your_hostname:1 Erstelle Standard- Start- Skript /home/cloudsigma/.vnc/xstartup Starte Anwendungen angegeben in /home/cloudsigma/.vnc/xstartup Log-Datei ist /home/cloudsigma/.vnc/your_hostname:1.log |
Ihr VNC-Server ist nun installiert und läuft erfolgreich. Im nächsten Schritt konfigurieren wir den Server so, dass er Xfce startet, um Zugriff über die grafische Benutzeroberfläche zu erhalten.
Schritt 2 — Konfigurieren des VNC-Servers
Unter dem Home-Verzeichnis finden Sie den .vnc-Ordner, der alle Konfigurationsdateien namens startup. Anfangs finden Sie die laufende Startup-Datei, die automatisch beim Ausführen des Befehls vncserver in Schritt-1. Das Startup-Skript wurde beim Ausführen des vncserver-Befehl im vorherigen Schritt. Sie werden nun jedoch Ihren eigenen erstellen, um den Xfce-Desktop zu starten. Wir müssen auch unseren eigenen Server erstellen, um den Xfce-Desktop zu starten, da sich die VNC-Konfiguration ändern wird.
Bevor wir fortfahren, müssen wir die VNC-Server-Instanz stoppen, die auf Port läuft5901:
|
1 |
vncserver -kill :1 |
Sie sehen die Ausgabe:
|
1 2 |
Ausgabe Beende Xtightvnc Prozess ID 17648 nano ~/.vnc/xstartup |
Anstelle von 17648, erhalten Sie möglicherweise eine andere Nummer, und das ist völlig in Ordnung. Als Nächstes bearbeiten wir die xstartup Datei. Bevor Sie Dateiänderungen vornehmen, sichern wir die Originaldatei:
|
1 |
mv ~/.vnc/xstartup ~/.vnc/xstartup.bak |
Erstellen Sie als Nächstes eine neue xstartup Datei und öffnen Sie diese in einem beliebigen Texteditor. In diesem Tutorial verwenden wir nano:
|
1 |
nano ~/.vnc/xstartup |
Fügen Sie anschließend die folgenden Zeilen zur Datei hinzu:
|
1 2 3 |
#!/bin/bash xrdb $HOME/.Xresources startxfce4 & |
Wann immer Sie den VNC-Server starten oder neu starten, werden diese Befehle automatisch ausgeführt. Die erste Zeile ist Shebang das das System über die Informationen des Interpreters informiert, um die ~/.vnc/xstartup-Datei zur Ausführung zu übergeben. Die nächste Zeile xrdb $HOME/. Xresources, informiert das GUI-Framework von VNC, die Xresources -Datei des Server-Benutzers zu lesen. Schließlich fordert die letzte Zeile den Server auf, Xfce zu starten. Speichern und schließen Sie die Datei nach dem Hinzufügen dieser Zeilen.
Wir müssen die Datei ausführbar machen, damit der VNC-Server die neue Startdatei verwenden kann:
|
1 |
chmod +x ~/.vnc/xstartup |
Als Nächstes starten Sie den VNC-Server neu:
|
1 |
vncserver -localhost |
Jetzt haben Sie den -localhost Option hier hinzugefügt. Der Localhost bindet den VNC-Server an das Loopback-Interface Ihres Servers, sodass Verbindungen nur von installierten Servern aus möglich sind. Als Nächstes richten wir einen SSH-Tunnel zwischen unserem lokalen Rechner und dem Server ein. Das Ziel ist es, eine zusätzliche Sicherheitsebene um VNC herum aufzubauen. Warum? Weil die Benutzer, die Zugriff haben werden, diejenigen sind, die bereits SSH-Zugriff auf den Server haben.
Sie sehen die folgende Ausgabe:
|
1 2 3 4 |
Neu 'X' Desktop ist your_hostname:1 Starten von Anwendungen spezifiziert in /home/sammy/.vnc/xstartup Log-datei ist /home/cloudsigma/.vnc/your_hostname:1.log |
Nachdem die Konfiguration eingerichtet ist, sind wir bereit, uns von unserem lokalen Rechner aus mit dem VNC-Server zu verbinden.
Schritt 3 — Sichere Verbindung mit dem VNC-Desktop herstellen
Bei der Verbindung mit dem Server verwendet VNC keine sicheren Protokolle. Daher müssen wir einen SSH-Tunnel einrichten und den VNC-Client anweisen, eine Verbindung über den Tunnel herzustellen, anstatt eine direkte Verbindung zuzulassen.
Wir erstellen eine SSH-Verbindung auf unserem lokalen Computer mit dem ssh Befehl, der an die localhost-Verbindung weiterleitet. Verwenden Sie den Befehl im Terminal, um eine SSH-Verbindung herzustellen:
|
1 |
ssh -L 59000:localhost:5901 -C -N -l cloudsigma your_server_ip |
Entschlüsseln wir den obigen Code:
-
-L 59000:localhost:5901: Der -L-Schalter gibt an, dass der angegebene Port auf dem lokalen Computer ( 59000) an den angegebenen Host und Port auf dem Zielserver ( localhost:5901) weitergeleitet wird. Das bedeutet, dass der Port 5901 auf dem Zielserver definiert wird als your_server_ip). Der von Ihnen angegebene lokale Port ist beliebig. Solange der Port nicht bereits an einen anderen Dienst gebunden ist, können Sie ihn frei als Weiterleitungsport für Ihren Tunnel verwenden.
-
-C: Aktiviert die Komprimierung, was weiter dazu beiträgt, den Ressourcenverbrauch zu minimieren und die Leistung zu beschleunigen.
-
-N: Nützlich für die Portweiterleitung. Dies weist ssh an, keine Remote-Befehle auszuführen.
-
-l cloudsigma your_server_ip: Der -l-Schalter ermöglicht es Ihnen, den Benutzer anzugeben, als der Sie sich nach der Verbindung mit dem Server anmelden möchten.
Der obige Befehl ist eine sicherere Methode, eine sichere Verbindung herzustellen, als einfach nur die Firewall Ihres Servers zu öffnen, um Verbindungen zum Port 5901 von überall her zuzulassen. Sobald Sie die Verbindung hergestellt haben, leitet der SSH-Tunnel die Inhalte vom Port 5901 auf Ihrem VNC an den Port 59000 auf Ihrem lokalen Rechner über den Standard-SSH-Port weiter; Port 22.
Sie können auch PuTTY verwenden, um eine Verbindung mit Ihrem Server herzustellen. Öffnen Sie PuTTY, gehen Sie auf die linke Seite des PuTTY-Terminals und suchen Sie den Connection-Zweig, um die Verbindung herzustellen. Erweitern Sie dann den SSH-Zweig und klicken Sie auf Tunnels. Auf dem Options controlling SSH port forwarding -Bildschirm geben Sie ein59000 als Quellport und localhost:5901 als Ziel:

Lassen Sie alle Optionen unverändert, klicken Sie auf Hinzufügen und dann auf Anwenden, um den Tunnel einzurichten. Sobald der Tunnel startet, verwenden Sie einen VNC-Client, um eine Verbindung mit localhost: 59000 herzustellen. Standardmäßig werden Sie aufgefordert, sich mit dem Passwort zu authentifizieren, das wir in Schritt 1 erstellt haben. Sobald die Verbindung hergestellt ist, sehen Sie den Standard-Xfce-Desktop:

Sie können auf Dateien im Home-Verzeichnis zugreifen und diese verwalten. Konfigurieren Sie außerdem Ihren VNC-Server so, dass er als systemd-Dienst.
Schritt 4 — VNC als Systemd-Dienst ausführen
Das Einrichten des VNC-Servers als systemd-Dienst ermöglicht die Serververwaltung. Sie können ihn ganz nach Ihren Wünschen und Bedürfnissen starten, stoppen, neu starten oder beenden. Jedes Mal, wenn der Server hochfährt, können Sie systemd-Verwaltungsbefehle verwenden, um zu überprüfen, ob der Server EIN oder AUS.
Zuerst erstellen wir eine neue Unit-Datei, um den VNC-Display-Port anzugeben, den wir bei der Verwaltung der Dienste verwenden möchten. Definieren Sie eine Unit-Datei:
|
1 |
sudo nano /etc/systemd/system/vncserver@.service |
Sie finden die @ -Symbol am Ende des Dateinamens, das es Ihnen ermöglicht, ein Argument für die Verwendung der Dienstkonfiguration zu übergeben.
Fügen Sie als Nächstes die Zeilen zur Unit-Datei hinzu. Benennen Sie die User, Group, WorkingDirectory, und den Benutzernamen im Wert von PIDFILE:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[Einheit] Beschreibung=Starten TightVNC Server beim Systemstart Nach=syslog.Ziel Netzwerk.Ziel [Dienst] Typ=Forking Benutzer=cloudsigma Gruppe=cloudsigma Arbeitsverzeichnis=/home/cloudsigma PIDFile=/home/cloudsigma/.vnc/%H:%i.pid ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost :%i ExecStop=/usr/bin/vncserver -kill :%i [Install] WantedBy=multi-user.target |
Wenn VNC bereits läuft, wird der ExecStartPre-Befehl ihn stoppen. Der ExecStart-Befehl startet VNC und setzt die Farbtiefe auf 24-Bit-Farbe mit einer Auflösung von 1280×800. Sie können diese Startoptionen entsprechend Ihren Anforderungen anpassen. Beachten Sie auch, dass der ExecStart-Befehl wieder die Option -localhost enthält. Wenn Sie fertig sind, speichern und schließen Sie die Unit-Datei.
Führen Sie als Nächstes die neue Unit-Datei in Ihrem System ein:
|
1 |
sudo sudo systemctl daemon-reload |
Aktivieren Sie EIN die Unit-Datei:
|
1 |
sudo systemctl enable vncserver@1.service |
Das 1 nach dem @-Zeichen gibt an, auf welcher Display-Nummer der Dienst erscheinen soll. In unserem Fall ist es der Standardwert :1, wie in Schritt-2 besprochen wurde. Wenn das VNC noch läuft, können Sie die aktuelle Instanz des VNC-Servers stoppen, indem Sie den kill-Befehl verwenden:
|
1 |
vncserver -kill :1 |
Starten Sie ihn dann wie jeden anderen systemd-Dienst:
|
1 |
sudo systemctl start vncserver@1 |
Sie können mit diesem Befehl überprüfen, ob es gestartet wurde:
|
1 |
sudo systemctl status vncserver@1 |
Sie sehen die Ausgabe:
|
1 2 3 4 5 6 7 8 |
Ausgabe vncserver@1.Dienst - Starten TightVNC Server beim Systemstart Geladen: geladen (/etc/systemd/system/vncserver@.Dienst; aktiviert; Hersteller Voreinstellung: aktiviert) Aktiv: aktiv (laufend) seit Do 2020-05-07 17:23:50 UTC; 6s vor Prozess: 39768 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (code=exited, status=2) Prozess: 39772 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :1 (code=exited, status=0/SUCCESS) Haupt PID: 39795 (Xtightvnc) ... |
Ihr VNC-Server ist nun bereit zur Verwendung, wann immer Ihr Server hochfährt, und Sie können ihn verwalten mit systemctl Befehle wie bei jedem anderen systemd-Dienst. Auf der Client-Seite werden Sie jedoch keinen Unterschied feststellen. Um die Verbindung wiederherzustellen, starten Sie Ihren SSH Tunnel mit:
|
1 |
ssh -L 59000:localhost:5901 -C -N -l cloudsigma your_server_ip |
Sie können mit Ihrem VNC-Client wieder Verbindungen zu localhost:59000 mit Ihrem Server herstellen.
Fazit
Anfangs mag die Einrichtung eines VNC-Servers eine Herausforderung sein, insbesondere wenn Sie versuchen, eine Verbindung zu einem neuen Computer herzustellen. Sobald Sie eine zuverlässige Verbindung hergestellt haben, wird die Arbeit mit einem Remote-Computer Spaß machen und aufregend sein. Mit einem sicheren VNC-Server, der auf Ihrem Ubuntu 20.04-Server läuft, können Sie Ihre Ressourcen, Dateien, Software und Einstellungen ganz einfach über eine benutzerfreundliche grafische Oberfläche verwalten. Die Nutzung übermäßiger Bandbreite ist vielleicht ein Nachteil der Verwendung von VNC. Sie können dies umgehen, indem Sie Bildschirme mit niedriger Auflösung und Graustufen für eine schnellere Übertragung verwenden.
Viel Spaß beim Computing!
Kommentare
Noch keine Kommentare. Schreiben Sie den ersten.