Dieses Handbuch behandelt die Schritte, die zum Installieren und Konfigurieren eines VNC-Servers unter Ubuntu 18.04 erforderlich sind. Wir zeigen Ihnen auch, wie Sie sich über einen SSH-Tunnel sicher mit dem VNC-Server verbinden.
Virtual Network Computing (VNC) ist ein grafisches Desktop-Sharing-System, mit dem Sie Ihre Tastatur und Maus verwenden können, um einen anderen Computer fernzusteuern. Es ist eine Open-Source-Alternative zum Microsoft Remote Desktop Protocol (RDP).
Voraussetzungen #
Bevor Sie mit dem Tutorial fortfahren, vergewissern Sie sich, dass Sie als Benutzer mit sudo-Berechtigungen angemeldet sind.
Installation der Desktop-Umgebung #
Auf den meisten Servern ist keine Desktop-Umgebung installiert, daher beginnen wir mit der Installation einer einfachen Desktop-Umgebung.
In Ubuntu-Repositories sind mehrere Desktop-Umgebungen (DE) verfügbar. Wir werden Xfce installieren. Es ist eine schnelle, stabile und leichte Desktop-Umgebung, die es ideal für die Verwendung auf einem Remote-Server macht.
Geben Sie die folgenden Befehle ein, um Xfce auf Ihrem Server zu installieren:
sudo apt update
sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils
Abhängig von Ihrem System kann das Herunterladen und Installieren der Xfce-Pakete einige Zeit dauern.
VNC-Server wird installiert #
Es gibt auch mehrere verschiedene VNC-Server in Ubuntu-Repositories wie TightVNC, TigerVNC und x11vnc. Jeder VNC-Server hat unterschiedliche Stärken und Schwächen in Bezug auf Geschwindigkeit und Sicherheit.
Wir werden TigerVNC installieren. Es ist ein aktiv gepflegter Hochleistungs-VNC-Server.
Geben Sie den folgenden Befehl ein, um TigerVNC auf Ihrem Ubuntu-Server zu installieren:
sudo apt install tigervnc-standalone-server tigervnc-common
Nachdem der VNC-Server installiert ist, besteht der nächste Schritt darin, die Erstkonfiguration zu erstellen und das Passwort einzurichten. Verwenden Sie sudo nicht, wenn Sie vncserver
ausführen Befehl:
vncserver
Sie werden aufgefordert, das Passwort einzugeben und zu bestätigen und ob Sie es als Nur-Lese-Passwort festlegen möchten. Wenn Sie sich dafür entscheiden, ein Nur-Anzeige-Passwort einzurichten, kann der Benutzer nicht mit der Maus und der Tastatur mit der VNC-Instanz interagieren.
You will require a password to access your desktops.
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
/usr/bin/xauth: file /home/linuxize/.Xauthority does not exist
New 'server2.linuxize.com:1 (linuxize)' desktop at :1 on machine server2.linuxize.com
Starting applications specified in /etc/X11/Xvnc-session
Log file is /home/linuxize/.vnc/server2.linuxize.com:1.log
Use xtigervncviewer -SecurityTypes VncAuth -passwd /home/linuxize/.vnc/passwd :1 to connect to the VNC server.
Das erste Mal den vncserver
Befehl ausgeführt wird, erstellt und speichert er die Passwortdatei in ~/.vnc
. Dieses Verzeichnis wird erstellt, wenn es nicht vorhanden ist.
Beachten Sie den :1
nach dem Hostnamen in der obigen Ausgabe. Dies gibt die Anzeigeportnummer an, auf der der vnc-Server ausgeführt wird. In unserem Fall läuft der Server auf dem TCP-Port 5901
(5900+1). Wenn Sie eine zweite Instanz mit vncserver
erstellen es wird auf dem nächsten freien Port ausgeführt, z. B. :2
, was bedeutet, dass der Server auf Port 5902
läuft (5900+2).
Beachten Sie Folgendes, wenn Sie mit VNC-Servern arbeiten::X
ist ein Displayport, der sich auf 5900+X
bezieht .
Bevor Sie mit dem nächsten Schritt fortfahren, stoppen Sie die VNC-Instanz mit dem vncserver
Befehl mit einem -kill
Option und die Servernummer als Argument. In diesem Beispiel läuft der Server auf Port 5901 (:1
), also beenden wir es mit:
vncserver -kill :1
Killing Xtigervnc process ID 7264... success!
VNC-Server wird konfiguriert #
Nachdem nun sowohl Xfce als auch TigerVNC auf dem Server installiert sind, müssen wir TigerVNC für die Verwendung von Xfce konfigurieren. Erstellen Sie dazu die folgende Datei:
~/.vnc/xstartupnano ~/.vnc/xstartup
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4
Speichern und schließen Sie die Datei. Die obigen Befehle werden automatisch ausgeführt, wenn Sie den TigerVNC-Server starten oder neu starten.
Der ~/.vnc/xstartup
Datei muss auch Ausführungsberechtigungen haben. Führen Sie den folgenden chmod
aus Befehl, um sicherzustellen, dass die Berechtigungen korrekt sind:
chmod u+x ~/.vnc/xstartup
Wenn Sie zusätzliche Optionen an den VNC-Server übergeben müssen, erstellen Sie eine Datei mit dem Namen config
und fügen Sie eine Option pro Zeile hinzu. Hier ist ein Beispiel:
geometry=1920x1080
dpi=96
Erstellen einer Systemd-Unit-Datei #
Erstellen Sie eine systemd-Unit-Datei, damit Sie den VNC-Dienst wie jeden anderen systemd-Dienst nach Bedarf starten, stoppen und neu starten können.
Öffnen Sie Ihren Texteditor und kopieren Sie die folgende Konfiguration und fügen Sie sie ein. Achten Sie darauf, den Benutzernamen in Zeile 7 so zu ändern, dass er mit Ihrem Benutzernamen übereinstimmt.
sudo nano /etc/systemd/system/[email protected]
/etc/systemd/system/[email protected][Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=simple
User=linuxize
PAMName=login
PIDFile=/home/%u/.vnc/%H%i.pid
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill :%i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver :%i -geometry 1440x900 -alwaysshared -fg
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target
Speichern und schließen Sie die Datei.
Systemd benachrichtigen, dass wir eine neue Unit-Datei erstellt haben mit:
sudo systemctl daemon-reload
Der nächste Schritt besteht darin, die Unit-Datei mit dem folgenden Befehl zu aktivieren:
sudo systemctl enable [email protected]
Die Zahl 1
nach dem @
sign definiert den Anzeigeport, auf dem der VNC-Dienst ausgeführt wird. Das bedeutet, dass der VNC-Server auf Port 5901
lauscht , wie wir im vorherigen Abschnitt besprochen haben.
Starten Sie den VNC-Dienst, indem Sie Folgendes ausführen:
sudo systemctl start [email protected]
Überprüfen Sie, ob der Dienst erfolgreich gestartet wurde mit:
sudo systemctl status [email protected]
● [email protected] - Remote desktop service (VNC)
Loaded: loaded (/etc/systemd/system/[email protected]; indirect; vendor preset: enabled)
Active: active (running) since Thu 2018-08-16 19:05:54 UTC; 4s ago
Process: 9893 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill :1 > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
Main PID: 9900 (vncserver)
Tasks: 0 (limit: 507)
CGroup: /system.slice/system-vncserver.slice/[email protected]
‣ 9900 /usr/bin/perl /usr/bin/vncserver :1 -geometry 1440x900 -alwaysshared -fg
Verbinden mit VNC-Server #
VNC ist kein verschlüsseltes Protokoll und kann Paketschnüffeln ausgesetzt sein. Der empfohlene Ansatz besteht darin, einen SSH-Tunnel zu erstellen, der den Datenverkehr von Ihrem lokalen Computer auf Port 5901 sicher an den Server auf demselben Port weiterleitet.
SSH-Tunneling unter Linux und macOS einrichten #
Wenn Sie Linux, macOS oder ein anderes Unix-basiertes Betriebssystem auf Ihrem Computer ausführen, können Sie mit dem folgenden Befehl ganz einfach einen SSH-Tunnel erstellen:
ssh -L 5901:127.0.0.1:5901 -N -f -l username server_ip_address
Sie werden aufgefordert, das Benutzerkennwort einzugeben.
Vergessen Sie nicht, username
zu ersetzen und server_ip_address
mit Ihrem Benutzernamen und der IP-Adresse Ihres Servers.
SSH-Tunneling unter Windows einrichten #
Wenn Sie Windows ausführen, können Sie SSH-Tunneling mit dem PuTTY-SSH-Client einrichten.
Öffnen Sie Putty und geben Sie Ihre Server-IP-Adresse in das Feld Host name or IP address
ein Feld.
Unter Connection
Menü, Feld, erweitern Sie SSH
und wählen Sie Tunnels
. Geben Sie den Port des VNC-Servers ein (5901
) im Source Port
Feld und geben Sie server_ip_address:5901
ein im Destination
Feld und klicken Sie auf Add
Schaltfläche wie im Bild unten gezeigt:
Gehen Sie zurück zur Session
Seite, um die Einstellungen zu speichern, damit Sie sie nicht jedes Mal neu eingeben müssen. Wählen Sie zum Remote-Server die gespeicherte Sitzung aus und klicken Sie auf Open
Schaltfläche.
Verbinden mit Vncviewer #
Nachdem der SSH-Tunnel erstellt wurde, ist es an der Zeit, Ihren Vncviewer zu öffnen und sich mit dem VNC-Server unter localhost:5901
zu verbinden .
Sie können jeden VNC-Viewer wie TigerVNC, TightVNC, RealVNC, UltraVNC, Vinagre und VNC Viewer für Google Chrome verwenden.
Wir werden TigerVNC verwenden. Öffnen Sie den Viewer und geben Sie localhost:5901
ein , und klicken Sie auf Connect
Schaltfläche.
Geben Sie Ihr Benutzerpasswort ein, wenn Sie dazu aufgefordert werden, und Sie sollten den Standard-Xfce-Desktop sehen. Es sieht in etwa so aus:
Sie können mit der Interaktion mit dem Remote-XFCE-Desktop von Ihrem lokalen Computer aus mit Ihrer Tastatur und Maus beginnen.