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).
Dieser Artikel erklärt, wie man einen VNC-Server auf Ubuntu 20.04 installiert und konfiguriert. Wir zeigen Ihnen auch, wie Sie sich über einen SSH-Tunnel sicher mit dem VNC-Server verbinden.
Installation der Desktop-Umgebung #
Ubuntu-Server werden über die Befehlszeile verwaltet und haben standardmäßig keine Desktop-Umgebung installiert. Wenn Sie die Desktop-Version von Ubuntu ausführen, überspringen Sie diesen Schritt.
In Ubuntu-Repositories sind verschiedene Desktop-Umgebungen verfügbar. Eine Option ist die Installation von Gnome, der Standard-Desktop-Umgebung in Ubuntu 20.04. Eine andere Möglichkeit ist die Installation von Xfce. Es ist eine schnelle, stabile und leichte Desktop-Umgebung, die es ideal für die Verwendung auf einem Remote-Server macht.
In diesem Handbuch installieren wir Xfce. Geben Sie als Benutzer mit sudo-Berechtigungen die folgenden Befehle ein:
sudo apt update
sudo apt install xfce4 xfce4-goodies
Abhängig von Ihrem System kann das Herunterladen und Installieren von Xfce-Paketen einige Zeit dauern.
VNC-Server wird installiert #
In Ubuntu-Repositorys sind mehrere verschiedene VNC-Server verfügbar, z. B. 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 gewarteter Hochleistungs-VNC-Server. Geben Sie den folgenden Befehl ein, um das Paket zu installieren:
sudo apt install tigervnc-standalone-server
VNC-Zugriff konfigurieren #
Sobald der VNC-Server installiert ist, besteht der nächste Schritt darin, die anfängliche Benutzerkonfiguration zu erstellen und das Passwort einzurichten.
Legen Sie das Benutzerpasswort mit vncpasswd
fest Befehl. Verwenden Sie sudo nicht, wenn Sie den folgenden Befehl ausführen:
vncpasswd
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.
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
Die Passwortdatei wird in ~/.vnc
gespeichert Verzeichnis, das erstellt wird, falls nicht vorhanden.
Als nächstes 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. Verwenden Sie den chmod
Befehl zum Festlegen der Dateiberechtigungen:
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
Sie können nun den VNC-Server mit dem vncserver
starten Befehl:
vncserver
New 'server2.linuxize.com:1 (linuxize)' desktop at :1 on machine server2.linuxize.com
Starting applications specified in /home/linuxize/.vnc/xstartup
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.
Beachten Sie den :1
nach dem Hostnamen in der obigen Ausgabe. Dies gibt die Nummer des Displayports an, auf dem der vnc-Server läuft. In diesem Beispiel 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 .
Sie können eine Liste aller derzeit laufenden VNC-Sitzungen abrufen, indem Sie Folgendes eingeben:
vncserver -list
TigerVNC server sessions:
X DISPLAY # RFB PORT # PROCESS ID
:1 5901 5710
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 5710... success!
Erstellen einer Systemd-Unit-Datei #
Anstatt die VNC-Sitzung manuell zu starten, erstellen wir eine systemd-Unit-Datei, damit Sie den VNC-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 eine neue Unit-Datei erstellt wird:
sudo systemctl daemon-reload
Aktivieren Sie den Dienst so, dass er beim Booten startet:
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]; enabled; vendor preset: enabled)
Active: active (running) since Fri 2021-03-26 20:00:59 UTC; 3s ago
...
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 und den Datenverkehr sicher von Ihrem lokalen Computer auf Port 5901 an den Server auf demselben Port weiterzuleiten.
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 vagrant 192.168.33.10
Sie werden aufgefordert, das Benutzerkennwort einzugeben.
Stellen Sie sicher, dass Sie username
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
aus . 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, 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.