VNC ist eine Desktop-Sharing-Anwendung (Virtual Network Computing), um den Desktop eines (entfernten oder lokalen) Computers über eine Netzwerkverbindung zu verbinden und zu steuern.
Auf Linux-Systemen erlauben viele VNC-Serveranwendungen jedoch nur die Verbindung zu einem virtuellen Desktop und nicht zum tatsächlichen. Dieses Howto bietet Ihnen eine Lösung, um sich über den TigerVNC-Server mit der aktuell aktiven Sitzung auf Ihrem Linux-Desktop zu verbinden.
Anforderungen
- Eine voll funktionsfähige Linux-Desktop-Umgebung
- Root-Privileg (zur Installation des TigerVNC-Servers)
- Grundkenntnisse der Linux-Shell
Um die neuesten Pakete zu erhalten, möchten Sie vielleicht aktualisieren.
[email protected]:~$ sudo apt-get update
Dieses Howto wurde auf Debian/GNU Linux 9.5 (stretch) und Ubuntu 18.04
getestetTigerVNC installieren
Zuerst müssen Sie den TigerVNC-Server installieren.
[email protected]:~$ sudo apt-get install tigervnc-scraping-server
Beachten Sie, dass es auf den meisten Debian-basierten Systemen ein kleines Paket namens tigervnc-scraping-server gibt, das Sie installieren müssen. Sie müssen den TigerVNC-Hauptserver (Paketname:tigervnc-standalone-server) nicht installieren, um die Funktionalität zum Verbinden mit der laufenden Desktop-Sitzung zu haben, nur wenn Sie es vorziehen, sich auch mit einem virtuellen Desktop zu verbinden.
Der TigerVNC-Server stellt eine kleinere Anwendung (x0vncserver) bereit, um Zugriff auf die aktive Sitzung zu gewähren.
Erstellen Sie dann ein .vnc-Verzeichnis in Ihrem Home:
[E-Mail-geschützt]:~$ mkdir -p ~/.vnc
Erstellen Sie ein Passwort für Ihre vnc-Sitzung:
[email protected]:~$ vncpasswd
Passwort:
Bestätigen:
Möchten Sie ein Nur-Lese-Passwort eingeben (j/n)? n
Starten des VNC-Servers
Eine kurze Beschreibung des x0vncservers:
x0tigervncserver ist ein TigerVNC-Server, der jedes X-Display per Fernzugriff über VNC, TigerVNC oder kompatible Viewer zugänglich macht. Im Gegensatz zu Xvnc(1) erstellt es keine virtuelle Anzeige. Stattdessen teilt es sich einfach einen bestehenden X-Server (normalerweise der, der mit dem physischen Bildschirm verbunden ist).
Nachdem Sie den TigerVNC-Server erfolgreich auf Ihrem Computer installiert und mit dem Befehl vncpasswd ein Passwort erstellt haben, können wir damit beginnen, unseren vnc-Server zu starten. Stellen Sie sicher, dass Sie sich in der aktiven Sitzung befinden, und schreiben Sie (als Benutzer):
[email protected]:~$ x0vncserver -passwordfile ~/.vnc/passwd -display :0
Mi Oct 10 22:17:16 2018
Geometry:Desktop-Geometrie ist festgelegt bis 1920x1080+0+0
Main:XTest-Erweiterung vorhanden - Version 2.2
Main:Lauschen auf Port 5900
Die Option -Passwortdatei ~/.vnc/passwd liest die zuvor mit dem vncpasswd erstellte Passwortdatei Befehl. Die zweite Option -display :0 bedeutet, dass Sie sich mit der Sitzung auf dem Display :0 verbinden möchten, was normalerweise die aktive Sitzung ist.
Jetzt können Sie mit jeder VNC-Viewer-Anwendung über den Standard-VNC-Port 5900 auf Ihren eigentlichen Desktop zugreifen.
Sie können diesen Vorgang jederzeit stoppen, indem Sie Strg-c drücken.
Wenn Sie es im Hintergrund laufen lassen möchten, geben Sie Folgendes ein:
[email protected]:~$ x0vncserver -passwordfile ~/.vnc/passwd -display :0>/dev/null 2>&1 &
Jetzt werden alle ausgegebenen Standardausgaben und Fehler nach /dev/null umgeleitet und mit dem &am Ende im Hintergrund ausgeführt. Sie können den vnc-Server jedoch nicht mehr durch Drücken von Strg-c stoppen, stattdessen müssen Sie seine Prozess-ID beenden (siehe Abschnitt "den vnc-Server stoppen").
Weitere Optionen und Syntax finden Sie im x0vncserver-Handbuch.
Beenden des VNC-Servers
Wenn Ihr VNC-Server im Hintergrund läuft, müssen Sie die Prozess-ID kennen, um ihn zu stoppen.
[email protected]:~$ ps -fu user | grep [x]0vncserver
user 1328 1 0 23:11 pts/2 00:00:00 /usr/bin/x0vncserver -display :0 -passwordfile /home/user/.vnc/passwd -rfbport 5900Die Ausgabe wird so aussehen, beachten Sie also die PID 1328. Um den vnc-Server zu stoppen, müssen wir diesen Prozess "beenden".
[email protected]:~$ kill -9 1328Die Option -9 für den Kill-Befehl sendet das KILL-Signal an die Prozess-ID, um sicherzustellen, dass er stoppt.
Skript zum Ausführen des VNC-Servers
Es gibt ein Skript zum Starten und Stoppen der x0vncserver-Anwendung auf GitHub. Zu Testzwecken laden Sie auch das psmisc-Paket herunter:
[email protected]:~$ sudo apt-get install git psmiscLaden Sie dann das startvnc-Skript mit dem git-Befehl herunter:
[email protected]:~$ git clone https://github.com/sebestyenistvan/runvncserver
Cloning into 'runvncserver'...
remote:Enumerating objects:77, done.
remote:Objekte zählen:100 % (77/77), fertig.
remote:Objekte komprimieren:100 % (57/57), fertig.
remote:Gesamt 77 (Delta 25), wiederverwendet 60 (Delta 18), pack-reused 0
Objekte entpacken:100% (77/77), fertig.Ihre Ausgabe sieht in etwa so aus wie oben.
Kopieren Sie das startvnc-Skript aus dem Verzeichnis „runvncserver“ in Ihr Zuhause:
[email protected]:~$ cp ~/runvncserver/startvnc ~Ändern Sie die Berechtigungen auf ausführbar, um das Skript auszuführen:
[email protected]:~$ chmod +x ~/startvncFühren Sie dann das Skript aus.
[email protected]:~$ ./startvnc
Verwendung:./startvnc start|stop|restart|statusDieses Skript funktioniert nur, wenn Sie ein .vnc-Verzeichnis in Ihrem Home haben und ein vncpasswd erstellt haben (es sucht nach der Datei ~/.vnc/passwd). Wir haben das .vnc-Verzeichnis und das Passwort bereits früher erstellt.
Um den vnc-Server auf der aktuellen Anzeige zu starten, geben Sie einfach ein:
[email protected]:~$ ./startvnc start
Starten des VNC-Servers auf dem Display:0 [ok]Mit der Option:
können Sie testen, ob Ihr vnc-Server läuft[email protected]:~$ ./startvnc status
Status des VNC-Servers:[running] (pid:1328)Einige Beispiele:
Oder überprüfen Sie den TCP-Port 5900 auf Ihrem System mit dem Befehl fuser (aus dem Paket psmisc):
[email protected]:~$ fuser -vn tcp 5900
USER PID ACCESS COMMAND
5900/tcp: user 1328 >Sie erhalten eine Ausgabe wie diese, wenn der vnc-Server auf Port 5900 läuft.
Weitere Anweisungen zu diesem Skript finden Sie in der Readme-Datei:
[email protected]:~$ weniger runvncserver/README.mdDas Skript erstellt eine Protokolldatei, in der die Ausgabe gespeichert wird. Wenn etwas schief geht oder Sie den x0vncserver nicht starten oder stoppen können, werfen Sie einen Blick in die Logdatei unter ~/.vnc/logfile
VNC-Server automatisch starten
Wenn Sie automatisch auf die Active Desktop-Sitzung zugreifen möchten, müssen Sie die .xsessionrc-Datei in Ihrem Home-Verzeichnis bearbeiten.
[email protected]:~$ echo "/home/user/startvnc start>/dev/null 2>&1">> ~/.xsessionrcErsetzen Sie user durch Ihren Benutzernamen und es wird automatisch ausgeführt, wenn Sie die X-Sitzung starten. Das Skript protokolliert seine Aktivität in ~/.vnc/logfile, wenn etwas schief geht, können Sie die Protokolldatei dort überprüfen.
Notizen
Dieses Tutorial befasst sich nicht mit der Einrichtung eines virtuellen VNC-Desktops.
Sicherheit
Beachten Sie, dass der x0vnc-Server standardmäßig keine Verschlüsselung verwendet, verwenden Sie sie also vorsichtig über das Internet. Wenn Sie es aus der Ferne verwenden möchten, können Sie es über ssh tunneln. Es gibt jedoch andere Howtos, in denen Sie eine Lösung finden können, um Ihre VNC-Sitzung zu verschlüsseln.
Oder Sie werfen einen Blick auf das ssvnc-Paket.
VNC-Viewer
Wenn Sie nach VNC-Viewern suchen, gibt es viele davon, zum Beispiel:
- gvncviewer
- tigervnc-viewer
- xtightvncviewer
- xvnc4viewer
Geometrie
Der x0vncserver auf der tatsächlichen Anzeige verwendet dieselbe Geometrie wie der laufende Desktop auf der :0-Anzeige. Wenn Sie also die Option -geometry auf eine niedrigere Größe einstellen, wird sie nicht skaliert, Sie sehen nur einen Bruchteil der Desktopgröße.
Feedback
Fühlen Sie sich frei, Feedback zu schreiben. Wenn Sie dieses Tutorial oder sogar das Skript auf einem anderen System getestet haben.