One place for hosting & domains

      So installieren und konfigurieren Sie VNC unter Ubuntu 20.04 [Quickstart]


      Einführung

      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 dieser Kurzanleitung erfahren Sie, wie Sie einen VNC-Server mit TightVNC auf einem Ubuntu 20.04-Server einrichten und ihn sicher über einen SSH-Tunnel verbinden. Anschließend verwenden Sie ein VNC-Clientprogramm auf Ihrem lokalen Computer, um mit Ihrem Server über eine grafische Desktop-Umgebung zu interagieren.

      Voraussetzungen

      Um dieses Tutorial zu absolvieren, benötigen Sie:

      • Einen Ubuntu 20.04-Server mit einem administrativen non-root user und eine mit UFW konfigurierte Firewall. Um dies einzurichten, folgen Sie unserem Leitfaden für die Ersteinrichtung des Servers für Ubuntu 18.04.
      • Einen lokalen Computer mit einem installierten VNC-Client. Der VNC-Client, den Sie verwenden, muss Verbindungen über SSH-Tunnel unterstützen:

      Schritt 1 — Installation der Desktop-Umgebung und des VNC-Servers

      Nachdem Ihr Server mit SSH verbunden ist, aktualisieren Sie Ihre Paketliste:

      Installieren Sie dann Xfce zusammen mit dem xfce4-goodies-Paket, das einige Verbesserungen für die Desktop-Umgebung enthält:

      • sudo apt install xfce4 xfce4-goodies

      Wenn diese Installation abgeschlossen ist, installieren Sie den TightVNC Server:

      • sudo apt install tightvncserver

      Führen Sie als Nächstes den Befehl vncpasswd aus, um ein Zugangspasswort für VNC festzulegen, und erstellen Sie die Dateien für die Anfangskonfiguration:

      Sie werden dazu aufgefordert, ein Passwort einzugeben und zu verifizieren, um remote auf Ihren Rechner zuzugreifen:

      Output

      You will require a password to access your desktops. Password: Verify:

      Das Passwort muss aus sechs bis acht Zeichen bestehen; Passwörter mit mehr als 8 Zeichen werden automatisch gekürzt. Wenn Sie das Passwort überprüfen, haben Sie die Option, ein Passwort für den reinen Lesezugriff zu erstellen. Dies ist jedoch nicht zwingend erforderlich.

      Wenn Sie Ihr Passwort ändern möchten oder ein Passwort für den reinen Lesezugriff hinzufügen möchten, führen Sie den Befehl vncpasswd erneut aus.

      Schritt 2 — Konfiguration des VNC-Servers

      Die Befehle, die der VNC-Server beim Starten ausführt, befinden sich in einer Konfigurationsdatei namens xstartup im Ordner .vnc unter Ihrem Stammverzeichnis. In diesem Schritt erstellen wir ein benutzerdefiniertes xstartup-Skript, das den VNC-Server anweist, sich mit dem Xfce-Desktop zu verbinden.

      Erstellen Sie eine neue xstartup-Datei und öffnen Sie sie in einem Texteditor wie nano:

      Fügen Sie der neuen Datei folgende Zeilen hinzu:

      ~/.vnc/xstartup

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

      Hinter dem sheband weist der erste Befehl in der Datei xrdb $HOME/.Xresources das GUI Framework des VNC an, die .Xresources-Datei des Serverbenutzers zu lesen. Der zweite Befehl weist den Server an, Xfce zu starten.

      Speichern und schließen Sie die Datei nach dem Hinzufügen dieser Zeilen. Wenn Sie nano verwendet haben, drücken Sie STRG+X, Y, dann die EINGABETASTE.

      Machen Sie die Datei anschließend ausführbar:

      Und starten Sie den VNC-Server mit dem Befehl vncserver:

      Dieser Befehl beinhaltet die Option -localhost, die den VNC-Server an die Loopback-Schnittstelle Ihres Servers bindet. Dadurch kann VNC nur Verbindungen zulassen, die von dem Server stammen, auf dem es installiert ist.

      Sie sehen eine Ausgabe, die dieser ähnelt:

      Output

      New 'X' desktop is your_hostname:1 Starting applications specified in /home/sammy/.vnc/xstartup Log file is /home/sammy/.vnc/your_hostname:1.log

      Hier können Sie sehen, dass der Befehl eine standardmäßige Serverinstanz auf Port 5901 startet. Dieser Port wird als Anzeige-Port bezeichnet und wird vom VCN :1 genannt.

      Schritt 3 — Sichere Verbindung mit dem VNC-Desktop

      Um sich sicher mit Ihrem Server zu verbinden, richten Sie einen SSH-Tunnel ein und weisen Ihren VNC-Client an, diesen Tunnel zu verwenden, anstatt eine direkte Verbindung herzustellen.

      Erstellen Sie auf Ihrem lokalen Computer eine SSH-Verbindung, die sicher an die localhost-Verbindung für VNC weiterleitet. Sie können dies mit folgendem ssh-Befehl über den Terminal auf Linux oder macOS durchführen:

      • ssh -L 59000:localhost:5901 -C -N -l sammy your_server_ip

      Der lokale Port kann jeder Port sein, der von einem anderen Programm oder Prozess nicht bereits blockiert wurde. Wir verwenden in diesem Beispiel jedoch 59000. Stellen Sie zudem sicher, sammy in Ihren Ubuntu-Benutzernamen und your_server_ip der IP-Adresse Ihres Servers entsprechend zu ändern.

      Wenn Sie PuTTY verwenden, um sich mit Ihrem Server zu verbinden, können Sie einen SSH-Tunnel erstellen, indem Sie mit der rechten Maustaste auf die obere Leiste des Terminalfensters und anschließend auf die Option Change Setting… (Einstellungen ändern) klicken:

      Klicken Sie mit der rechten Maustaste auf die oberen Leiste, um die Option Change Settings (Einstellungen ändern) einzublenden

      Suchen Sie den Verbindungszweig im Menübaum auf der linken Seite des Fensters PuTTY Reconfigure (PuTTY neu konfigurieren). Erweitern Sie den SSH-Zweig und klicken Sie auf Tunnels. Geben Sie auf dem Bildschirm Options controlling SSH port forwarding (Optionen für die Steuerung der SSH-Portweiterleitung) 59000 als Quell-Port und localhost:5901 als Destination an (wie in diesem Fall):

      Beispiel PuTTY SSH-Tunnelkonfiguration

      Klicken Sie anschließend auf die Schaltfläche Add (Hinzufügen) und danach auf die Schaltfläche Apply (Anwenden), um den Tunnel zu implementieren.

      Sobald der Tunnel läuft, verwenden Sie einen VCN Client, um sich mit localhost:59000 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. Sie sollte ungefähr wie folgt aussehen:

      VNC-Verbindung zum Ubuntu 20.04-Server mit der Xfce-Desktop-Umgebung

      Sie können mit dem Dateimanager auf Dateien in Ihrem Stammverzeichnis zugreifen oder von der Befehlszeile aus, wie nachstehend zu sehen ist:

      File Manager über VNC-Verbindung zu Ubuntu 20.04

      Drücken Sie STRG+C auf Ihrem lokalen Terminal, um den SSH-Tunnel zu stoppen und zu Ihrer Aufforderung zurückzukehren. Damit wird auch Ihre VNC Sitzung unterbrochen.

      Schritt 4 — VCN als Systemdienst ausführen

      Dadurch, dass der VNC-Server so eingerichtet wurde, dass er als systemd-Dienst ausgeführt wird, können Sie die systemd-Verwaltungsbefehle Start, Stop und Restart the server (Starten, Anhalten und Neustarten des Servers) nutzen. Zudem können Sie ihn so einstellen, dass er immer dann startet, wenn der Server hochgefahren wird.

      Erstellen Sie zunächst für die systemd-Einheit eine neue Datei namens /etc/system/vncserver@.service:

      • sudo nano /etc/systemd/system/vncserver@.service

      Das @-Symbol am Ende des Namens gestattet uns, ein Argument aufzunehmen, das Sie in der Dienstkonfiguration verwenden können. Sie verwenden dies, um den VCN-Anzeige-Port anzugeben, den Sie bei der Dienstverwaltung einsetzen möchten.

      Fügen Sie der Datei folgende Zeilen hinzu und stellen Sie sicher, dass der Wert für User, Group und WorkingDirectory geändert wird und der Benutzername im Wert von PIDFILE Ihrem Benutzernamen entspricht:

      /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 -localhost :%i
      ExecStop=/usr/bin/vncserver -kill :%i
      
      [Install]
      WantedBy=multi-user.target
      

      Speichern und schließen Sie die Datei.

      Machen Sie als Nächstes das System auf die neue Unit-Datei aufmerksam:

      • 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 VNC-Servers, wenn er noch läuft:

      Starten Sie ihn dann wie jeden anderen systemd-Dienst:

      • sudo systemctl start vncserver@1

      Sie können verifizieren, dass er mit diesem Befehl gestartet wurde:

      • sudo systemctl status vncserver@1

      In unserem Tutorial How To Use Systemctl to Manage Systemd Services and Units (So nutzen Sie Systemctl für die Verwaltung von Systemd-Diensten und -Units) finden Sie für weitere Informationen zu systemctl.

      Um Ihren SSH-Tunnel erneut zu verbinden, starten Sie ihn erneut:

      • ssh -L 59000: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:59000 her, um sich mit Ihrem Server zu verbinden.

      Zusammenfassung

      Jetzt läuft ein sicherer VCN Server auf Ihrem Ubuntu 20.04 Server. Jetzt können Sie Ihre Dateien, Software und Einstellungen mit einer benutzerfreundlichen grafischen Oberfläche verwalten und grafische Software wie Web-Browser per Fernzugriff ausführen.



      Source link

      So installieren und konfigurieren Sie VNC unter Ubuntu 20.04


      Einführung

      Virtual Network Computing, auch VNC genannt, ist ein Verbindungssystem, das es Ihnen ermöglicht, mithilfe Ihrer Maus und Tastatur mit einer grafischen Desktop-Umgebung auf einem entfernten Server zu interagieren. 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 dieser Kurzanleitung erfahren Sie, wie Sie einen VNC-Server mit TightVNC auf einem Ubuntu 20.04-Server einrichten und ihn sicher über einen SSH-Tunnel verbinden. Anschließend verwenden Sie ein VNC-Clientprogramm auf Ihrem lokalen Computer, um mit Ihrem Server über eine grafische Desktop-Umgebung zu interagieren.

      Voraussetzungen

      Um dieses Tutorial zu absolvieren, benötigen Sie:

      • Einen Ubuntu 20.04-Server mit einem administrativen Nicht-Root-Benutzer und eine mit UFW konfigurierte Firewall. Um dies einzurichten, folgen Sie unserem Leitfaden für die Ersteinrichtung des Servers für Ubuntu 20.04.
      • Einen lokalen Computer mit einem installierten VNC-Client. Der VNC-Client, den Sie verwenden, muss Verbindungen über SSH-Tunnel unterstützen:

      Schritt 1 — Installation der Desktop-Umgebung und des VNC-Servers

      Standardmäßig wird ein Ubuntu 20.04 Server nicht mit einer grafischen Desktop-Umgebung oder einem installierten VNC-Server geliefert. Daher beginnen Sie mit deren Installation.

      Bei der Wahl des VNC-Servers und der Desktop-Umgebung haben Sie viele Optionen, aus denen Sie auswählen können. In diesem Tutorial installieren Sie Pakete für die aktuellste Xfce-Desktop-Umgebung und das TightVNC-Paket, das im offiziellen Ubuntu Repository verfügbar ist. Sowohl Xfce als auch TightVNC sind für ihre leichte und schnelle Ausführung bekannt. Dadurch wird sichergestellt, dass die VNC-Verbindung reibungslos funktioniert und auch bei langsameren Internetverbindungen stabil bleibt.

      Sobald Ihr Server mit SSH verbunden ist, aktualisieren Sie Ihre Paketliste:

      Installieren Sie nun Xfce zusammen mit dem xfce4-goodies-Paket, das einige Verbesserungen für die Desktop-Umgebung enthält:

      • sudo apt install xfce4 xfce4-goodies

      Während der Installation werden Sie möglicherweise dazu aufgefordert, einen standardmäßigen Display-Manager für Xfce auszuwählen. Ein Display-Manager ist ein Programm, mit dem Sie sich über eine grafische Oberfläche in einer Desktop-Umgebung einloggen und Vorgaben auswählen können. Sie verwenden Xfce nur, wenn Sie sich mit einem VNC-Client verbinden. In diesen Xfce-Sitzungen sind Sie bereits als Nicht-Root-Benutzer für Ubuntu angemeldet. Für die Zwecke dieses Tutorials ist Ihre Auswahl des Display-Managers nicht relevant. Wählen Sie entweder einen aus oder drücken Sie ENTER.

      Wenn diese Installation abgeschlossen ist, installieren Sie den TightVNC Server:

      • sudo apt install tightvncserver

      Führen Sie als Nächstes den Befehl vncserver aus, um ein VNC-Zugangspasswort festzulegen, die anfänglichen Konfigurationsdateien zu erstellen und eine VNC-Serverinstanz zu starten:

      Sie werden dazu aufgefordert, ein Passwort einzugeben und zu verifizieren, um ferngesteuert auf Ihren Rechner zuzugreifen:

      Output

      You 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 VNC-Instanz nicht mit der Maus oder Tastatur steuern. Das ist eine hilfreiche Option, wenn Sie mit Ihrem VNC-Server anderen etwas zeigen möchten, ist aber nicht erforderlich.

      Der Prozess erstellt dann die notwendigen Standard-Konfigurationsdateien und Verbindungsinformationen für den Server. Zudem startet er eine Standard-Serverinstanz auf Port 5901. Dieser Port nennt sich Anzeige-Port und wird vom VNC als :1 bezeichnet. VNC kann mehrere Instanzen auf anderen Anzeige-Ports starten. :2 bezieht sich auf Port 5902, :3 auf 5903 und so weiter:

      Output

      Would 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

      Wenn Sie Ihr Passwort ändern oder ein schreibgeschütztes Passwort hinzufügen möchten, beachten Sie, dass Sie dies mit dem Befehl vncpasswd tun können:

      Das ist der Moment, ab dem der VNC-Server installiert ist und läuft. Nun konfigurieren wir ihn, um Xfce zu starten und um uns Zugriff auf den Server über eine grafische Oberfläche zu erteilen.

      Schritt 2 — Konfiguration des VNC-Servers

      Der VNC-Server muss wissen, welche Befehle er beim Start ausführen soll. VNC muss vor allem wissen, mit welcher grafischen Desktop-Umgebung er sich verbinden soll.

      Die Befehle, die der VNC-Server beim Starten ausführt, befinden sich in einer Konfigurationsdatei namens xstartup im Ordner .vnc unter Ihrem Stammverzeichnis. Das Start-Skript wurde erstellt, als Sie den vncserver im vorherigen Schritt ausgeführt haben, aber Sie erstellen Ihr eigenes, um den Xfce-Desktop zu starten.

      Da Sie die Konfiguration des VNC-Servers ändern werden, müssen Sie zunächst die VNC-Server-Instanz stoppen, die auf Port 5901 ausgeführt wird. Dazu verwenden Sie den folgenden Befehl:

      Die Ausgabe sollte wie folgt aussehen, auch wenn Sie eine andere PID sehen werden:

      Output

      Killing 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 eine neue xstartup-Datei und öffnen Sie sie in einem Texteditor wie nano:

      Fügen Sie der Datei anschließend folgende Zeilen hinzu:

      ~/.vnc/xstartup

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

      Die erste Zeile ist ein shebang. In ausführbaren Klartext-Dateien auf *nix-Plattformen weist ein shebang das System an, an welchen Interpreter die Datei zur Ausführung weitergegeben wird. In diesem Fall übergeben Sie die Datei dem Bash-Interpreter. Dies erlaubt es, jede aufeinanderfolgende Zeile als Befehl der Reihe nach auszuführen.

      Der erste Befehl in der Datei, xrdb $HOME/.Xresources weist das GUI Framework des VNC an, die .Xresources-Datei. . des Serverbenutzers zu lesen. 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. Immer, wenn Sie den VNC-Server starten oder neu starten, werden diese Befehle automatisch ausgeführt.

      Speichern und schließen Sie die Datei nach dem Hinzufügen dieser Zeilen. Wenn Sie nano verwendet haben, drücken Sie STRG+X, Y, dann ENTER.

      Um sicherzustellen, dass der VNC-Server diese neue Start-Datei ordnungsgemäß verwenden kann, müssen Sie sie ausführbar machen:

      Starten Sie den VNC-Server anschließend neu:

      Achten Sie dieses Mal darauf, dass dieser Befehl die Option -localhost beinhaltet, die den VNC-Server an die Loopback-Schnittstelle Ihres Servers bindet. Dadurch kann VNC nur Verbindungen zulassen, die von dem Server stammen, auf dem es installiert ist.

      Im nächsten Schritt richten Sie einen SSH-Tunnel zwischen Ihrem lokalen Rechner und Ihrem Server ein und gaukeln VNC damit im Grunde vor, dass die Verbindung von Ihrem lokalen Rechner von Ihrem Server stammt. Diese Strategie fügt eine zusätzliche Sicherheitsebene um VNC herum hinzu, da die einzigen Benutzer, die darauf zugreifen können, bereits SSH-Zugriff auf Ihren Server haben.

      Sie sehen eine Ausgabe, die dieser ähnelt:

      Output

      New 'X' desktop is your_hostname:1 Starting applications specified in /home/sammy/.vnc/xstartup Log file is /home/sammy/.vnc/your_hostname:1.log

      Da die Konfiguration nun betriebsbereit ist, können Sie jetzt die Verbindung von Ihrem lokalen Rechner zum VNC-Server herstellen.

      Schritt 3 — Eine sichere Verbindung mit dem VNC-Desktop

      VNC selbst verwendet keine sicheren Protokolle beim Verbinden. Um sich sicher mit Ihrem Server zu verbinden, richten Sie einen SSH-Tunnel ein und weisen Ihren VNC-Client an, diesen Tunnel zu verwenden, anstatt eine direkte Verbindung herzustellen.

      Erstellen Sie auf Ihrem lokalen Computer eine SSH-Verbindung, die sicher an die localhost-Verbindung für VNC weiterleitet. Sie können dies mit folgendem ssh-Befehl über den Terminal auf Linux oder macOS durchführen:

      • ssh -L 59000:localhost:5901 -C -N -l sammy your_server_ip

      Im Folgenden wird die Bedeutung dieses ssh-Befehls erklärt:

      • -L 59000:localhost:5901: Der -L-Schalter gibt an, dass der angegebene Port auf dem lokalen Computer (59000) an den angegebenen Host und den Port auf dem Zielserver weitergeleitet werden soll (localhost:5901, bedeutet Port 5901 auf dem Zielserver, definiert als your_server_ip). Beachten Sie, dass der von Ihnen angegebene lokale Port etwas willkürlich ist. Solange der Port nicht bereits in einen anderen Dienst eingebunden ist, können Sie ihn als Weiterleitungsport für Ihren Tunnel verwenden.
      • -C: Dieses Flag ermöglicht eine Komprimierung, mit der die Ressourcennutzung minimiert und die Prozesse beschleunigt werden können.
      • -N: Diese Option weist ssh an, dass Sie keine Remote-Befehle ausführen möchten. Diese Einstellung ist hilfreich, wenn Sie Ports lediglich weiterleiten möchten.
      • -l sammy your_server_ip: Mit dem -l-Schalter legen Sie den Benutzer fest, mit dem Sie sich anmelden wollen, sobald Sie sich mit dem Server verbinden. Stellen Sie sicher, dass Sie sammy und your_server_ip durch den Namen Ihres Nicht-root-Benutzers und der IP-Adresse Ihres Servers ersetzen.

      Hinweis: Dieser Befehl richtet einen SSH-Tunnel ein, der Informationen von Port 5901 auf Ihrem VNC-Server an Port 59000 auf Ihrem lokalen Rechner über Port 22 auf jedem Rechner (den Standardport für SSH) weiterleitet. Wenn Sie dem Leitfaden für Ersteinrichtung eines Servers für Ubuntu 20.04 gefolgt sind, der als Voraussetzung gilt, haben Sie eine UFW-Regel hinzugefügt, die Verbindungen zu Ihrem Server über OpenSSH erlaubt.

      Dies ist sicherer als einfach die Firewall Ihres Servers für Verbindungen zu Port 5901 zu öffnen. Denn dadurch würde jedermann über VNC auf Ihren Server zugreifen können. Durch das Verbinden eines SSH-Tunnels begrenzen Sie den VNC-Zugriff auf Computer, die bereits SSH-Zugriff auf den Server haben.

      Wenn Sie PuTTY verwenden, um sich mit Ihrem Server zu verbinden, können Sie einen SSH-Tunnel erstellen, indem Sie mit der rechten Maustaste auf die obere Leiste des Terminalfensters und anschließend auf die Option Change Setting… (Einstellungen ändern) klicken:

      Klicken Sie mit der rechten Maustaste auf die obere Leiste, um die Option Change Settings (Einstellungen ändern) einzublenden

      Suchen Sie den Verbindungszweig im Menübaum auf der linken Seite des Fensters PuTTY Reconfigure (PuTTY neu konfigurieren). Erweitern Sie den SSH-Zweig und klicken Sie auf Tunnels. Geben Sie auf dem Bildschirm Options controlling SSH port forwarding (Optionen für die Steuerung der SSH-Portweiterleitung) 59000 als Quell-Port und localhost:5901 als Destination an (wie in diesem Fall):

      Beispiel PuTTY SSH-Tunnelkonfiguration

      Klicken Sie anschließend auf die Schaltfläche Add (Hinzufügen) und dann auf die Schaltfläche Apply (Anwenden), um den Tunnel zu implementieren.

      Sobald der Tunnel läuft, verwenden Sie einen VNC Client, um sich mit localhost:59000 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. Sie sollte ungefähr wie folgt aussehen:

      VNC-Verbindung zum Ubuntu 20.04-Server mit der Xfce-Desktop-Umgebung

      Sie können mit dem Dateimanager auf Dateien in Ihrem Stammverzeichnis zugreifen oder von der Befehlszeile aus, wie nachstehend zu sehen ist:

      File Manager über VNC-Verbindung zu Ubuntu 20.04

      Drücken Sie CTRL+C auf Ihrem lokalen Terminal, um den SSH-Tunnel zu stoppen und zu Ihrer Aufforderung zurückzukehren. Damit wird auch Ihre VNC-Sitzung unterbrochen.

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

      Schritt 4 — VNC als Systemdienst ausführen

      Da der VNC-Server für die Ausführung als systemd-Dienst eingerichtet wurde, können Sie ihn wie jeden anderen Dienst nach Bedarf starten, anhalten und neu starten. Sie können auch die Verwaltungsbefehle von systemd nutzen, um sicherzustellen, dass VNC beim Hochfahren Ihres Servers startet.

      Erstellen Sie zunächst eine Unit-Datei namens /etc/systemd/system/vncserver@.service:

      • sudo nano /etc/systemd/system/vncserver@.service

      Das @-Symbol am Ende des Namens gestattet uns, ein Argument aufzunehmen, das Sie in der Dienstkonfiguration verwenden können. Sie verwenden dies, um den VNC-Anzeige-Port anzugeben, den Sie 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 -localhost :%i
      ExecStop=/usr/bin/vncserver -kill :%i
      
      [Install]
      WantedBy=multi-user.target
      

      Der Befehl ExecStartPre stoppt VNC, wenn er bereits läuft. Der ExecStart Befehl startet VNC 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. Beachten Sie auch, dass der Befehl ExecStart wieder die Option -localhost beinhaltet.

      Speichern und schließen Sie die Datei.

      Machen Sie als Nächstes das System auf die neue Unit-Datei aufmerksam:

      • sudo systemctl daemon-reload

      Aktivieren Sie die Unit-Datei:

      • sudo systemctl enable vncserver@1.service

      Die 1 nach dem @-Zeichen gibt an, über welche 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 VNC-Servers, wenn er noch läuft:

      Starten Sie ihn dann wie jeden anderen systemd-Dienst:

      • 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; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-05-07 17:23:50 UTC; 6s ago Process: 39768 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (code=exited, status=2) Process: 39772 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :1 (code=exited, status=0/SUCCESS) Main PID: 39795 (Xtightvnc) ...

      Ihr VNC-Server ist jetzt betriebsbereit, sobald Ihr Server hochfährt, und Sie können ihn mit systemctl-Befehlen wie jeden anderen systemd-Dienst verwalten.

      Es gibt jedoch keinen Unterschied auf der Client-Seite. Um Ihren SSH-Tunnel erneut zu verbinden, starten Sie ihn erneut:

      • ssh -L 59000:localhost:5901 -C -N -l sammy your_server_ip

      Stellen Sie dann mit Ihrer VNC-Client-Software eine neue Verbindung zu localhost:59000 her, um sich mit Ihrem Server zu verbinden.

      Zusammenfassung

      Jetzt läuft ein sicherer VNC-Server auf Ihrem Ubuntu 20.04 Server. Jetzt können Sie Ihre Dateien, Software und Einstellungen mit einer benutzerfreundlichen grafischen Oberfläche verwalten und grafische Software wie Web-Browser per Fernzugriff ausführen.



      Source link

      Comment installer et configurer VNC sur Ubuntu 20.04 [Démarrage rapide]


      Introduction

      Le Virtual Network Computing, ou VNC, est un système de connexion qui vous permet d’utiliser votre clavier et votre souris pour interagir avec un environnement de bureau graphique sur un serveur distant. Il facilite la gestion des fichiers, des logiciels et des paramètres sur un serveur distant pour les utilisateurs qui ne sont pas encore à l’aise avec la ligne de commande.

      Avec ce guide de démarrage rapide, vous apprendrez à configurer un serveur VNC avec TightVNC sur un serveur Ubuntu 20.04 et à vous y connecter en toute sécurité via un tunnel SSH. Ensuite, vous utiliserez un programme client VNC sur votre ordinateur local pour interagir avec votre serveur via un environnement de bureau graphique.

      Conditions préalables

      Pour suivre ce tutoriel, vous aurez besoin des éléments suivants :

      • Un serveur Ubuntu 20.04 avec un utilisateur administratif non root et un pare-feu configuré avec UFW. Pour le mettre en place, suivez notre guide de configuration initiale du serveur pour Ubuntu 20.04.
      • Un ordinateur local avec un client VNC installé. Le client VNC que vous utilisez doit prendre en charge les connexions sur les tunnels SSH :

      Étape 1 – Installation de l’environnement de bureau et du serveur VNC

      Une fois connecté à votre serveur avec SSH, mettez à jour votre liste de packages :

      Ensuite, installez Xfce avec le package xfce4-goodies, qui contient quelques améliorations pour l’environnement de bureau :

      • sudo apt install xfce4 xfce4-goodies

      Une fois cette installation terminée, installez le serveur TightVNC :

      • sudo apt install tightvncserver

      Ensuite, exécutez la commande vncpasswd pour définir un mot de passe d’accès VNC et créer les fichiers de configuration initiale :

      Vous serez invité à saisir et à vérifier un mot de passe pour accéder à votre machine à distance :

      Output

      You will require a password to access your desktops. Password: Verify:

      Le mot de passe doit comporter entre six et huit caractères. Les mots de passe de plus de 8 caractères seront automatiquement tronqués. Une fois que vous aurez vérifié le mot de passe, vous pourrez créer un mot de passe en lecture seule, mais ce n’est pas obligatoire.

      Si un jour, vous souhaitez modifier votre mot de passe ou ajouter un mot de passe en lecture seule, réexécutez la commande vncpasswd.

      Étape 2 – Configuration du serveur VNC

      Les commandes que le serveur VNC exécute au démarrage se trouvent dans un fichier de configuration appelé xstartup, situé dans le dossier .vnc, sous votre répertoire personnel. Au cours de cette étape, nous allons créer un script xstartup personnalisé qui demandera au serveur VNC de se connecter au bureau Xfce.

      Créez un nouveau fichier xstartup et ouvrez-le dans un éditeur de texte, comme nano :

      Ajoutez les lignes suivantes au nouveau fichier :

      ~/.vnc/xstartup

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

      Après le shebang, la première commande du fichier, xrdb $HOME/. Xresources​​​, indique au framework de l’interface graphique de VNC de lire le fichier . Fichier Xresources. La deuxième commande indique au serveur de lancer Xfce.

      Enregistrez et fermez le fichier après avoir ajouté ces lignes. Si vous avez utilisé nano, faites-le en appuyant sur CTRL+X, Y, puis ENTER.

      Ensuite, rendez le fichier exécutable :

      Puis démarrez le serveur VNC avec la commande vncserver :

      Notez que cette fois, la commande inclut l’option -localhost, qui lie le serveur VNC à l’interface de bouclage de votre serveur. Cela forcera VNC à autoriser uniquement les connexions qui proviennent du serveur sur lequel il est installé.

      Vous verrez une sortie semblable à celle-ci :

      Output

      New 'X' desktop is your_hostname:1 Starting applications specified in /home/sammy/.vnc/xstartup Log file is /home/sammy/.vnc/your_hostname:1.log

      Ici, vous pouvez voir que la commande lance une instance de serveur par défaut sur le port 5901. Ce port est un port d’affichage et VNC le désigne par :1 :

      Étape 3 – Connexion sécurisée au bureau VNC

      Pour vous connecter en toute sécurité à votre serveur, vous allez établir un tunnel SSH puis dire à votre client VNC de se connecter en utilisant ce tunnel plutôt que d’établir une connexion directe.

      Créez une connexion SSH sur votre ordinateur local qui transfère en toute sécurité vers la connexion localhost pour VNC. Vous pouvez le faire via le terminal sous Linux ou macOS avec la commande ssh suivante :

      • ssh -L 59000:localhost:5901 -C -N -l sammy your_server_ip

      Pour le port local, vous pouvez choisir n’importe quel port qui n’est pas déjà bloqué par un autre programme ou processus, bien que nous utilisions  59000 dans cet exemple. Veillez également à bien remplacer  sammy par le nom d’utilisateur de votre utilisateur Ubuntu et your_server_ip par l’adresse IP de votre serveur.

      Si vous vous connectez à votre serveur en utilisant PuTTY, vous pouvez créer un tunnel SSH en cliquant droit sur la barre supérieure de la fenêtre du terminal, puis en cliquant sur l’option Change Settings… :

      Cliquez droit sur la barre supérieure pour afficher l'option Modifier les paramètres

      Recherchez la branche Connection dans le menu arborescent, à gauche de la fenêtre de Reconfiguration de PuTTY. Développez la branche SSH et cliquez sur Tunnels. Sur l’écran Options controlling SSH port forwarding​​​​​​, saisissez 59000 sous Source Port ​et localhost:5901 sous Destination, de la manière suivante :

      Exemple de configuration de tunnel SSH de PuTTY

      Cliquez ensuite sur le bouton Add, puis sur le bouton Apply pour implémenter le tunnel.

      Une fois le tunnel en cours d’exécution, utilisez un client VNC pour vous connecter à localhost:59000. Vous serez invité à vous authentifier à l’aide du mot de passe défini au cours de l’étape 1.

      Une fois connecté, vous verrez le bureau Xfce par défaut. Il devrait ressembler à cela :

      Connexion VNC au serveur Ubuntu 20.04 avec l'environnement de bureau Xfce

      Vous pouvez accéder aux fichiers dans votre répertoire de base via le gestionnaire de fichiers ou depuis la ligne de commande, comme illustré ici :

      Gestionnaire de fichiers via une connexion VNC à Ubuntu 20.04

      Appuyez sur CTRL+C dans votre terminal local pour arrêter le tunnel SSH et revenir à votre invite. Cela déconnectera également votre session VNC.

      Étape 4 – Exécution de VNC en tant que service système

      En configurant le serveur VNC pour qu’il s’exécute en tant que service systemd, vous pouvez utiliser les commandes de gestion de systemd pour démarrer, arrêter et redémarrer le serveur, tout comme activer son lancement à chaque démarrage du serveur.

      Créez tout d’abord un nouveau fichier d’unité systemd que vous nommerez /etc/systemd/system/vncserver@.service:

      • sudo nano /etc/systemd/system/vncserver@.service

      Le symbole @ à la fin du nom nous permettra de transmettre un argument que vous pourrez utiliser dans la configuration du service. Vous l’utiliserez pour spécifier le port d’affichage VNC que vous souhaitez utiliser lorsque vous gérez le service.

      Ajoutez les lignes suivantes au fichier, en veillant à modifier la valeur de User, Group, WorkingDirectory et saisir votre nom d’utilisateur dans la valeur de PIDFILE :

      /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 -localhost :%i
      ExecStop=/usr/bin/vncserver -kill :%i
      
      [Install]
      WantedBy=multi-user.target
      

      Enregistrez et fermez le fichier.

      Ensuite, informez le système du nouveau fichier d’unité :

      • sudo systemctl daemon-reload

      Activez le fichier d’unité :

      • sudo systemctl enable vncserver@1.service

      Le 1 suivant le signe @ indique le numéro d’affichage sur lequel le service doit apparaître, dans ce cas la valeur par défaut :1, comme mentionné à l’étape 2.

      Arrêtez l’instance actuelle du serveur VNC si elle est toujours en cours d’exécution.

      Puis, démarrez-le comme vous le feriez pour n’importe quel autre service systemd :

      • sudo systemctl start vncserver@1

      Vous pouvez vérifier qu’il a démarré avec cette commande :

      • sudo systemctl status vncserver@1

      Consultez notre tutoriel Comment utiliser Systemctl pour gérer les services et unités Systemd pour plus d’informations sur systemctl.

      Pour vous reconnecter, redémarrez votre tunnel SSH :

      • ssh -L 59000:127.0.0.1:5901 -C -N -l sammy your_server_ip

      Puis, établissez une nouvelle connexion à localhost:59000 à l’aide de votre logiciel client VNC pour vous connecter à votre serveur.

      Conclusion

      Vous disposez maintenant d’un serveur VNC sécurisé fonctionnant sur votre serveur Ubuntu 20.04. Vous pourrez désormais gérer vos fichiers, vos logiciels et vos paramètres grâce à une interface graphique intuitive, ainsi qu’exécuter des logiciels graphiques à distance comme des navigateurs Web.



      Source link