GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So starten Sie einen vnc-Server für die eigentliche Anzeige (Scraping) mit TigerVNC

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

getestet

TigerVNC 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 5900

Die 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 1328

Die 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 psmisc

Laden 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 ~/startvnc

Führen Sie dann das Skript aus.

[email protected]:~$ ./startvnc

Verwendung:./startvnc start|stop|restart|status

Dieses 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.md

Das 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">> ~/.xsessionrc

Ersetzen 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.


Linux
  1. Wie finde ich heraus, was die Domain für die Verbindung mit Samba ist?

  2. Wie behebt man „Ein Startjob läuft für das Raise-Netzwerk“ in Ubuntu Server 16.0 Lts?

  3. tr Befehl - wie man die Zeichenfolge \n durch einen tatsächlichen Zeilenumbruch (\n) ersetzt

  4. Wie ändere ich das Verzeichnis in Git Bash mit Git für Windows?

  5. Wie installiere ich PhantomJS für die Verwendung mit Python Selenium auf dem Raspberry Pi?

So hosten Sie mehrere WordPress-Sites auf demselben Server mit Docker

So stellen Sie den Jitsi Meet-Konferenzserver mit Ubuntu 22.04 bereit

So ändern Sie den Server-Hostnamen in Ubuntu

Wie ändere ich die Zeitzone auf Ubuntu 18.04 Server?

So sichern Sie SSH mit Fail2Ban

So installieren und konfigurieren Sie die CSF-Firewall für Linux