Wie man VNC unter Ubuntu 20.04 installiert und konfiguriert

0 Aktien
0
0
0
0

Wie man VNC unter Ubuntu 20.04 installiert und konfiguriert

Einführung

Virtual Network Computing (VNC) ist ein Verbindungssystem, das die Interaktion mit einer grafischen Desktop-Umgebung auf einem entfernten Server über Tastatur und Maus ermöglicht. Es erleichtert Benutzern, die mit der Kommandozeile noch nicht vertraut sind, die Verwaltung von Dateien, Software und Einstellungen auf dem entfernten Server.

In dieser Anleitung richten Sie einen VNC-Server mit TightVNC auf einem Ubuntu 20.04-Server ein und verbinden sich über einen SSH-Tunnel damit. Anschließend verwenden Sie ein VNC-Clientprogramm auf Ihrem lokalen Rechner, um über eine grafische Desktop-Umgebung mit Ihrem Server zu interagieren.

Voraussetzungen

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

  1. Ein Ubuntu 20.04 Server mit einem Administratorbenutzer ohne Root-Rechte und einer mit UFW konfigurierten Firewall.
  2. Ein lokaler Computer mit installiertem VNC-Client. Der verwendete VNC-Client muss Verbindungen über SSH-Tunnel unterstützen.
  • Unter Windows können Sie TightVNC, RealVNC oder UltraVNC verwenden.
  • Unter macOS können Sie die integrierte Bildschirmfreigabe-App verwenden oder eine plattformübergreifende App wie RealVNC.
  • Unter Linux stehen Ihnen viele Optionen zur Auswahl, darunter: EssigkrdcWählen Sie RealVNC oder TightVNC.

Schritt 1 – Desktopumgebung und VNC-Server installieren

Standardmäßig ist auf Ubuntu 20.04 Server weder eine grafische Desktop-Umgebung noch ein VNC-Server vorinstalliert, daher müssen Sie diese zunächst installieren.

Bei der Auswahl eines VNC-Servers und einer Desktop-Umgebung stehen Ihnen zahlreiche Optionen zur Verfügung. In diesem Tutorial installieren Sie die Pakete für die neueste Xfce-Desktop-Umgebung und das TightVNC-Paket aus dem offiziellen Ubuntu-Repository. Sowohl Xfce als auch TightVNC sind für ihren geringen Ressourcenverbrauch und ihre hohe Geschwindigkeit bekannt, wodurch eine reibungslose und stabile VNC-Verbindung auch bei langsameren Internetverbindungen gewährleistet wird.

Nachdem Sie sich per SSH mit Ihrem Server verbunden haben, aktualisieren Sie Ihre Paketliste:

    $ sudo apt update

Jetzt Xfce verpacken mit xfce4-Goodies Installation, die mehrere Verbesserungen der Desktop-Umgebung beinhaltet:

    $ sudo apt install xfce4 xfce4-goodies

Während der Installation werden Sie möglicherweise aufgefordert, einen Standard-Displaymanager für Xfce auszuwählen. Ein Displaymanager ist ein Programm, mit dem Sie über eine grafische Oberfläche eine Desktop-Umgebung auswählen und sich anmelden können. Sie verwenden Xfce nur, wenn Sie sich mit einem VNC-Client verbinden, und in diesen Xfce-Sitzungen sind Sie bereits als Ubuntu-Benutzer ohne Root-Rechte angemeldet. Daher ist die Wahl des Displaymanagers für dieses Tutorial irrelevant. Wählen Sie einen aus und EINGEBEN Drücken.

Sobald die Installation abgeschlossen ist, installieren Sie den TightVNC-Server:

    $ sudo apt install tightvncserver

Als nächstes der BefehlVNC-Server Führen Sie diesen Befehl aus, um das VNC-Passwort festzulegen, die anfänglichen Konfigurationsdateien zu erstellen und eine VNC-Serverinstanz zu starten:

    $ vncserver

Sie werden aufgefordert, ein Passwort einzugeben und zu bestätigen, um aus der Ferne auf Ihr Gerät zugreifen zu können:

   Ausgabe

Sie benötigen ein Passwort, um auf Ihre Desktop-Computer zugreifen zu können.

 

Passwort:

Verifizieren:

Das Passwort muss zwischen sechs und acht Zeichen lang sein. Passwörter, die länger als acht Zeichen sind, werden automatisch abgeschnitten.

Nachdem Sie das Passwort bestätigt haben, können Sie ein Passwort für den Nur-Lese-Modus festlegen. Benutzer, die sich mit einem solchen Passwort anmelden, können die VNC-Instanz nicht mit Maus oder Tastatur steuern. Diese Option ist nützlich, wenn Sie anderen Benutzern Ihres VNC-Servers etwas zeigen möchten, aber nicht zwingend erforderlich.

Dieser Prozess erstellt anschließend die notwendigen Standardkonfigurationsdateien und Verbindungsinformationen für den Server. Zusätzlich wird eine Standardserverinstanz auf Port 10 erstellt. 5901 Dieser Anschluss wird DisplayPort genannt und wird von VNC verwendet als:1 VNC kann mehrere Instanzen auf anderen DisplayPorts ausführen, mit :2 Zum Hafen5902, 3: Zeigen auf 5903 usw.:

   Ausgabe

Möchten Sie ein Passwort für die Ansicht eingeben (j/n)?N

xauth: Datei /home/Sammy/.Xauthority existiert nicht

 

Der neue 'X'-Desktop ist Ihr_Hostname:1

 

Erstelle Standard-Startskript /home/Sammy/.vnc/xstartup

Starten der in /home/ angegebenen AnwendungenSammy/.vnc/xstartup

Die Protokolldatei befindet sich unter /home/Sammy/.vnc/Ihr_Hostname:1.log

Beachten Sie, dass Sie Ihr Passwort oder ein Nur-Lese-Passwort jederzeit mit dem Befehl ändern können. vncpasswd Tun:

    $ vncpasswd

Der VNC-Server ist nun installiert und läuft. Konfigurieren wir ihn jetzt so, dass er Xfce startet und uns über eine grafische Oberfläche Zugriff auf den Server ermöglicht.

Schritt 2 – Konfigurieren des VNC-Servers

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

Die Befehle, die der VNC-Server beim Start ausführt, befinden sich in einer Konfigurationsdatei namens xstartup Im Ordner
.vnc Hier sehen Sie Ihr Hauptverzeichnis. Das Startskript wurde erstellt, als Sie den Befehl im vorherigen Schritt ausgeführt haben. VNC-Server Sie haben es ausgeführt, aber Sie werden Ihr eigenes Skript erstellen, um den Xfce-Desktop zu starten.

Da Sie die Konfiguration des VNC-Servers ändern werden, entfernen Sie zuerst die VNC-Serverinstanz, die auf Port 10 läuft. 5901 Es läuft. Stoppen Sie es mit folgendem Befehl:

    $   vncserver -kill :1 

Die Ausgabe sieht in etwa so aus, allerdings wird eine andere PID angezeigt:

   Ausgabe

Xtightvnc-Prozess-ID wird beendet 17648

Vor der Datei xstartup Änderung, Original sichern:

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

Jetzt eine Datei xstartup Erstelle eine neue Datei und öffne sie in einem Texteditor wie z. B. Nano Offen:

    $  nano ~/.vnc/xstartup

Fügen Sie anschließend die folgenden Zeilen in die Datei ein:

~/.vnc/xstartup

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

Die erste Zeile ist ein Shebang. In einfachen Textdateien, die auf *nix-Plattformen ausführbar sind, ist ein Shebang Es teilt dem System mit, an welchen Interpreter die Datei zur Ausführung gesendet werden soll. In diesem Fall wird die Datei an den Bash-Interpreter gesendet. Dadurch kann jede nachfolgende Zeile der Reihe nach als Befehl ausgeführt werden.

Der erste Befehl in der Datei, xrdb $HOME/.XresourcesDas VNC-GUI-Framework ruft die Datei auf. .Xresources Der Benutzer liest den Server. .Xresources Hier kann der Benutzer bestimmte Einstellungen der grafischen Benutzeroberfläche anpassen, beispielsweise Terminalfarben, Cursor-Designs und die Schriftartdarstellung. Der zweite Befehl weist den Server an, Xfce zu starten. Diese Befehle werden automatisch ausgeführt, sobald Sie den VNC-Server starten oder neu starten.

Nachdem Sie diese Zeilen hinzugefügt haben, speichern und schließen Sie die Datei. Wenn Sie Nano Sie benutzen es, indem Sie drücken STRG + X, Y Und dann EINGEBEN Mach es.

Damit der VNC-Server diese neue Konfigurationsdatei ordnungsgemäß verwenden kann, muss sie ausführbar gemacht werden:

    $ chmod +x ~/.vnc/xstartup

Starten Sie anschließend den VNC-Server neu:

    $ vncserver -localhost

Beachten Sie, dass der Befehl diesmal die Option enthält. -localhost Dadurch wird der VNC-Server mit der Loopback-Schnittstelle Ihres Servers verbunden. Dies bewirkt, dass VNC nur Verbindungen von dem Server zulässt, auf dem es installiert ist.

Als Nächstes erstellen Sie einen SSH-Tunnel zwischen Ihrem lokalen Rechner und Ihrem Server. Dadurch wird VNC quasi vorgegaukelt, die Verbindung von Ihrem lokalen Rechner stamme von Ihrem Server. Diese Strategie erhöht die Sicherheit von VNC zusätzlich, da nur Benutzer mit SSH-Zugriff auf Ihren Server darauf zugreifen können.

Sie sehen eine Ausgabe, die in etwa so aussieht:

Ausgabe
Der neue 'X'-Desktop ist  Ihr_Hostname:1

Starten der in /home/ angegebenen AnwendungenSammy/.vnc/xstartup
Die Protokolldatei befindet sich unter /home/Sammy/.vnc/Ihr_Hostname:1.log

Nachdem die Konfiguration vorgenommen wurde, können Sie sich von Ihrem lokalen Rechner aus mit dem VNC-Server verbinden.

Schritt 3 – Sichere Verbindung zum VNC-Desktop herstellen

VNC selbst verwendet keine sicheren Protokolle für die Verbindung. Um eine sichere Verbindung zu Ihrem Server herzustellen, erstellen Sie einen SSH-Tunnel und weisen Ihren VNC-Client anschließend an, diesen Tunnel zu nutzen, anstatt direkt mit ihm zu kommunizieren.

Stellen Sie auf Ihrem lokalen Computer eine SSH-Verbindung her, die eine sichere Verbindung zu folgendem System herstellt: Lokale Host-Verbindung VNC-Übertragung. Dies ist über das Terminal unter Linux oder macOS mit folgendem Befehl möglich:ssh Führen Sie folgende Schritte aus:

$ ssh -L 59000 :localhost: 5901 -C -N -l  Sammy Ihre_Server-IP

Hier ist die Bedeutung der Optionen dieses Befehls. ssh Es heißt:

  • -L 59000:localhost:5901: Schalten -L Gibt an, dass sich der angegebene Port auf dem lokalen Computer befindet (59.000(muss an den angegebenen Host und Port auf dem Zielserver gesendet werden)localhost:5901, was Hafen bedeutet 5901 Auf dem Zielserver., als Ihre_Server-IP (Beachten Sie, dass der von Ihnen angegebene lokale Port bis zu einem gewissen Grad willkürlich ist. Solange der Port nicht bereits mit einem anderen Dienst verbunden ist, können Sie ihn als Weiterleitungsport für Ihren Tunnel verwenden.).
  • -CDiese Option aktiviert die Komprimierung, wodurch der Ressourcenverbrauch reduziert und Aufgaben beschleunigt werden können.
  • -NDiese Option istssh Es bedeutet, dass Sie keine Remote-Befehle ausführen möchten. Diese Einstellung ist nützlich, wenn Sie lediglich Ports weiterleiten möchten.
  • l sammy deine_server_ip-: Schalten -l Hiermit können Sie den Benutzer angeben, mit dem Sie sich beim Server anmelden möchten. Stellen Sie sicher, dass… Sammy Und Ihre_Server-IP Ersetzen Sie <root> durch den Namen Ihres Nicht-Root-Benutzers und <IP-Adresse> durch die IP-Adresse Ihres Servers.

Notiz: Dieser Befehl erstellt einen SSH-Tunnel, der Daten von Port sendet. 5901 Gehen Sie auf Ihrem VNC-Server zu Port 59.000 Auf Ihrem lokalen Rechner über Port 22 Auf jedem Gerät ist die standardmäßige SSH-Portweiterleitung eingerichtet. Wenn Sie der grundlegenden Server-Einrichtungsanleitung für Ubuntu 20.04 gefolgt sind, haben Sie eine UFW-Regel hinzugefügt, um Verbindungen zu Ihrem Server über OpenSSH zu ermöglichen.

Dies ist sicherer, als die Firewall Ihres Servers zu öffnen, um eine Verbindung zum Port herzustellen. 5901 Das liegt daran, dass es jedem ermöglicht, über VNC auf Ihren Server zuzugreifen. Durch die Verbindung über einen SSH-Tunnel beschränken Sie den VNC-Zugriff auf Rechner, die bereits SSH-Zugriff auf den Server haben.

Wenn Sie PuTTY verwenden, um eine Verbindung zu Ihrem Server herzustellen, können Sie einen SSH-Tunnel erstellen, indem Sie mit der rechten Maustaste auf die Titelleiste des Terminalfensters klicken und anschließend die entsprechende Option auswählen. …Einstellungen ändern Klicken:


Zweig Verbindung Suchen Sie den entsprechenden Zweig im Baummenü auf der linken Seite des PuTTY-Rekonfigurationsfensters. SSH Öffnen und tippen Tunnel Klicken. Optionen des Portweiterleitungsseiten-Controllers</59000 <strong>SSH, als Quellport und localhost:5901 Geben Sie als Zielort Folgendes ein:


Klicken Sie dann auf den Button. Hinzufügen Klicken Sie und dann auf die Schaltfläche Anwenden Klicken Sie hier, um den Tunnel zu aktivieren.

Sobald der Tunnel eingerichtet ist, verwenden Sie einen VNC-Client, um eine Verbindung herzustellen zu localhost:59000 Sie werden aufgefordert, sich mit dem Passwort zu authentifizieren, das Sie in Schritt 1 festgelegt haben.

Sobald die Verbindung hergestellt ist, wird der Standard-Xfce-Desktop angezeigt. Er sollte in etwa so aussehen:


Wie Sie hier sehen können, können Sie mit dem Dateimanager oder über die Kommandozeile auf die Dateien in Ihrem Home-Verzeichnis zugreifen:


STRG+C Drücken Sie in Ihrem lokalen Terminal die entsprechende Taste, um den SSH-Tunnel zu beenden und zu Ihrer Anwendung zurückzukehren. Dadurch wird auch Ihre VNC-Sitzung getrennt.

Sie können Ihren VNC-Server nun so konfigurieren, dass er als systemd-Dienst ausgeführt wird.

Schritt 4 – VNC als Systemdienst ausführen
Indem Sie den VNC-Server als systemd-Dienst einrichten, können Sie ihn wie jeden anderen Dienst nach Bedarf starten, stoppen und neu starten. Mithilfe von systemd-Verwaltungsbefehlen können Sie außerdem sicherstellen, dass VNC beim Serverstart automatisch gestartet wird.

Erstellen Sie zunächst eine neue Unit-Datei mit dem Namen /etc/systemd/system/[email protected] Erstellen:

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

Symbol @ Am Ende des Namens kann ein Argument übergeben werden, das Sie in der Dienstkonfiguration verwenden können. Damit geben Sie den VNC-Display-Port an, den Sie bei der Verwaltung des Dienstes verwenden möchten.

Fügen Sie die folgenden Zeilen zur Datei hinzu. Achten Sie darauf, den Wert anzugeben. Benutzer, Gruppe, Arbeitsverzeichnis und der Benutzername im Wert PIDFILE Ändern Sie dies, damit es Ihrem Benutzernamen entspricht:

/etc/systemd/system/[email protected]

[Unit] Beschreibung=Startet den TightVNC-Server beim Systemstart
Nach=syslog.target Netzwerk.target

[Dienst] Typ=Forking
Benutzer= Sammy
Gruppe= Sammy
Arbeitsverzeichnis=/home/Sammy

PIDFile=/home/Sammy/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -Tiefe 24 -Geometrie 1280×800 -localhost:%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install] WantedBy=multi-user.target

Befehl ExecStartPre Falls VNC bereits läuft, wird es beendet. Befehl ExecStart Startet VNC und stellt die Farbtiefe auf 24 Bit bei einer Auflösung von 1280×800 ein. Sie können diese Startoptionen auch an Ihre Bedürfnisse anpassen. Beachten Sie außerdem, dass der BefehlExecStart Wieder
Beinhaltet Option -localhost Es ist.

Datei speichern und schließen.

Benachrichtigen Sie anschließend das System über die neue Unit-Datei:

    $ sudo systemctl daemon-reload

    $ sudo systemctl daemon-reload

Aktivieren Sie die Unit-Datei:

    $ sudo systemctl enable [email protected]

1 Unter dem Schild@ Gibt an, auf welcher Anzeigenummer der Dienst angezeigt werden soll, in diesem Fall der Standardanzeigenummer. :1 Wie in Schritt 2 besprochen.

Beenden Sie die aktuelle VNC-Serverinstanz, falls sie noch läuft:

    $ vncserver -kill :1

Starten Sie es dann wie jeden anderen systemd-Dienst:

    $ sudo systemctl start vncserver@1

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

    $ sudo systemctl status vncserver@1

Wenn der Prozess korrekt startet, sollte die Ausgabe wie folgt aussehen:

Ausgabe

[email protected] – Startet den Tight VNC-Server beim Systemstart
Geladen: geladen (/etc/systemd/system/[email protected]; aktiviert; Standardeinstellung des Anbieters: aktiviert)
Aktiv: aktiv (läuft) seit Donnerstag, 7. Mai 2020, 17:23:50 UTC; vor 6 Sekunden
Prozess: 39768 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (Code=beendet, Status=2)
Prozess: 39772 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280×800 :1 (Code=beendet, Status=0/ERFOLG)
Haupt-PID: 39795 (Xtightvnc)

Ihr VNC-Server ist nun einsatzbereit, sobald Ihr Server startet, und Sie können ihn wie jeden anderen systemd-Dienst mit den entsprechenden Befehlen starten.systemctl Verwalten.

Auf Clientseite ändert sich jedoch nichts. Um die Verbindung wiederherzustellen, starten Sie Ihren SSH-Tunnel neu:

$ ssh -L 59000 :localhost: 5901 -C -N -l  Sammy Ihre_Server-IP

Stellen Sie anschließend eine neue Verbindung mit Ihrer VNC-Client-Software her. localhost:59000 Stellen Sie eine Verbindung zu Ihrem Server her.

Ergebnis

Auf Ihrem Ubuntu 20.04-Server läuft nun ein sicherer VNC-Server. Sie können Ihre Dateien, Software und Einstellungen jetzt über eine benutzerfreundliche grafische Oberfläche verwalten und grafische Software wie Webbrowser remote ausführen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Das könnte Ihnen auch gefallen