Die traditionelle Art, den Server zu verwalten, ist über ssh und die Befehlszeile. Aber manchmal müssen Sie eine Anwendung mit einer GUI auf einem Server ausführen, und da Sie normalerweise nicht neben dem Server sitzen und selbst wenn Sie dies tun, der Server möglicherweise keinen Monitor und keine Tastatur hat, benötigen Sie eine Art Remote-Desktop. P>
VNC ist dafür eine gute Lösung, die weit verbreitet ist und ziemlich einfach einzurichten ist. Ubuntu hat TightVNC in Repositories und in diesem Tutorial richten wir einen Mehrbenutzer-TightVNC-Server auf Ubuntu Server 16.04 ein.
Für die GUI werden wir XFCE verwenden, das eine leichtere Alternative zu GNOME und Unity ist.
Installieren Sie VNC-Server (Tight VNC) und Desktop (XFCE)
Zuerst beginnen wir mit der Installation des TightVNC-Servers und der XFCE-Desktopumgebung.
sudo apt install gnome-core xfce4 firefox xfce4-goodies tightvncserver
Dann müssen wir den VNC-Server mit Passwort für die Anmeldung als Benutzer ‚miki‘
konfigurierenvncserver
Es wird Sie auch nach einem Nur-Anzeige-Passwort fragen, Sie brauchen dieses, wenn Sie möchten, dass sich jemand mit Ihrer VNC-Sitzung ohne Kontrolle über den Cursor und die Tastatur verbindet, nur als Zuschauer. Dieses Passwort muss sich von Ihrem Hauptpasswort unterscheiden. Wenn Sie keine Zuschauer haben möchten, können Sie sich dafür entscheiden, kein Nur-Ansicht-Passwort einzugeben. Nachdem dieser Vorgang abgeschlossen ist, wird die VNC-Instanz auf Port 5901 gestartet und VNCserver zählt diesen Port als :1. Wenn Sie mehrere Instanzen von VNC starten, haben Sie mehrere Anzeigeports, und beide Nummern werden für jede Instanz um 1 auf :2 und 5902 usw. erhöht. Um mit der Konfiguration fortzufahren, müssen wir tatsächlich alle Instanzen des VNC-Servers beenden. Wir tun dies mit folgendem Befehl:
vncserver -kill :1
Danach kann die Konfigurationsdatei für den VNC-Server bearbeitet werden, um auszuwählen, welche Desktop-Umgebung beim Verbinden mit dem VNC-Server gestartet wird. Die Datei, von der ich spreche, heißt xstartup und befindet sich im versteckten .vnc-Verzeichnis in ~/ dir. Lassen Sie uns zuerst diese Datei sichern
mv ~/.vnc/xstartup ~/.vnc/xstartup.backup
Und dann eine neue Datei von Grund auf neu erstellen
nano ~/.vnc/xstartup
Fügen Sie in diese leere Datei diese paar Zeilen ein:
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &
Ausführbares Bit zu dieser Datei hinzufügen
sudo chmod +x ~/.vnc/xstartup
Als nächstes können wir den VNC-Server neu starten
vncserver
Verbinden mit dem VNC-Server
Als nächstes müssen wir uns mit dem VNC-Server verbinden, um zu sehen, ob unser Setup funktioniert. Wir können jeden VNC-Client verwenden, wie zum Beispiel Vinagre oder Remote Desktop Viewer, wie es auch genannt wird. Installieren Sie es zuerst und starten Sie es
sudo apt install vinagre
Geben Sie den Namen Ihres Servers, Port 5901 ein und klicken Sie auf Verbinden. Sie sollten nach Ihrem Passwort gefragt werden und dann sollten Sie in XFCE gelangen
Sie können sich von einer unbegrenzten Anzahl von Computern mit dieser Sitzung verbinden, aber dann würden Sie alle einen Mauszeiger steuern und dieselbe Sitzung haben. Wenn einige Benutzer das Nur-Ansicht-Passwort eingeben (vorausgesetzt, Sie haben eines erstellt), hätten sie keine Kontrolle über den Cursor, aber sie würden sich immer noch in einer Einzelsitzung befinden und denselben Bildschirm sehen.
Mehrere Benutzer
Es ist möglich, mehrere VNC-Sitzungen zu haben, die sich nicht gegenseitig stören. Dies geschieht durch Erstellen einer beliebigen Anzahl von Benutzern, und jeder Benutzer hat seinen eigenen Anzeigeport und seine eigene Instanz des VNC-Servers. Und im Gegenzug wird er seine eigene Instanz der Desktop-Umgebung ausführen, oder das könnte eine völlig separate DE sein. Beginnen wir zuerst mit dem Hinzufügen eines neuen Benutzers
sudo adduser newuser
Als nächstes melden wir uns als dieser Benutzer an
su newuser
Und lassen Sie uns ein Passwort für den neuen Benutzer erstellen
vncserver
Abgesehen vom Passwort hat dies auch einen neuen Prozess erstellt, der auf Port 5902 lauscht. Wir müssen diesen Prozess beenden, um die Konfigurationsdatei bearbeiten zu können.
vncserver -kill :2
Und wir müssen den Prozess von früher tatsächlich wiederholen. Sichern Sie zuerst die xstartup-Datei
mv ~/.vnc/xstartup ~/.vnc/xstartup.backup
Erstellen Sie dann ein neues von Grund auf
nano ~/.vnc/xstartup
Nach drei Zeilen unten
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &
Und ausführbar machen:
sudo chmod +x ~/.vnc/xstartup
Führen Sie nun vncserver aus, um den Prozess zu erzeugen
vncserver :2
Und Sie können sich jetzt an Port 5902 verbinden und eine separate Sitzung haben.
So richten Sie SSH-Tunneling ein
Bisher haben wir es geschafft, die Verbindung direkt über Display-Ports herzustellen, in unserem Fall 5901 und 5902. Aber was ist, wenn diese Ports von der Firewall geschlossen sind und es aus irgendeinem Grund unpraktisch ist, sie zu öffnen? In diesem Fall gibt es eine Lösung, wir können SSH-Tunneling verwenden. Port 22 oder jeder andere Port, den Sie für den SSH-Zugriff auf einem Server verwenden, kann verwendet werden, um den VNC-Viewer auszutricksen, dass der VNC-Server auf localhost auf Port 5901 oder 5902 läuft. Mit diesem Befehl bauen Sie einen SSH-Tunnel auf:
ssh -L 5902:127.0.0.1:5902 [email protected]
Achten Sie darauf, den hervorgehobenen Teil in Ihre IP-Adresse und Ihren Benutzernamen zu ändern.
Danach können Sie Vinagre oder Remmina starten und als Adresse localhot:5902 eingeben. Es geht davon aus, dass sich der Remote-Desktop auf localhost befindet, und leitet den Datenverkehr über den SSH-Port an Ihren Server weiter, solange die SSH-Verbindung aktiv ist.
Systemeinheiten erstellen
Das ist alles gut, wenn Sie den Benutzer und den Server manuell über SSH festlegen, aber Sie müssen es bei jedem Neustart des Servers wiederholen. Um dies zu vermeiden, erstellen wir eine systemd-Unit-Datei. Das ist ein neuer ausgefallener Name für das Startskript der alten Schule. Wir müssen tatsächlich zwei für zwei Benutzer erstellen. Lassen Sie uns zuerst einen erstellen
sudo nano /etc/systemd/system/[email protected]
Dort fügen Sie diese Konfiguration ein
[Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target
[Service]
Type=forking
User=miki
PAMName=login
PIDFile=/home/miki/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target
Dann machen Sie einen anderen:
sudo nano /etc/systemd/system/[email protected]
Und fügen Sie dasselbe Zeug ein, nur ändern Sie in beiden Fällen den Benutzernamen für Ihre eigenen Benutzer. Jetzt müssen wir alte Prozesse beenden, falls sie noch laufen, und die Unit-Dateien neu laden
vncserver -kill :2
vncserver -kill :1
sudo systemctl daemon-reload
Und beginnen Sie mit der Verwendung von Unit-Dateien
sudo systemctl start vncserver@1
sudo systemctl start vncserver@2
Und wenn Sie den vnc-Server bei jedem Booten wollen, machen Sie noch einmal dasselbe wie oben, nur aktivieren statt starten.
Schlussfolgerung
In diesem Tutorial haben wir gelernt, wie man VNC-Server mit zwei Benutzern unter Ubuntu 16.04 installiert und konfiguriert. Wenn Sie Fragen oder Feedback haben, können Sie gerne einen Kommentar hinterlassen.