So installieren und konfigurieren Sie VNC unter Debian 9

Einführung

Virtual Network Computing (VNC) ist ein Verbindungssystem, mit dem Sie mit Tastatur und Maus mit einer grafischen Desktopumgebung auf einem Remoteserver interagieren können. Dies erleichtert Benutzern, die noch nicht mit der Befehlszeile vertraut sind, das Verwalten von Dateien, Software und Einstellungen auf einem Remoteserver.

In diesem Handbuch richten Sie einen VNC-Server auf einem Debian 9-Server ein und stellen eine sichere Verbindung über einen SSH-Tunnel her. Sie verwenden TightVNC, ein schnelles und leichtes Fernbedienungspaket. Diese Wahl stellt sicher, dass unsere VNC-Verbindung auch bei langsameren Internetverbindungen reibungslos und stabil ist.

Voraussetzungen

Um dieses Tutorial abzuschließen, benötigen Sie:

  • Ein Debian 9-Server wird eingerichtet, indem https://www.digitalocean.com/community/tutorials/initial-server-setup-with-debian-9 dem Debian 9-Handbuch zur Ersteinrichtung des Servers folgt], einschließlich eines Nicht-Root-Benutzers mit + sudo + access und eine firewall.

  • Ein lokaler Computer mit einem installierten VNC-Client, der VNC-Verbindungen über SSH-Tunnel unterstützt.

  • Unter Windows können Sie TightVNC, RealVNC oder UltraVNC verwenden.

  • Unter macOS können Sie das integrierte Programm Screen Sharing oder eine plattformübergreifende App wie diese verwenden RealVNC.

  • Unter Linux können Sie aus vielen Optionen auswählen, darunter "+ vinagre ", " krdc +", "https://www.realvnc.com/[RealVNC]" oder "https://www.tightvnc.com/[TightVNC]".

Schritt 1 - Installieren der Desktop-Umgebung und des VNC-Servers

Standardmäßig wird ein Debian 9-Server nicht mit einer grafischen Desktop-Umgebung oder einem installierten VNC-Server ausgeliefert. Daher werden wir mit der Installation dieser Server beginnen. Insbesondere werden wir Pakete für die neueste Desktop-Umgebung Xfce und das TightVNC-Paket installieren, die im offiziellen Debian-Repository verfügbar sind.

Aktualisieren Sie auf Ihrem Server Ihre Paketliste:

sudo apt update

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

sudo apt install xfce4 xfce4-goodies

Während der Installation werden Sie aufgefordert, Ihr Tastaturlayout aus einer Liste möglicher Optionen auszuwählen. Wählen Sie die Sprache aus, die für Ihre Sprache geeignet ist, und drücken Sie die Eingabetaste. Die Installation wird fortgesetzt.

Installieren Sie nach Abschluss dieser Installation den TightVNC-Server:

sudo apt install tightvncserver

Um die Erstkonfiguration des VNC-Servers nach der Installation abzuschließen, richten Sie mit dem Befehl "+ vncserver" ein sicheres Kennwort ein und erstellen Sie die Erstkonfigurationsdateien:

vncserver

Sie werden aufgefordert, ein Kennwort einzugeben und zu bestätigen, um remote auf Ihr Gerät 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 abgeschnitten.

Sobald Sie das Kennwort bestätigt haben, können Sie ein Kennwort nur zum Anzeigen erstellen. Benutzer, die sich mit dem Nur-Ansicht-Kennwort anmelden, können die VNC-Instanz nicht mit ihrer Maus oder Tastatur steuern. Dies ist eine hilfreiche Option, wenn Sie anderen Personen, die Ihren VNC-Server verwenden, etwas demonstrieren möchten, dies jedoch nicht erforderlich ist.

Der Prozess erstellt dann die erforderlichen Standardkonfigurationsdateien und Verbindungsinformationen für den Server:

OutputWould you like to enter a view-only password (y/n)?
xauth:  file /home//.Xauthority does not exist

New 'X' desktop is :1

Creating default startup script /home//.vnc/xstartup
Starting applications specified in /home//.vnc/xstartup
Log file is /home//.vnc/:1.log

Jetzt konfigurieren wir den VNC-Server.

Schritt 2 - Konfigurieren des VNC-Servers

Der VNC-Server muss wissen, welche Befehle beim Start ausgeführt werden sollen. Insbesondere muss VNC wissen, mit welchem ​​grafischen Desktop eine Verbindung hergestellt werden soll.

Diese Befehle befinden sich in einer Konfigurationsdatei mit dem Namen "+ xstartup " im Ordner " .vnc " in Ihrem Ausgangsverzeichnis. Das Startskript wurde erstellt, als Sie im vorherigen Schritt " vncserver +" ausgeführt haben. Wir erstellen jedoch ein eigenes Skript, um den Xfce-Desktop zu starten.

Wenn VNC zum ersten Mal eingerichtet wird, startet es eine Standardserverinstanz an Port + 5901 +. Dieser Port wird als display port bezeichnet und von VNC als ": 1 +" bezeichnet. VNC kann mehrere Instanzen an anderen Anzeigeports starten, z. B. ": 2 ", ": 3 +" und so weiter.

Da wir die Konfiguration des VNC-Servers ändern werden, stoppen Sie zuerst die VNC-Serverinstanz, die auf Port + 5901 + ausgeführt wird, mit dem folgenden Befehl:

vncserver -kill :1

Die Ausgabe sollte folgendermaßen aussehen, obwohl eine andere PID angezeigt wird:

OutputKilling Xtightvnc process ID

Sichern Sie das Original, bevor Sie die Datei + xstartup + ändern:

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

Jetzt erstelle eine neue + xstartup + Datei und öffne sie in deinem Texteditor:

nano ~/.vnc/xstartup

Befehle in dieser Datei werden automatisch ausgeführt, wenn Sie den VNC-Server starten oder neu starten. Wir benötigen VNC, um Ihre Desktop-Umgebung zu starten, falls dies noch nicht geschehen ist. Fügen Sie der Datei die folgenden Befehle hinzu:

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

Der erste Befehl in der Datei, "+ xrdb $ HOME / .Xresources ", weist das GUI-Framework von VNC an, die " .Xresources " - Datei des Serverbenutzers zu lesen. Mit ` .Xresources +` kann ein Benutzer bestimmte Einstellungen des grafischen Desktops ändern, z. B. Terminalfarben, Cursorthemen und Schriftwiedergabe. Der zweite Befehl weist den Server an, Xfce zu starten. Hier finden Sie die gesamte Grafiksoftware, die Sie zur komfortablen Verwaltung Ihres Servers benötigen.

Damit der VNC-Server diese neue Startdatei ordnungsgemäß verwenden kann, müssen wir sie ausführbar machen.

sudo chmod +x ~/.vnc/xstartup

Starten Sie jetzt den VNC-Server neu.

vncserver

Es wird eine Ausgabe ähnlich der folgenden angezeigt:

OutputNew 'X' desktop is :1

Starting applications specified in /home//.vnc/xstartup
Log file is /home//.vnc/:1.log

Stellen Sie mit der vorgenommenen Konfiguration von unserem lokalen Computer aus eine Verbindung zum Server her.

Schritt 3 - Sicheres Anschließen des VNC-Desktops

VNC selbst verwendet beim Herstellen einer Verbindung keine sicheren Protokolle. Wir verwenden einen SSH-Tunnel, um eine sichere Verbindung zu unserem Server herzustellen, und weisen dann unseren VNC-Client an, diesen Tunnel zu verwenden, anstatt eine direkte Verbindung herzustellen.

Erstellen Sie auf Ihrem lokalen Computer eine SSH-Verbindung, die sicher an die Verbindung "+ localhost +" für VNC weitergeleitet wird. Sie können dies über das Terminal unter Linux oder MacOS mit dem folgenden Befehl tun:

ssh -L :127.0.0.1: -C -N -l

Der Schalter "+ -L " gibt die Portbindungen an. In diesem Fall binden wir den Port " 5901 " der Remoteverbindung an den Port " 5901 " Ihres lokalen Computers. Der Schalter " -C " aktiviert die Komprimierung, während der Schalter " -N " " ssh " mitteilt, dass wir keinen Remote-Befehl ausführen möchten. Der Schalter " -l +" gibt den Remote-Anmeldenamen an.

Denken Sie daran, "" und "" 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 "+" als Verbindungs-IP und legen " localhost: 5901 +" als neuen weitergeleiteten Port in den SSH-Tunneleinstellungen des Programms fest.

Wenn der Tunnel ausgeführt wird, stellen Sie mit einem VNC-Client eine Verbindung zu "+ localhost: 5901 +" her. Sie werden aufgefordert, sich mit dem in Schritt 1 festgelegten Kennwort zu authentifizieren.

Sobald Sie verbunden sind, wird der Standard-Xfce-Desktop angezeigt.

image: https: //assets.digitalocean.com/articles/vnc_debian9/qOf5NgG.png [VNC-Verbindung zum Debian 9-Server] Wählen Sie * Use default config * (Standardkonfiguration verwenden), um Ihren Desktop schnell zu konfigurieren.

Sie können mit dem Dateimanager oder über die Befehlszeile auf Dateien in Ihrem Ausgangsverzeichnis zugreifen, wie hier gezeigt:

image: https: //assets.digitalocean.com/articles/vnc_debian9/j6HsSCr.png [Dateien über VNC-Verbindung zu Debian 9]

Drücken Sie auf Ihrem lokalen Computer auf Ihrem Terminal die Tastenkombination "+ STRG + C +", um den SSH-Tunnel zu stoppen und zu Ihrer Eingabeaufforderung zurückzukehren. Dadurch wird auch Ihre VNC-Sitzung getrennt.

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

Schritt 4 - Ausführen von VNC als Systemdienst

Als Nächstes richten wir den VNC-Server als systemd-Dienst ein, damit wir ihn wie jeden anderen Dienst nach Bedarf starten, stoppen und neu starten können. Dadurch wird auch sichergestellt, dass VNC beim Neustart des Servers gestartet wird.

Erstellen Sie zunächst mit Ihrem bevorzugten Texteditor eine neue Unit-Datei mit dem Namen "+ / etc / systemd / system / vncserver @ .service +":

sudo nano /etc/systemd/system/[email protected]

Das "+ @ +" - Symbol am Ende des Namens lässt uns ein Argument übergeben, das wir in der Dienstkonfiguration verwenden können. Hiermit geben wir den VNC-Anzeigeport an, den wir bei der Verwaltung des Dienstes verwenden möchten.

Fügen Sie der Datei die folgenden Zeilen hinzu. Stellen Sie sicher, dass Sie den Wert von * User *, * Group *, * WorkingDirectory * und den Benutzernamen im Wert von * PIDFILE * so ändern, dass er Ihrem Benutzernamen entspricht:

/etc/systemd/system/[email protected] [Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target

[Service]
Type=forking
User=
Group=
WorkingDirectory=/home/

PIDFile=/home//.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver  :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

Der Befehl "+ ExecStartPre " stoppt VNC, wenn es bereits ausgeführt wird. Der Befehl ` ExecStart +` startet VNC und setzt die Farbtiefe auf 24-Bit-Farbe mit einer Auflösung von 1280x800. Sie können diese Startoptionen auch an Ihre Anforderungen anpassen.

Speichern und schließen Sie die Datei.

Machen Sie das System als Nächstes auf die neue Unit-Datei aufmerksam.

sudo systemctl daemon-reload

Aktivieren Sie die Gerätedatei.

sudo systemctl enable [email protected]

Das Zeichen "+ 1 " nach dem Zeichen " @ " gibt an, über welche Anzeigenummer der Dienst angezeigt werden soll, in diesem Fall das in Schritt 2 beschriebene Standardzeichen ": 1 +".

Stoppen Sie die aktuelle Instanz des VNC-Servers, falls dieser noch ausgeführt wird.

vncserver -kill :1

Starten Sie es dann wie jeden anderen systemd-Dienst.

sudo systemctl start vncserver@1

Sie können überprüfen, ob es mit diesem Befehl gestartet wurde:

sudo systemctl status vncserver@1

Wenn es richtig gestartet wurde, sollte die Ausgabe folgendermaßen aussehen:

Output● [email protected] - Start TightVNC server at startup
  Loaded: loaded (/etc/systemd/system/[email protected]; enabled; vendor preset: enabled)
  Active:  (running) since Wed 2018-09-05 16:47:40 UTC; 3s ago
 Process: 4977 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :1 (code=exited, status=0/SUCCESS)
 Process: 4971 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (code=exited, status=0/SUCCESS)
Main PID: 4987 (Xtightvnc)

...

Ihr VNC-Server ist jetzt verfügbar, wenn Sie den Computer neu starten.

Starten Sie Ihren SSH-Tunnel erneut:

ssh -L :127.0.0.1: -C -N -l

Stellen Sie dann mit Ihrer VNC-Client-Software eine neue Verbindung zu "+ localhost: 5901 +" her, um eine Verbindung zu Ihrem Computer herzustellen.

Fazit

Sie haben jetzt einen gesicherten VNC-Server auf Ihrem Debian 9-Server. Jetzt können Sie Ihre Dateien, Software und Einstellungen mit einer benutzerfreundlichen und vertrauten grafischen Oberfläche verwalten und grafische Software wie Webbrowser remote ausführen.