Einführung
VNC (Virtual Network Computing) ist ein System, mit dem Benutzer Verbindungen herstellen und mit grafischen Desktops von Remotecomputern interagieren können. Es kann Bildschirmaktualisierungen sowie Tastatur- und Mausereignisse über das Netzwerk übertragen.
VNC ist nützlich, wenn Sie eine grafische Desktop-Umgebung für Ihren Server benötigen.
XFCE ist eine leichte Desktop-Umgebung. Aufgrund der geringen Systemressourcenanforderungen und der Tatsache, dass viele VNC-Benutzer damit vertraut sind, verwenden wir in diesem Lernprogramm XFCE. Sie können jedoch auch Ihre bevorzugte Desktop-Umgebung wie Gnome oder KDE verwenden.
In diesem Tutorial werden wir einen Debian 8-Server einrichten, die XFCE-Desktop-Umgebung darauf installieren und eine Verbindung über VNC herstellen. Zusätzlich erstellen wir ein Startskript für VNC Server und sichern es über SSH.
Voraussetzungen
Bitte erfüllen Sie die folgenden Voraussetzungen.
-
Debian 8 (oder 8.1) -Droplet mit Root-Zugriff. 512 MB RAM reichen aus, um VNC und XFCE auszuführen, aber Sie benötigen möglicherweise ein größeres Droplet, je nachdem, was Sie mit der grafischen Oberfläche vorhaben
-
VNC-Viewer (Client) auf Ihrem Computer, um eine Verbindung zu Ihrem Server herzustellen. In diesem Tutorial verwenden wir UltraVNC unter Windows, Sie können jedoch auch andere VNC-Clients verwenden. Sie können UltraVNC hier herunterladen: here. OS X wird mit einem integrierten VNC-Client namens Screen Sharing ausgeliefert
-
SSH-Client zum Herstellen einer sicheren Verbindung über SSH. Wir werden PuTTY für Windows verwenden. Sie können PuTTY hier herunterladen: here. Verwenden Sie unter OS X einfach die integrierte Terminal-Anwendung
Schritt 1 - Installieren von VNC und XFCE
In diesem Schritt installieren wir VNC Server und die XFCE-Desktop-Umgebung mit zusätzlicher Software und einem Icon Pack.
Aktualisieren Sie die Paketlisten Ihres Servers:
apt-get update
Aktualisieren Sie die Pakete selbst:
apt-get -y upgrade
Dann werden wir + tightvncserver +
und XFCE4 mit einigen nützlichen Add-Ons und einem Icon-Theme installieren:
apt-get install xfce4 xfce4-goodies gnome-icon-theme tightvncserver
Standardmäßig ist kein Browser installiert. Sie können + iceweasel +
(eine umbenannte Version von Mozilla Firefox für Debian) installieren, wenn Sie über Ihre VNC-Verbindung auf das Web zugreifen möchten:
apt-get install iceweasel
Schritt 2 - Erstellen eines VNC-Benutzers
Wir werden einen separaten Benutzer für VNC-Verbindungen erstellen, um die Sicherheit und Ordnung zu gewährleisten. Die Verwendung von + sudo +
wird dringend empfohlen, anstatt den Benutzer * root * direkt für Ihren VNC-Server zu verwenden.
Sie können einen Benutzer mit dem Namen * vnc * zu Ihrem Debian-Droplet hinzufügen, indem Sie diesen Befehl verwenden:
adduser vnc
Geben Sie Ihrem neuen Benutzer ein Passwort. Sie können alle anderen Fragen überspringen, indem Sie einfach "+ ENTER" drücken.
Installieren Sie + sudo +
, indem Sie diesen Befehl ausführen:
apt-get install sudo
Fügen Sie Ihren neuen Benutzer * vnc * zur Gruppe * sudo * hinzu, die diesem Benutzer die Berechtigung zum Ausführen von Root-Befehlen erteilt.
gpasswd -a vnc sudo
Wechseln wir zum Benutzer * vnc *:
su - vnc
Schritt 3 - Starten und Stoppen Ihres VNC-Servers
Als neu erstellter * vnc * -Benutzer können wir VNC Server starten und unsere Verbindung testen.
Starten Sie VNC Server:
vncserver
Da Sie den Server zum ersten Mal ausführen, werden Sie aufgefordert, ein Kennwort festzulegen, mit dem Clients eine Verbindung herstellen. Behalte dieses Passwort für später im Hinterkopf! Sie können auch ein Nur-Ansicht-Kennwort festlegen, mit dem Benutzer den Bildschirm sehen, aber nicht mit ihm interagieren können. Passwörter sollten aus * 6-8 Zeichen * bestehen.
Sie erhalten eine Benachrichtigung über Ihre Anzeigenummer, wenn der Server gestartet wird.
Ausgabe
xauth: file /home/vnc/.Xauthority does not exist
New 'X' desktop is vnc:1
Creating default startup script /home/vnc/.vnc/xstartup
Starting applications specified in /home/vnc/.vnc/xstartup
Log file is /home/vnc/.vnc/vnc:1.log
Standardmäßig werden VNC-Verbindungen an Ports bereitgestellt, die bei der ersten Anzeige mit "+ 5901 " beginnen. Ihre zweite Anzeige wird an Port ` 5902 +` usw. geliefert.
Stoppen Sie den Server jetzt nicht. Der Befehl stop dient jedoch als Referenz.
Schritt 4 - Verbindung von einem VNC-Client
Sie können jetzt eine Verbindung zu Ihrem VNC-Server herstellen. Öffnen Sie Ihren lokalen VNC-Client, der sich je nach Betriebssystem unterscheidet.
Unter Windows können Sie UltraVNC here verwenden.
Unter OS X können Sie die integrierte Bildschirmfreigabe-App verwenden oder über Safari auf diese App zugreifen. In Safari können Sie * vnc: //: 5901 * eingeben
Geben Sie als VNC-Serveradresse *: 5901 * ein und verwenden Sie das Passwort, das Sie gerade für Ihre VNC-Verbindung festgelegt haben.
Sie können auf dem XFCE-Begrüßungsbildschirm die Schaltfläche * Use default config * (Standardkonfiguration verwenden) auswählen, um die ersten Schritte zu vereinfachen:
image: https://assets.digitalocean.com/articles/vnc-debian8/ExJW2cB.png [Xubuntu-Begrüßungsbildschirm]
Jetzt können Sie Ihren Remote-Desktop verwenden!
Schritt 5 - Erstellen eines systemd-Dienstes zum automatischen Starten von VNC Server
In diesem Abschnitt fügen wir VNC Server zu systemd hinzu. Die Verwendung eines Dienstes kann nützlich sein, um Ihren VNC-Server zu starten und zu stoppen und um ihn automatisch zu starten, wenn Ihr Droplet neu gestartet wird.
Lassen Sie uns zuerst die aktuelle Instanz beenden:
vncserver -kill
Erstellen Sie ein einfaches Skript, um unseren VNC-Server einfach zu verwalten und zu konfigurieren:
Erstellen Sie als * vnc * oder anderer sudo-Benutzer eine Skriptdatei mit Ihrem bevorzugten Texteditor.
sudo nano /usr/local/bin/myvncserver
Fügen Sie genau diese Inhalte hinzu. Dieses Skript stellt VNC einige Parameter für den Start bereit.
/ usr / local / bin / myvncserver
#!/bin/bash
PATH="$PATH:/usr/bin/"
DISPLAY="1"
DEPTH="16"
GEOMETRY="1024x768"
OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"
case "$1" in
start)
/usr/bin/vncserver ${OPTIONS}
;;
stop)
/usr/bin/vncserver -kill :${DISPLAY}
;;
restart)
$0 stop
$0 start
;;
esac
exit 0
Sie können das Skript ändern, um die Farbtiefe oder Auflösung Ihrer VNC-Verbindung zu ändern.
Wenn Sie Nano verwenden, können Sie die Datei mit + STRG + O +
speichern und mit + STRG + X +
beenden.
Machen Sie die Datei ausführbar:
sudo chmod +x /usr/local/bin/myvncserver
Unser Skript hilft uns, Einstellungen zu ändern und VNC Server einfach zu starten / stoppen.
Wir können jetzt eine unit file für unseren Service erstellen. Gerätedateien werden verwendet, um Dienste zu beschreiben und dem Computer mitzuteilen, was zu tun ist, um den Dienst zu starten / zu stoppen oder neu zu starten.
sudo nano /lib/systemd/system/myvncserver.service
Kopieren Sie diese Befehle in die Servicedatei. Unser Service ruft einfach das Startskript oben mit dem Benutzer * vnc * auf.
/lib/systemd/system/myvncserver.service
[Unit]
Description=Manage VNC Server on this droplet
[Service]
Type=forking
ExecStart=/usr/local/bin/myvncserver start
ExecStop=/usr/local/bin/myvncserver stop
ExecReload=/usr/local/bin/myvncserver restart
User=vnc
[Install]
WantedBy=multi-user.target
Jetzt können wir + systemctl +
neu laden und unseren Service aktivieren:
sudo systemctl daemon-reload
sudo systemctl enable myvncserver.service
Sie haben Ihren neuen Dienst jetzt aktiviert. Verwenden Sie diese Befehle, um den Dienst mit dem Befehl + systemctl +
zu starten, zu stoppen oder neu zu starten:
sudo systemctl start myvncserver.service
sudo systemctl stop myvncserver.service
sudo systemctl restart myvncserver.service
Jetzt können Sie VNC Server als Dienst auf Ihrem Droplet ausführen.
Schritt 6 - Sichern Sie Ihren VNC-Server mit SSH-Tunneling
Standardmäßig verwenden VNC-Verbindungen keine Verschlüsselung. Es wird daher empfohlen, zur Sicherung Ihrer Sitzung einen SSH-Tunnel zu verwenden.
Dazu lassen wir unseren VNC-Server nur auf * localhost * laufen. + Sie können dies tun, indem Sie "+ -localhost " in die Zeile " OPTIONS +" des im vorherigen Schritt erstellten Startskripts einfügen.
Stoppen Sie zuerst den VNC-Server:
sudo systemctl stop myvncserver.service
Bearbeiten Sie Ihr Konfigurationsskript:
sudo nano /usr/local/bin/myvncserver
Ändern Sie diese Zeile:
/ usr / local / bin / myvncserver
. . .
OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"
. . .
Ersetzen Sie es durch:
/ usr / local / bin / myvncserver
. . .
OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY} "
. . .
Starten Sie den VNC-Server neu:
sudo systemctl start myvncserver.service
Jetzt können Sie von Ihrem Remote-Computer aus keine direkte Verbindung zu Ihrem VNC-Server herstellen.
-
Windows: *
Wir werden PuTTY verwenden, um einen SSH-Tunnel zu erstellen und dann eine Verbindung über den von uns erstellten Tunnel herzustellen.
Öffnen Sie PuTTY.
Gehen Sie im linken Menü zum Abschnitt * Verbindung→ SSH→ Tunnel *.
Geben Sie im Abschnitt "Neuen weitergeleiteten Port hinzufügen" "+ 5901 " als "Quellport" und " localhost: 5901 +" als "Ziel" ein.
Klicken Sie auf die Schaltfläche * Hinzufügen *.
image: https://assets.digitalocean.com/articles/vnc-debian8/jWDVCt9.png [PuTTY SSH Tunnel Configuration]
Sie können jetzt zum Abschnitt * Sitzung * im linken Menü gehen.
Geben Sie die IP-Adresse Ihres Droplets in das Feld * Hostname (oder IP-Adresse) * ein.
Klicken Sie auf die Schaltfläche * Öffnen *, um eine Verbindung herzustellen. Sie können diese Optionen auch zur späteren Verwendung speichern.
image: https: //assets.digitalocean.com/articles/vnc-debian8/zvIl1fJ.png [PuTTY SSH Connection]
Melden Sie sich mit Ihrem * vnc * -Benutzer an.
Lassen Sie das PuTTY-Fenster geöffnet, während Sie die VNC-Verbindung herstellen.
- Jetzt können Sie Ihren VNC-Viewer wie gewohnt verwenden. Geben Sie einfach * localhost
-
5901 * als Adresse ein und lassen Sie Ihre SSH-Verbindung im Hintergrund laufen.
- image: https://assets.digitalocean.com/articles/vnc-debian8/FZWF3UH.png [UltraVNC Viewer: localhost
-
5901]
-
OS X: *
-
Verwenden Sie die folgende Zeile in Terminal, um einen SSH-Tunnel einzurichten:
ssh vnc@ -L 5901:localhost:5901
Authentifizieren Sie sich wie gewohnt für den * vnc * -Benutzer für SSH. Verwenden Sie dann in der Screen Sharing-App * localhost: 5901 *.
Fazit
Jetzt können Sie einen freigegebenen Remote-Desktop auf Ihrem Debian 8-Server verwenden.
Verwenden Sie es, um Ihren Server zu konfigurieren oder Ihren Bildschirm für andere freizugeben.