So teilen Sie Ihren Desktop unter Linux mit X11VNC

So teilen Sie Ihren Desktop unter Linux mit X11VNC

Zielsetzung

Lernen, wie Sie Ihren Desktop mit dem VNC -Protokoll und der X11VNC -Anwendung teilen

Anforderungen

  • Das X11VNC -Paket installiert haben

Konventionen

  • # - erfordert, dass der angegebene Befehl entweder mit Root -Privilegien ausgeführt wird
    direkt als Stammbenutzer oder durch Verwendung von sudo Befehl
  • $ - gegebener Befehl, der als regulärer nicht privilegierter Benutzer ausgeführt werden soll

Einführung

Während SSH ein wesentliches Werkzeug für jeden Systemadministrator ist, ist es nicht das richtige Tool, wenn das gewünschte Ziel verwendet werden kann, wenn es für jeden Systemadministrator das am häufigsten verwendete und sichere Protokoll für die Remoteverwaltung ist. soll eine ganze Desktop -Sitzung teilen. In diesem Fall der VNC Protokoll ist unser Freund. Durch die Verwendung können wir einen anderen Computer vollständig steuern und sogar Tastatur- oder Mausereignisse teilen.

Obwohl viele
Implementierungen des Protokolls existieren auf GNU/Linux, und einige von ihnen sind in bestimmte Desktop -Umgebungen integriert Vino/Vinagre In Gnome konzentrieren wir uns in diesem Tutorial auf die Verwendung und das Einrichten des Desktop-unabhängigen x11vnc Anwendung.

Installation

Der x11vnc Die Anwendung sollte bereits verpackt und in Ihren bevorzugten Vertriebsrepositories erhältlich sein. Installieren Sie es auf Fedora Es geht nur darum: Laufen:

$ sudo dnf install x11vnc

Auf Debian oder einer Debian-basierten Verteilung ist der zu verwendende Befehl::

$ sudo apt-Get Installieren Sie X11VNC

X11VNC ist auch in den Archlinux -Repositories erhältlich. Wir können es mit verwenden Pacman:

$ sudo pacman -s x11vnc

Nach der Installation kann das Programm direkt vom Terminal oder über GUI mit dem Desktop -Launcher gestartet werden, der im Anwendungsmenü gefunden werden sollte.



Firewall -Setup

Um unsere Desktop -Sitzung mit dem VNC -Protokoll freigeben zu können, müssen wir die Firewall so einrichten, dass eingehende Verbindungen am Port ermöglicht werden 5900 Dies ist der Standard-VNC-Server-Port. Die genaue Aktion zur Durchführung hängt von der Firewall -Software ab, die wir auf unserem System verwenden. Beim Benutzen Firewall Wir sollten rennen:

$ sudo firewall-cmd --add-service = vnc-server

Wie Sie sehen können, haben wir den Port nicht direkt angegeben, der direkt zulässig ist: Stattdessen haben wir den Dienstnamen direkt verwendet, da er standardmäßig mit dem Port zugeordnet ist. Denken Sie daran, bei der Verwendung Firewall, Wenn eine Zone nicht mit dem angegeben ist --Zone Option, die angegebenen Regeln werden auf der Standardeinstellung angewendet.

Beim Benutzen UFW, Die Standard -Firewall in Ubuntu, der Befehl zu verwenden, lautet:

$ sudo ufw erlauben 5900/tcp

Wenn wir beabsichtigen, VNC -Verbindung von Maschinen außerhalb unseres lokalen Netzwerks zu ermöglichen, sollten wir eine zulässige Regel für denselben Port in unserem Router konfigurieren und die IP -Weiterleitung an unsere Maschinen -IP einrichten.

Mit X11VNC vertraut zu werden

Der einfachste Weg, X11VNC zu verwenden, besteht darin, das Programm ohne Option in das Terminal aufzurufen. Das Programm muss gestartet werden ohne Administratorrechte:

$ x11vnc

Standardmäßig verwendet X11VNC die Anzeige : 0, Dies kann jedoch mit dem geändert werden -Anzeige Möglichkeit.

Das erste, was wir erhalten, nachdem wir den obigen Befehl ausgeführt haben, ist eine Warnung, kein Passwort für die Verbindung zu verwenden. Das wird erwartet, da wir noch keine eingerichtet haben. Das Ausführen mit diesem Setup ist sehr gefährlich, da jeder Computer mit Netzwerkzugriff auf unseren Computer möglicherweise unseren Desktop anzeigen und steuern kann. Das erste, was wir tun müssen, ist, das Programm so einzurichten, dass es eine Authentifizierung erfordert.



Beschränken Sie den Zugriff mit einem Passwort

Grundsätzlich können wir die Authentifizierung mit X11VNC einrichten, sie entsprechen dem -Passwd, -StorePasswd, Und -Passwdfile Optionen. Mal sehen, wie sie das Verhalten des Programms ändern.

Die erste Methode wird durch die Verwendung der dargestellt -Passwd Option, mit der wir direkt im Terminal eine Kennwort für Laufzeit, One-Shot- und Klartext angeben können: Es wird nirgendwo gespeichert und wird nur für die gestartete Sitzung verwendet.

Die zweite Methode besteht darin, die zu verwenden -StorePasswd Option: Es akzeptiert zwei optionale Argumente: passieren Und Datei, So geben Sie das Passwort und die Datei an, in der es gespeichert werden sollte. Wenn es jedoch ohne Argumente verwendet wird, wird das Kennwort interaktiv eingestuft und wird in der gespeichert ~/.VNC/Passwd Datei. Wenn die Option mit nur einem Argument verwendet wird, wird sie schließlich als die Datei interpretiert, in der das Passwort gespeichert werden kann. Bitte beachten Sie, dass die Datei, die das Kennwort enthält.

Sobald das Passwort gespeichert ist, wird das Programm beendet. Um eine passwortgeschützte VNC-Sitzung zu starten, muss der folgende Befehl ausgestellt werden:

$ x11vnc -rfbauth/path/to/passfile

Wobei standardmäßig/Pfad/to/Passfile ~/entspricht.VNC/Passwd.

Die dritte Option, die wir haben, besteht darin, die zu verwenden -Passwdfile Flagge. Durch die Verwendung des Kennworts für die Verbindung wird durch Lesen der ersten Zeile einer vorhandenen Datei festgelegt, die als Argument der alleinigen Option übergeben wurde. Das Verhalten der Option kann durch Präfix des Dateiarguments weiter geändert werden. Zum Beispiel, wenn der Dateiname vorangestellt ist RM:, Die Datei selbst wird gelöscht, nachdem ihr Inhalt vom Programm gelesen wurde. Bei Verwendung der CMD: Präfix wird stattdessen die nach dem Präfix angegebene Zeichenfolge als externer Befehl interpretiert, und seine Ausgabe wird als Passwort verwendet. Mit dieser Option können andere Präfixe verwendet werden. Für eine vollständige Referenz können Sie die Manpage des Programms konsultieren.

Geben Sie ein Passwort für nur Ansichtssitzungen an

Es ist möglich zu verwenden x11vnc Daher wird die erstellte Verbindung im Nur-View-Modus ausgeführt. Dies bedeutet, dass die vernetzten Kunden nur die gemeinsame Sitzung beobachten dürfen, aber nicht mit ihr interagieren können. Um in diesem Modus auszuführen, muss das Programm mit dem gestartet werden -Nur ansehen Möglichkeit. Es ist möglich, eine Passwort -Speific für diese Art von Zugriff einzurichten, um ein körnigsteres Setup zu erhalten. Um dieses Ergebnis zu erzielen, die -ViewPasswd Die Option muss verwendet werden und das Kennwort als Zeichenfolgenargument bereitgestellt werden. Dies erfordert jedoch, dass auch ein Kennwort mit Vollzugsgültigkeit verwendet wird, wobei das verwendet wird -Passwd Option, die wir oben besprochen haben.

Sichern Sie die Verbindung mit einem verschlüsselten Tunnel

Standardmäßig ist eine VNC -Verbindung nicht verschlüsselt, und dies kann ein Sicherheitsrisiko sein. Wir können verschiedene Ansätze verwenden, um dies zu beheben. Der erste wäre, a zu verwenden VPN (Virtuelles privates Netzwerk), die zweite, um einen SSL -Tunnel und den dritten zu verwenden, der verwendet wird ssh.

Während wir beschreiben, wie ein VPN eingerichtet wird, ist wir in Kürze, wie man die beiden anderen Optionen implementiert.

Verwenden Sie einen SSL/TLS -Tunnel

Wir können die VNC -Verbindung mit einem SSL -Tunnel verschlüsseln. Um dies erreichen zu können, müssen wir die verwenden -SSL oder -Stunnel Optionen. Ersteres erfordert, dass X11VNC zusammengestellt wird libssl Unterstützung. Diese Option akzeptiert ein Argument, bei dem es sich um das Zertifikat handelt Pem Format zu verwenden. Wenn dieses Argument nicht bereitgestellt wird und die OpenSSL Das Dienstprogramm wird in unserem System installiert, ein neues Zertifikat wird generiert und gespeichert in ~/.VNC/Certs/Server.Pem.

Der -ssltunnel Die Option stützt sich stattdessen auf die Verwendung eines externen Programms, Stunnel eine SSL -Verbindung bereitzustellen. As -SSL akzeptiert auch ein PEM -Zertifikat als Argument. Wenn es nicht bereitgestellt wird, wird eine neue generiert und wie oben erwähnt gespeichert (dieses Verhalten kann jedoch geändert werden, beispielsweise unter Verwendung der Zeichenfolge TMP als Argument - in diesem Fall wird ein vorübergehendes Zertifikat erstellt).

Beachten Sie, dass das automatisch generierte Zertifikat in beiden Fällen selbst signiert wird, obwohl es jedoch keinen Schutz eines Mannes in der Mitte darstellt. Wenn wir das Zertifikat generieren, werden wir gefragt, ob wir ein Passwort zum Schutz angeben möchten. Wenn es der Fall ist, werden wir aufgefordert, es einzufügen.

Um einen SSL -Tunnel verwenden zu können, muss die Client -Anwendung SSL unterstützen.



Verwenden Sie einen SSH -Tunnel

Um einen SSH -Tunnel zu verwenden, müssen wir den VNC -Server mit SSH mit diesem Befehl starten (dies wird davon ausgegangen, dass der Standardport verwendet wird):

$ ssh -t -l 5900: localhost: 5900 Remote -Machine 'x11vnc -LocalHost -display: 0'

Sie sind wahrscheinlich mit SSH vertraut, aber lassen Sie uns diesen Befehl analysieren. Erstens haben wir SSH mit dem gelaufen -T Option, eine Pseudo-terminale zuzuweisen und mit dem -L Erstens sagten wir im Grunde genommen, den Hafen weiterzuleiten 5900 Auf unserem lokalen (Client-) Computer zum selben Port auf der Remotemaschine. Wie Sie sehen können, wird der Befehl x11vnc mit dem gestartet -Lokalhost Möglichkeit. Dies ist im Grunde genommen nur, nur Verbindungen von derselben Maschine, auf der der Server ausgeführt wird, nur zuzulassen. Diese Option wird auch automatisch verwendet, wenn ein SSL -Tunnel verwendet wird, um die Umgehung zu vermeiden. Danach können wir unseren VNCViewer im Client starten:

$ vncViewer -preferedEncoding = Zrle localhost: 0

Beachten Sie, dass wir die bevorzugte Codierung festlegen Zrle, Dies sollte die Leistung gegenüber SSH helfen.

Im grafischen Modus ausführen

Wie bereits erwähnt, x11vnc kann auch im grafischen Modus mit dem Desktop -Launcher verwendet werden. Standardmäßig wird das Programm ein Fenster angezeigt, in dem wir auswählen können, welchen Port zu verwenden ist, sowie andere Optionen:

Wählen Sie das Fenster X11VNC -Port

Nachdem wir auf die Schaltfläche „OK“ klicken, wird ein Symbol im Systemfach angezeigt und ein Fenster mit seinen Eigenschaften auf dem Bildschirm angezeigt. Auf der linken Seite werden einige nützliche Anweisungen für ein schnelles Start angezeigt. Über diese Oberfläche können wir auch ein Session-Speific- und Only-Passwort für den Only auswählen:

X11VNC -Eigenschaftenfenster

Schlussfolgerungen

Während VNC nicht einmal näher kommt, um einen Ersatz für SSH zu repräsentieren, kann es das richtige Werkzeug für bestimmte Aufgaben sein. In diesem Tutorial haben wir die grundlegenden Schritte gesehen x11vnc Server. Während viele Alternativen verfügbar sind, ist X11VNC ein sehr einfaches und desktop-unabhängiges Werkzeug, das überall verwendet werden kann.

Verwandte Linux -Tutorials:

  • Teilen Sie Ihren Desktop -Bildschirm mit VNC unter Linux weiter
  • Konfigurieren des VNC -Serverzugriffs auf einem Redhat Linux
  • VNC Remote-Screen-Dienstprogramme für Linux
  • Dinge zu installieren auf Ubuntu 20.04
  • Eine Einführung in Linux -Automatisierung, Tools und Techniken
  • Linux: Setup SSH
  • Wie man OpenSSH optimal nutzt
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
  • Linux -Befehle: Top 20 wichtigste Befehle, die Sie benötigen, um…
  • Grundlegende Linux -Befehle