Installation und Konfiguration von VNC auf Ubuntu 18.04

Einführung

Virtual Network Computing oder VNC ist ein Verbindungssystem, das es Ihnen ermöglicht, die Tastatur und die Maus zur Interaktion mit einer grafischen Desktop-Umgebung auf einem entfernten Server zu verwenden. Es vereinfacht die Verwaltung von Dateien, Software und Einstellungen auf einem entfernten Server für Benutzer, die mit der Befehlszeile noch nicht so versiert sind.

In diesem Leitfaden erstellen Sie einen VNC-Server auf einem Ubuntu 18.04 Server und verbinden sich mit diesem über einen sicheren SSH-Tunnel. Dazu verwenden Sie TightVNC, ein schnelles, leichtes Fernsteuerungspaket. Mit dieser Auswahl stellen Sie sicher, dass unsere VNC-Verbindung auch bei langsameren Internet-Verbindungen reibungslos und stabil sein wird.

Voraussetzungen

Um dieses Tutorial zu absolvieren, benötigen Sie:

  • Einen Ubuntu 18.04-Server, der gemäß der Anleitung zum Setup des Ubuntu 18.04-Servers eingerichtet wurde, einschließlich eines Sudo-Benutzers ohne Rootberechtigung und einer Firewall.
  • Einen lokalen Computer mit einem installierten VNC Client, der VNC-Verbindungen über SSH-Tunnel unterstützt.
    • In Windows können Sie TightVNC, RealVNC oder UltraVNC verwenden.
    • Auf MacOS können Sie das integrierte Screen Sharing-Programm verwenden oder eine plattformübergreifende App wie RealVNC.
    • Auf Linux können Sie aus zahlreichen Optionen auswählen, darunter Vinagre, krdc, RealVNC oder TightVNC.

Schritt 1 — Installation der Desktop-Umgebung und des VNC-Servers

Standardmäßig wird ein Ubuntu 18.04 Server nicht mit einer grafischen Desktop-Umgebung oder einem installierten VNC-Server geliefert, daher beginnen wir mit deren Installation. Wir installieren vor allem Pakete für die aktuellste Xfce Desktop-Umgebung und das TightVNC-Paket, das im offiziellen Ubuntu Repository verfügbar ist.

Aktualisieren Sie Ihre Liste der Pakete auf Ihrem Server.

  • sudo apt update

Installieren Sie jetzt die Xfce Desktop-Umgebung auf Ihrem Server:

  • sudo apt install xfce4 xfce4-goodies

Wenn diese Installation abgeschlossen ist, installieren Sie den TightVNC Server:

  • sudo apt install tightvncserver

Um die Erstkonfiguration des VNC-Servers nach der Installation abzuschließen, verwenden Sie den Befehl vncserver, um ein sicheres Passwort einzurichten und die Erstkonfigurationsdateien zu erstellen:

  • vncserver

Sie werden dazu aufgefordert, ein Passwort einzugeben und zu verifizieren, um ferngesteuert auf Ihren Rechner zuzugreifen.

OutputYou will require a password to access your desktops.  Password: Verify: 

Das Passwort muss zwischen sechs und acht Zeichen lang sein. Passwörter mit mehr als 8 Zeichen werden automatisch verkürzt.

Sobald Sie das Passwort verifiziert haben, können Sie ein schreibgeschütztes Passwort einrichten. Benutzer, die sich mit dem schreibgeschützten Passwort anmelden, können die VCN-Instanz nicht mit der Maus oder Tastatur steuern. Das ist eine hilfreiche Option, wenn Sie mit Ihrem VCN Server anderen etwas zeigen möchten, ist aber nicht erforderlich.

Der Prozess erstellt dann die notwendigen Standard-Konfigurationsdateien und Verbindungsinformationen für den Server.

OutputWould you like to enter a view-only password (y/n)? n xauth:  file /home/sammy/.Xauthority does not exist  New 'X' desktop is your_hostname:1  Creating default startup script /home/sammy/.vnc/xstartup Starting applications specified in /home/sammy/.vnc/xstartup Log file is /home/sammy/.vnc/your_hostname:1.log 

Jetzt wollen wir den VCN Server konfigurieren.

Schritt 2 — Konfiguration des VCN Servers

Der VCN Server muss wissen, welche Befehle er beim Start ausführen soll. VCN muss vor allem wissen, mit welchem grafischen Desktop er sich verbinden soll.

Diese Befehle befinden sich in einer Konfigurationsdatei namens xstartup im Ordner .vnc in Ihrem Stammverzeichnis. Das Start-Skript wurde erstellt, als Sie den vncserver im vorherigen Schritt ausgeführt haben, aber wir erstellen unser eigenes, um den Xfce Desktop zu starten.

Wenn VCN das erste Mal eingerichtet wird, startet er eine Standard-Server-Instanz auf Port 5901. Dieser Port wird als *Anzeige-Port *bezeichnet und wird vom VCN :1 genannt. VCN kann mehrere Instanzen auf anderen Anzeige-Ports, wie :2, :3 usw. starten.

Da wir die Konfiguration des VCN Servers ändern werden, müssen wir zunächst die VCN Server-Instanz stoppen, die auf Port 5901 ausgeführt wird. Dazu verwenden wir den folgenden Befehl:

  • vncserver -kill :1

Die Ausgabe sollte wie folgt aussehen, auch wenn Sie eine andere PID sehen werden:

OutputKilling Xtightvnc process ID 17648 

Bevor Sie die Datei xstartup ändern, sollten Sie ein Backup der Originaldatei vornehmen:

  • mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

Erstellen Sie jetzt eine neue xstartup-Datei und öffnen Sie sie im Texteditor:

  • nano ~/.vnc/xstartup

Die Befehle in dieser Datei werden automatisch ausgeführt, wenn Sie den VCN Server starten oder neu starten. VCN muss unsere Desktop-Umgebung starten, sofern diese noch nicht gestartet wurde. Fügen Sie der Datei diese Befehle hinzu:

~/.vnc/xstartup#!/bin/bash xrdb $HOME/.Xresources startxfce4 & 

Der erste Befehl in der Datei, xrdb $HOME/. Xresources weist das GUI Framework des VNC mit, das des Serverbenutzers zu lesen. Xresources-Datei. . Xresources ist der Ort, an dem ein Benutzer bestimmte Einstellungen des grafischen Desktops ändern kann, wie die Terminal-Farben, Cursor-Gestaltung und das Font-Rendering. Der zweite Befehl weist den Server an, Xfce zu starten, wo Sie die grafische Software finden, die sie zur problemlosen Verwaltung Ihres Servers brauchen.

Um sicherzustellen, dass der VCN Server diese neue Start-Datei ordnungsgemäß verwenden kann, müssen wir sie ausführbar machen.

  • sudo chmod +x ~/.vnc/xstartup

Starten Sie jetzt den VCN Server.

  • vncserver

Sie werden eine Ausgabe sehen, die dieser ähnelt:

OutputNew 'X' desktop is your_hostname:1  Starting applications specified in /home/sammy/.vnc/xstartup Log file is /home/sammy/.vnc/your_hostname:1.log 

Sobald die Konfiguration vorgenommen wurde, wollen wir uns über unseren lokalen Rechner mit dem Server verbinden.

Schritt 3 — Eine sichere Verbindung mit dem VCN Desktop

VCN selbst verwendet keine sicheren Protokolle beim Verbinden. Wir verwenden einen SSH-Tunnel, um eine sichere Verbindung mit unserem Server herzustellen und weisen dann unseren VCN Client an, anstelle der Direktverbindung diesen Tunnel zu verwenden.

Erstellen Sie auf Ihrem lokalen Computer eine SSH-Verbindung, die sicher an die localhost-Verbindung für VCN weiterleitet. Sie können dies mit folgendem Befehl über den Terminal auf Linux oder macOS durchführen:

  • ssh -L 5901:127.0.0.1:5901 -C -N -l sammy your_server_ip

Der -L Switch gibt die Port-Bindung an. In diesem Fall verbinden wir Port 5901 der entfernten Verbindung mit Port 5901 auf Ihrem lokalen Rechner. Der -C Switch ermöglicht eine Kompression, während der -N Switch ssh mitteilt, dass wir keinen entfernten Befehl ausführen wollen. Der -l Switch gibt den entfernten Login-Namen an.

Denken Sie daran, sammy und your_server_ip durch den Sudo-Benutzernamen ohne Rootberechtigung und die IP-Adresse Ihres Servers zu ersetzen.

Wenn Sie einen grafischen SSH Client, wie PuTTY, verwenden, verwenden Sie your_server_ip als Verbindungs-IP und setzen localhost:5901 als einen neuen weitergeleiteten Port in der SSH-Tunnel-Einstellung des Programms ein.

Sobald der Tunnel läuft, verwenden Sie einen VCN Client, um sich mit localhost:5901 zu verbinden. Sie werden aufgefordert, sich mit dem in Schritt 1 eingestellten Passwort zu authentifizieren.

Sobald die Verbindung steht, sehen Sie den Xfce Standard-Desktop. Es sollte ungefähr so aussehen:

VNC Verbindung mit dem Ubuntu 18.04 Server

Sie können mit dem Dateimanager auf Dateien in Ihrem Stammverzeichnis zugreifen oder von der Befehlszeile aus, wie nachstehend zu sehen ist:

Dateien über die VNC Verbindung mit Ubuntu 18.04

Drücken Sie CTRL+C auf Ihrem Terminal, um den SSH-Tunnel zu stoppen und zu Ihrer Aufforderung zurückzukehren. Damit wird auch Ihre VNC Sitzung unterbrochen.

Als nächstes richten wir unseren VNC Server als Dienst ein.

Schritt 4 — VCN als Systemdienst ausführen

Als nächstes stellen wir den VNC Server als Systemdienst ein, um ihn wie jeden anderen Dienst starten, stoppen und ggf. neu starten zu können. Damit wird auch sichergestellt, dass VCN beim Neustart Ihres Servers gestartet wird.

Erstellen Sie zunächst in Ihrem bevorzugten Texteditor eine neue Unit-Datei mit dem Namen /etc/systemd/system/[email protected]:

Das @ Symbol am Ende des Namens gestattet uns, ein Argument aufzunehmen, das wir in der Dienstkonfiguration verwenden können. Wir verwenden dies, um den VCN Anzeige-Port anzugeben, den wir bei der Dienstverwaltung einsetzen möchten.

Fügen Sie der Datei folgende Zeilen hinzu. Vergewissern Sie sich, dass Sie den Wert von User, Group, WorkingDirectory und den Benutzernamen im Wert von *PIDFILE *ändern, damit er mit Ihrem Benutzernamen übereinstimmt:

/etc/systemd/system/[email protected] [Unit] Description=Start TightVNC server at startup After=syslog.target network.target  [Service] Type=forking User=sammy Group=sammy WorkingDirectory=/home/sammy  PIDFile=/home/sammy/.vnc/%H:%i.pid ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i ExecStop=/usr/bin/vncserver -kill :%i  [Install] WantedBy=multi-user.target 

Der ExecStartPre Befehl stoppt VCN, wenn er bereits läuft. Der ExecStart Befehl startet VCN und stellt die Farbtiefe auf 24-Bit-Farbe mit einer Auflösung von 1280 x 800. Sie können diese Startoptionen auch je nach Wunsch ändern.

Speichern und schließen Sie die Datei.

Als nächstes müssen Sie das System auf die neue Unit-Datei aufmerksam machen.

  • sudo systemctl daemon-reload

Aktivieren Sie die Unit-Datei.

Die 1 nach dem Zeichen @ gibt an, über welcher Anzeigenummer der Dienst angezeigt werden soll; in diesem Fall ist der Standard :1, wie wir bereits in Schritt 2 besprochen haben.

Stoppen Sie die aktuelle Instanz des VCN Servers, wenn er noch läuft.

  • vncserver -kill :1

Starten Sie ihn dann wie jeden anderen Systemdienst.

Sie können verifizieren, dass er mit diesem Befehl gestartet wurde:

Falls er richtig gestartet wurde, sollte die Ausgabe wie folgt aussehen:

Output● [email protected] - Start TightVNC server at startup    Loaded: loaded (/etc/systemd/system/[email protected]; indirect; vendor preset: enabled)    Active: active (running) since Mon 2018-07-09 18:13:53 UTC; 2min 14s ago   Process: 22322 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :1 (code=exited, status=0/SUCCESS)   Process: 22316 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (code=exited, status=0/SUCCESS)  Main PID: 22330 (Xtightvnc)  ... 

Ihr VCN Server steht jetzt beim Neustart des Rechners zur Verfügung.

Starten Sie Ihren SSH-Tunnel erneut:

  • ssh -L 5901:127.0.0.1:5901 -C -N -l sammy your_server_ip

Stellen Sie dann mit Ihrer VCN Client Software eine neue Verbindung zum localhost:5901 her, um sich mit Ihrem Rechner zu verbinden.

Zusammenfassung

Jetzt läuft ein sicherer VCN Server auf Ihrem Ubuntu 18.04 Server. Jetzt können Sie Ihre Dateien, Software und Einstellungen in einer benutzerfreundlichen, vertrauten grafischen Oberfläche verwalten und grafische Software wie Web-Browser ferngesteuert ausführen.