So teilen Sie Ihren Desktop unter Linux mit X11VNC
- 2733
- 368
- Levke Harnapp
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 vonsudo
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