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.
Um dieses Tutorial zu absolvieren, benötigen Sie:
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.
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.
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:
Sie können mit dem Dateimanager auf Dateien in Ihrem Stammverzeichnis zugreifen oder von der Befehlszeile aus, wie nachstehend zu sehen ist:
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.
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/vncserver@.service
:
- sudo nano /etc/systemd/system/vncserver@.service
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/vncserver@.service[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.
- sudo systemctl enable vncserver@1.service
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.
- sudo systemctl start vncserver@1
Sie können verifizieren, dass er mit diesem Befehl gestartet wurde:
- sudo systemctl status vncserver@1
Falls er richtig gestartet wurde, sollte die Ausgabe wie folgt aussehen:
Output● vncserver@1.service - Start TightVNC server at startup
Loaded: loaded (/etc/systemd/system/vncserver@.service; 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.
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.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Sign up for Infrastructure as a Newsletter.
Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.