VNC ist ein System, mit dem Sie einen anderen Computer fernsteuern können. Es ermöglicht Ihnen, Ihre Maus- und Tastatureingaben so weiterzuleiten, als ob Sie physisch vor dem System sitzen würden, obwohl Sie sich tatsächlich auf der anderen Seite der Welt befinden könnten.
In diesem Handbuch gehen wir die Schritte zum Einrichten eines VNC-Servers auf Ihrem Ubuntu 20.04-System durch. Wenn wir fertig sind, können Sie von überall aus auf Ihr System zugreifen, vorausgesetzt, Ihr Client-System und der VNC-Server verfügen über eine Internetverbindung.
In diesem Tutorial lernen Sie:
- So installieren und konfigurieren Sie TightVNC Server
- So installieren und konfigurieren Sie den XFCE-Desktop-Manager
- So stellen Sie mit TightVNC Viewer eine Verbindung zu unserem VNC-Server her
- So tunneln Sie VNC-Verbindungen über SSH
- Wie man mehrere VNC-Desktops mit einem Systemd-Skript verwaltet
Herstellen einer Verbindung zu einem VNC-Server
Kategorie | Anforderungen, Konventionen oder verwendete Softwareversion |
---|---|
System | Ubuntu 20.04 Focal Fossa installiert oder aktualisiert |
Software | TightVNC-Server, XFCE-Desktop-Manager, TightVNC-Viewer |
Andere | Privilegierter Zugriff auf Ihr Linux-System als root oder über sudo Befehl. |
Konventionen | # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder durch Verwendung von sudo Befehl$ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden |
VNC-Server installieren
Wir müssen zuerst ein paar Pakete installieren. Es gibt mehrere Optionen für VNC-Serversoftware, aber für dieses Tutorial verwenden wir TightVNC Server. Neben VNC benötigen wir auch einen grafischen Desktop. XFCE ist eine gute Wahl, also werden wir hier darauf eingehen.
- Öffnen Sie zunächst ein Terminal und geben Sie den folgenden Befehl ein, um den TightVNC-Server und die Kerndateien des XFCE-Desktop-Managers zu installieren:
$ sudo apt install tightvncserver XFCE4 XFCE4-goodies
- Nachdem die Pakete installiert sind, müssen wir einen Benutzernamen und ein Passwort konfigurieren, die verwendet werden, um sich von einem Client mit dem VNC-Server zu verbinden. Erstellen Sie ein Passwort mit diesem Befehl:
$ vncpasswd
- Als Nächstes konfigurieren wir VNC so, dass die XFCE-Desktopumgebung gestartet wird, wenn ein Client eine Verbindung herstellt. Verwenden Sie nano oder den Texteditor Ihrer Wahl (z. B. Atom, Sublime), um die folgende Datei zu erstellen:
$ nano ~/.vnc/xstartup
- Fügen Sie die folgenden paar Zeilen ein und speichern Sie dann Ihre Änderungen und beenden Sie die Datei:
xstartup-Konfigurationsdatei#!/bin/sh unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS startxfce4 &
- Bearbeiten Sie nach diesen vorgenommenen Änderungen die Berechtigungen der Datei, um sie ausführbar zu machen:
$ chmod +x ~/.vnc/xstartup
VNC-Server starten
VNC läuft als Dienst auf Ihrem System. Damit sich Clients verbinden können, muss der VNC-Server offensichtlich laufen und auf eingehende Verbindungsversuche warten. Nachdem unsere Konfiguration abgeschlossen ist, können wir den VNC-Server mit dem folgenden Befehl starten:
$ vncserver
Wenn Ihr Terminal eine Ausgabe wie im Screenshot unten zurückgibt, läuft Ihr VNC-Server korrekt.
VNC-Server starten
VNC verwendet für jeden erstellten Remote-Desktop einen neuen Port. An diesem Punkt sollte Ihr System auf Port 5901
lauschen für eingehende VNC-Verbindungen. Mit ss -ltn
können Sie sich davon überzeugen Befehl:
$ ss -ltnVNC überwacht Port 5901
Wenn Sie die UFW-Firewall aktiviert haben, müssen Sie Port 5901
öffnen damit eingehende VNC-Verbindungen nicht blockiert werden:
$ sudo ufw allow from any to any port 5901 proto tcp Rule added Rule added (v6)
Mit VNC-Server verbinden
Es gibt viele Möglichkeiten für VNC-Clients und jeder von ihnen sollte in der Lage sein, eine Verbindung zu Ihrem neu gestarteten VNC-Server herzustellen. Wenn Sie noch keinen bevorzugten Client zur Verwendung haben, folgen Sie uns, während wir die Anweisungen zum Herstellen einer Verbindung zum VNC-Server mit dem TightVNC Viewer behandeln.
- Beginnen Sie mit der Installation des
xtightvncviewer
Paket auf Ihrem Ubuntu-Client-System:$ sudo apt install xtightvncviewer
- Sobald der VNC-Client installiert ist, können Sie den
vncviewer
verwenden Befehl, gefolgt von entweder dem Hostnamen oder der IP-Adresse des VNC-Servers, um sich damit zu verbinden.$ vncviewer linuxconfig.org:1
Geben Sie Ihr Passwort ein, das wir zuvor beim Einrichten von VNC Server erstellt haben. Wenn alles gut gelaufen ist, wird Ihnen eine XFCE-Desktopsitzung angezeigt, die auf dem Ubuntu-System des Remote-VNC-Servers ausgeführt wird:
Mit VNC-Server verbinden
VNC durch SSH tunneln
Für zusätzliche Sicherheit können Sie die VNC-Verbindung über SSH auf Ihrem VNC-Server tunneln. Dies setzt natürlich voraus, dass Sie SSH-Zugriff auf den VNC-Server haben. Wenn Sie zusätzliche Sicherheit wünschen, befolgen Sie diese Schritte:
- Wenn Sie SSH noch nicht installiert haben, ist das eine ziemlich offensichtliche Voraussetzung dafür, dass dies funktioniert:
$ sudo apt install ssh
- Erstellen Sie als Nächstes einen SSH-Tunnel auf einem lokalen Port 5901, der zu einem Remote-Port 5901 auf Ihrem VNC-Server führt. Stellen Sie im folgenden Befehl sicher, dass Sie
user1
ersetzen undlinuxconfig
mit dem Benutzernamen und Hostnamen Ihres VNC-Servers:$ ssh -L 5901:127.0.0.1:5901 -N -f -l user1 linuxconfig
Der obige Befehl öffnet einen lokalen Port
5901
auf einer Localhost-Loopback-Netzwerkschnittstelle127.0.0.1
:$ ss -ltn State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 5 127.0.0.1:631 0.0.0.0:* LISTEN 0 128 127.0.0.1:6010 0.0.0.0:* LISTEN 0 128 127.0.0.1:6011 0.0.0.0:* LISTEN 0 128 0.0.0.0:38299 0.0.0.0:* LISTEN 0 128 127.0.0.1:5901 0.0.0.0:*
- Verwenden Sie als Nächstes den lokalen Port
5901
um sich über den SSH-Tunnel mit einem entfernten VNC-Server zu verbinden:$ vncviewer localhost:1
Startskript des VNC-Serversystems
Während diese Konfiguration funktioniert, gibt es möglicherweise ein Szenario, in dem Sie mehrere VNC-Desktopsitzungen verwalten müssen. In diesem Fall kann die Erstellung eines systemd-Startskripts dies erleichtern.
Verwenden Sie nano oder einen anderen Texteditor, um die folgende Datei zu erstellen:
$ sudo nano /etc/systemd/system/[email protected]
Nachdem Sie die Datei geöffnet haben, fügen Sie die folgenden Zeilen ein, während Sie user1
ersetzen username durch den Benutzernamen Ihres VNC-Benutzers auf Zeile 7 und Zeile 10. Ändern Sie optional die Einstellungen für die Bildschirmauflösung und wenden Sie einen anderen vncserver
an Optionen oder Argumente:
[Unit]
Description=Systemd VNC server startup script for Ubuntu 20.04
After=syslog.target network.target
[Service]
Type=forking
User=user1
ExecStartPre=-/usr/bin/vncserver -kill :%i &> /dev/null
ExecStart=/usr/bin/vncserver -depth 24 -geometry 800x600 :%i
PIDFile=/home/user1/.vnc/%H:%i.pid
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target
Systemd-Startdatei Als nächstes laden Sie Systemd neu, damit die Änderungen wirksam werden:
$ sudo systemctl daemon-reload
So starten Sie den VNC-Desktop 1
, geben Sie ein:
$ sudo service vncserver@1 start
So stoppen Sie den VNC-Desktop 1
, ausführen:
$ sudo service vncserver@1 stop
Der folgende Linux-Befehl aktiviert den VNC-Desktop 1
nach Neustart starten:
$ sudo systemctl enable vncserver@1
So starten Sie den VNC-Desktop 2
, geben Sie ein:
$ sudo service vncserver@2 start
Und so weiter…
Schlussfolgerung
In diesem Handbuch haben wir gesehen, wie man TightVNC Server auf Ubuntu 20.04 Focal Fossa installiert und konfiguriert. Wir haben den XFCE-Desktop-Manager für unsere VNC-Clients zur Verwendung beim Herstellen einer Verbindung installiert.
Wir haben auch gelernt, wie man TightVNC Viewer verwendet, um sich remote mit unserem VNC-Server zu verbinden. Darüber hinaus haben wir auch behandelt, wie man VNC-Verbindungen für zusätzliche Sicherheit durch SSH tunnelt und ein benutzerdefiniertes Systemd-Startskript verwendet, um mehrere VNC-Desktop-Verbindungen effizient zu verwalten.