Skip to content

Archives

  • Januar 2022
  • Dezember 2021
  • November 2021
  • Oktober 2021
  • September 2021

Categories

  • Keine Kategorien
Trend RepositoryArticles and guides
Articles

Remote-GUI-Zugriff auf einen Linux-Computer mit Tightvnc mit systemd

On Januar 13, 2022 by admin

Dies ist eine Anleitung zur Installation von TightVNC auf dem Raspberry Pi. Die neueste Version von Raspbian enthält nun RealVNC, ein alternatives Remote-Desktop-Tool. Wenn Sie es vorziehen, RealVNC zu verwenden, dann ist es leicht durch das raspi-config-Tool aktiviert, diese Anleitung wird für diejenigen nützlich sein, die über die Erstellung anderer Anwendungen zu verstehen, um beim Start durch systemd laufen.

Die Kommandozeile ist eine großartige Möglichkeit, einen entfernten Linux-Computer zu verwalten, wenn es Ihnen nichts ausmacht, Befehle einzutippen, aber manchmal müssen Sie in der Lage sein, eine grafische Benutzeroberfläche zu sehen. Ohne ein sehr langes Kabel ist eine der besten Möglichkeiten, dies zu tun, die Verwendung des VNC-Protokolls (Virtual Network Computing).

  • TightVNC vs. Real VNC
  • Installation eines Startskripts mit Systemd
  • Auswahl von TightVNC
  • Client-Server-Modell
  • Installieren Sie die TightVNC-Server-Software
  • Starten Sie den Server und konfigurieren Sie ein Passwort
  • Hinzufügen von Tightvnc zum systemd-Startup
  • Installation des Tightvnc-Viewers (VNC-Client) auf einem Linux-Computer
  • Installation der Tightvnc-Ansicht auf einem Windows-Computer
  • Sichern von TightVNC
  • Starten Sie Ihren Fenstermanager

TightVNC vs. Real VNC

Der TightVNC-Server erstellt ein anderes virtuelles Fenster, das auf einer anderen Maschine mit dem TightVNC-Client repliziert wird. Dies unterscheidet sich von RealVNC, das normalerweise den Standardbildschirm wiedergibt.

Wenn die meisten Leute an ein Remote-Desktop-Tool denken, dann denken sie normalerweise an die Arbeitsweise von RealVNC. In diesem Fall, wenn Sie die Maus bewegen oder eine Anwendung starten, wird die gleiche Ausgabe auf einem physisch angeschlossenen Bildschirm (normalerweise HDMI) und auf einem Remote-Client über das Netzwerk angezeigt.

TightVNC ist nützlich, wenn Sie etwas anderes als das, was auf dem Hauptbildschirm ist, ausführen möchten. Zum Beispiel könnte man es verwenden, um eine Statusanzeige auf dem Hauptbildschirm (über HDMI) mit einer anderen Anzeige für die Konfiguration zu haben, die auf einem Laptop angezeigt wird.

Ein weiterer Vorteil von TightVNC ist, dass es eine kostenlose Open-Source-Software ist. Als solche hat sie keine Nutzungsbeschränkungen und Sie können den Quellcode einsehen und verändern. Real VNC ist eine kommerzielle Version von VNC und muss lizenziert werden. Real VNC ist für den persönlichen Gebrauch auf dem Raspberry Pi kostenlos, hat aber Einschränkungen, wenn Sie andere Dinge damit machen wollen, die eine kommerzielle Lizenz erfordern können. Dazu gehört auch das Ausführen des Raspbian-Desktop-Images auf einem PC, da dieses die kommerzielle Software nicht enthält.

Installation eines Startskripts mit Systemd

Die folgenden Anweisungen beschreiben, wie man dies auf dem Raspberry Pi (Debian-basierte Distribution) konfiguriert. Sie sollte für jede andere Debian-basierte Distribution (z.B. Ubuntu), die Systemd-Startdateien verwendet, ähnlich sein. Einige andere Distributionen verwenden andere Software-Installationstools und möglicherweise andere Init-Setup-Tools.

Wenn diese Anleitung in Kombination mit der Anleitung zum Betrieb des Raspberry Pi im Headless-Modus unter Debian Linux verwendet wird, kann sie dazu verwendet werden, einen Raspberry Pi für den Fernzugriff einzurichten, ohne ihn jemals an einen Monitor anschließen zu müssen.

Auswahl von TightVNC

Es gibt mehrere Softwareprojekte, die VNC unterstützen. Ich habe mich für TightVNC entschieden, weil es kostenlose Open-Source-Software (GPL2) ist, eine Komprimierung bietet, die es ermöglicht, über ein langsames Netzwerk (Internet) zu arbeiten, und in den Software-Repositories leicht verfügbar ist.

Client-Server-Modell

VNC folgt dem traditionellen Client-Server-Modell. Die Server-Software läuft auf dem Host, auf den zugegriffen werden soll, und die Client-Software läuft auf dem lokalen Rechner, der den Host steuern möchte. Server und Client müssen nicht identisch sein (z.B. kann der Client RealVNC sein, während der Server TightVNC ist), aber einige Funktionen funktionieren nur, wenn derselbe Client und Server verwendet werden.

Installieren Sie die TightVNC-Server-Software

Erst aktualisieren Sie die Software-Repository-Informationen mit
sudo apt update
Dies ist besonders wichtig, wenn Sie das Betriebssystem gerade erst installiert haben, da die Repository-Informationen unvollständig sein können.

Installieren Sie die Serversoftware aus den Repositories:
sudo apt install tightvncserver

Starten Sie den Server und konfigurieren Sie ein Passwort

Beim ersten Start des Servers werden Sie aufgefordert, ein Passwort festzulegen. Dies ist das Kennwort, das Sie verwenden, wenn Sie eine Remote-Verbindung herstellen.

/usr/bin/tightvncserver

Es besteht keine Notwendigkeit, ein Kennwort nur für die Ansicht zu erstellen, es sei denn, Sie haben einen speziellen Bedarf.

Wenn der Server startet, wird Ihnen mitgeteilt, welcher virtuelle Desktop eingerichtet wurde. In diesem Fall:
New 'X' desktop is raspberrypi:1
sagt, dass es sich um den virtuellen Desktop 1 handelt. Sie würden sich mit diesem verbinden, indem Sie :1 am Ende der IP-Adresse im Client verwenden. Dies ist derjenige, den wir später zum automatischen Start einrichten werden.

Sie können mehrere Instanzen ausführen. Jedes Mal, wenn Sie tightvncserver starten, wird es den nächsten verfügbaren Desktop verwenden, aber in den meisten Fällen werden Sie nur eine benötigen.

Hinzufügen von Tightvnc zum systemd-Startup

Um Tightvnc automatisch starten zu lassen, müssen wir eine neue Startdatei erstellen, die im Verzeichnis /etc/systemd/system/ gespeichert werden muss und mit der Endung „.service“ endet. Ich habe sie tightvncserver.service genannt. Diese muss als root-Benutzer erstellt werden, also mit sudo
sudo nano /etc/systemd/system/tightvncserver.service

  1. Description=TightVNC remote desktop server
  2. After=sshd.service
  3.  
  4. Type=dbus
  5. ExecStart=/usr/bin/tightvncserver :1
  6. User=pi
  7. Type=forking
  8.  
  9. WantedBy=multi-user.target

Möglicherweise müssen Sie den Benutzernamen in Zeile 8 ändern. Derzeit ist er auf pi eingestellt, den Standardbenutzernamen des Raspberry Pi Raspbian-Images. Setzen Sie diesen auf einen beliebigen Benutzernamen, mit dem Sie sich bei TightVNC anmelden möchten. Setzen Sie nicht root als Benutzer ein.

Ändern Sie die Datei so, dass sie root gehört
sudo chown root:root /etc/systemd/system/tightvncserver.service

Machen Sie die Datei ausführbar, indem Sie
sudo chmod 755 /etc/systemd/system/tightvncserver.service

Es ist eine gute Idee, das Skript an diesem Punkt zu testen, anstatt bis nach einem Neustart zu warten. Dies geschieht mit:
sudo systemctl start tightvncserver.service
Sorgen Sie sich nicht, wenn Sie die folgende Fehlermeldung erhalten, denn das liegt daran, dass Sie tightvnc bereits gestartet haben
A VNC server is already running as :1

Aktivieren Sie den Start beim Booten mit
sudo systemctl enable tightvncserver.service

TightVNC wird nun beim Start gestartet. Ich empfehle Ihnen, an dieser Stelle einen Neustart durchzuführen, um sicherzustellen, dass es funktioniert, aber Sie können den Dienst stattdessen auch einfach mit dem Befehl systemctl stoppen und starten.

Bitte beachten Sie, dass dies nur für den Betrieb einer Instanz von TightVNC auf dem Computer gedacht ist. Wenn Sie in der Lage sein wollen, bestimmte Instanzen von TightVNC zu starten und zu stoppen, müssen Sie das Startskript entsprechend anpassen.

Installation des Tightvnc-Viewers (VNC-Client) auf einem Linux-Computer

Auf einem Linux-Computer können Sie den Viewer mit
sudo apt install xtightvncviewer
oder, falls dieser nicht in den Repositories enthalten ist, wie folgt installieren:
sudo apt-get install ssvnc
Dies funktioniert nur mit Debian / Ubuntu-basierten Distributionen, für andere Distributionen verwenden Sie den normalen Paketmanager.

Bitte beachten Sie, dass ssvnc – die Version, die ich auf meinem Kubuntu-Computer installiert habe – auf tightvnc basiert, aber auch die Möglichkeit bietet, das ssh-Tunneling (siehe später) über die GUI zu konfigurieren.

Anmelden mit
xtightvncviewer 192.168.1.6:1
(ggf. durch die eigene IP-Adresse ersetzen)

Installation der Tightvnc-Ansicht auf einem Windows-Computer

Zugriff von Windows oder mit dem Java-Client, der von TightVNC.com

Sichern von TightVNC

TightVNC erlaubt jedem, der das Passwort kennt, sich als der Benutzer anzumelden, unter dem es läuft. Außerdem geschieht dies ohne Verschlüsselung, so dass jeder die Sitzung ausspähen kann. Glücklicherweise gibt es eine sichere Lösung, die darin besteht, die Verbindung über eine ssh-Anmeldung (Secure Shell) zu tunneln.

Der erste Schritt besteht darin, Tightvnc nur auf den lokalen Computer zu beschränken. Dies geschieht durch Hinzufügen der Option -localhost beim Starten des tightvncserver. Dazu editieren Sie die Zeile 7 in der Datei /etc/systemd/system/tightvncserver.service wie folgt:>

ExecStart=/usr/bin/tightvncserver -localhost :1

Dann starten Sie den Server neu.

Um sich mit ssh anzumelden, loggen Sie sich zuerst mit ssh auf dem Host-Computer ein
ssh [email protected] -L 5901:localhost:5901

Die Option -L erstellt den Tunnel vom aktuellen Computer (Standard) Port 5901 zum Host-Computer (als localhost) Port 5901. Port 5901 ist der Standardport für Display 1, 5902 für Display 2 usw.

Um sich mit tightvnc zu verbinden, verwenden Sie nun den Befehl
xtightvncviewer 127.0.0.1:1
Beachten Sie, dass Ihr vorheriges Terminal nun auf dem Raspberry Pi angemeldet ist, so dass Sie ein neues Terminal oder einen neuen Tab starten müssen, um den Viewer auszuführen.

Wenn Sie Windows verwenden, kann der ssh-Tunnel von PuTTY aus erstellt werden

Verbinden Sie sich dann mit dem vnc-Client über 127.0.0.1:1.

Sie können nun die GUI verwenden, um Anwendungen auf dem Raspberry Pi auszuführen, ohne einen Monitor oder eine Tastatur zu benötigen. Wenn Sie auf Ihrem Router eine Portweiterleitung eingerichtet haben, können Sie dies über das Internet tun.

Starten Sie Ihren Fenstermanager

Die obigen Anweisungen sind ausreichend für den Raspberry Pi mit Raspbian (Debian). Auf anderen Systemen müssen Sie möglicherweise eine weitere Konfigurationsänderung vornehmen, um Ihren normalen Fenstermanager / Anwendungsstarter zu starten. Wenn Sie beim Herstellen der Verbindung einen leeren Bildschirm erhalten, bearbeiten Sie die Datei ~/.vnc/xstartup und ersetzen Sie die Zeile /etc/X11/Xsession durch eine der folgenden Zeilen:

exec ck-launch-session startlxde#for an lxde sessionexec ck-launch-session gnome-session#for a gnome-sessionexec ck-launch-session openbox-session#for an openbox desktopexec ck-launch-session startxfce4#for an xfce desktopexec ck-launch-session icewm#for an icewm desktopexec ck-launch-session startkde#for a kde desktop

Bei Ubuntu würden Sie beispielsweise den Eintrag für gnome verwenden, bei xubuntu xfce und bei kubuntu kde. Der Raspberry Pi verwendet lxde, aber das wird auf dem Raspberry Pi automatisch gestartet, so dass man es nicht zur xstartup-Datei hinzufügen muss.

Schreibe einen Kommentar Antworten abbrechen

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

Archive

  • Januar 2022
  • Dezember 2021
  • November 2021
  • Oktober 2021
  • September 2021

Meta

  • Anmelden
  • Feed der Einträge
  • Kommentare-Feed
  • WordPress.org
  • DeutschDeutsch
  • NederlandsNederlands
  • SvenskaSvenska
  • DanskDansk
  • EspañolEspañol
  • FrançaisFrançais
  • PortuguêsPortuguês
  • ItalianoItaliano
  • RomânăRomână
  • PolskiPolski
  • ČeštinaČeština
  • MagyarMagyar
  • SuomiSuomi
  • 日本語日本語

Copyright Trend Repository 2022 | Theme by ThemeinProgress | Proudly powered by WordPress