Desktop auf Remote-Server ausführen
Normalerweise würden Sie das ssh-Terminal verwenden, wenn Sie auf einem entfernten Linux-Server arbeiten. Aber es kann Zeiten geben, in denen Sie eine GUI-App auf dem Server ausführen und für einige Zeit am Laufen halten müssen.
Kürzlich musste ich etwas Ähnliches machen und habe daher einen Ubuntu-Server mit Desktop eingerichtet und über VNC darauf zugegriffen.
Die Idee ist einfach. Installieren Sie eine beliebige Desktop-Umgebung Ihrer Wahl auf dem Server. In diesem Tutorial werden wir Xfce verwenden, da es im Vergleich zu den größeren wie Gnome und KDE einen geringen Platzbedarf hat.
Verwenden Sie dann den vnc-Server, um die Desktop-Umgebung zu starten, und erstellen Sie eine X-Anzeigesitzung, auf die wir von unserem lokalen Desktop-Rechner über einen vnc-Client zugreifen.
Desktop-Umgebung und VNC-Server installieren
Xfce ist ein leichtgewichtiger Desktop und ideal für die Verwendung auf einem Remote-Server. Installieren Sie zuerst die xfce-Pakete und den tightvnc-Server. Es wäre eine gute Idee, den Paket-Cache vor der eigentlichen Installation zu aktualisieren.
sudo apt-get updatesudo apt-get install xfce4 xfce4-goodies tightvncserver
Beachten Sie, dass dies nur die Pakete installiert und nichts startet. Wir werden den vncserver später in dieser Anleitung selbst mit bestimmten Einstellungen starten.
Wenn der dpkg-Prozess unerwartet beendet wird, müssen Sie möglicherweise den folgenden Befehl ausführen -
# sudo dpkg --configure -a
Erstellen Sie einen neuen Benutzer für vnc
Als nächstes müssen Sie einen Unix-Benutzer erstellen, der während der vnc-Sitzungen verwendet wird. Der Benutzername kann beliebig sein. Verwenden Sie den Befehl adduser.
# adduser mikeBenutzer `mike' hinzufügen ...Neue Gruppe `mike' hinzufügen (1001) ...Neuen Benutzer `mike' (1001) mit Gruppe `mike' hinzufügen ...Home-Verzeichnis `/home/mike erstellen ' ...Kopieren von Dateien aus `/etc/skel' ...Neues UNIX-Passwort eingeben:Neues UNIX-Passwort erneut eingeben:passwd:Passwort erfolgreich aktualisiertÄndern der Benutzerinformationen für MikeGeben Sie den neuen Wert ein oder drücken Sie die EINGABETASTE für den standardmäßigen vollständigen Namen [] :Zimmernummer []:Telefon Arbeit []:Telefon Privat []:Andere []:Sind die Informationen korrekt? [J/n]#
Der vncserver startet die Desktop-Umgebung mit diesem Unix-Benutzer. Das bedeutet, dass Sie dieser Benutzer sein sollen, wenn Sie auf dem Remote-Desktop arbeiten
Richten Sie das "vnc-Passwort" für den Benutzer ein
Der vnc-Server verwaltet ein separates Passwort, das verwendet wird, um sich über vnc-Clients beim vnc-Server anzumelden. Dieses Passwort unterscheidet sich vom Unix-Benutzerpasswort. Es wird mit dem Befehl vncpasswd konfiguriert.
Wechseln Sie zunächst zum Benutzer „mike“, der im vorherigen Schritt erstellt wurde, und richten Sie das vnc-Server-Passwort ein.
# su - mike
Verwenden Sie als nächstes den vncpasswd-Befehl
$ vncpasswdPasswortdatei verwenden /home/mike/.vnc/passwdVNC-Verzeichnis /home/mike/.vnc existiert nicht. [email protected]:~$
Beachten Sie, dass die passwd-Datei nicht existierte und in diesem Schritt zum ersten Mal erstellt wurde.
Wenn Sie den Befehl vncserver bereits zuvor ausgeführt haben, wurden die Dateien erstellt. Wenn Sie vncserver zum ersten Mal ausführen, wird ein Standardstartskript erstellt
$ vncserverSie benötigen ein Kennwort, um auf Ihre Desktops zuzugreifen (j/n)? nNeuer „X“-Desktop ist Desktop:1Erstellen des standardmäßigen Startskripts /home/enlightened/.vnc/xstartupStarten von Anwendungen, die in /home/enlightened/.vnc/xstartup angegeben sindProtokolldatei ist /home/enlightened/.vnc/desktop:1.logWir müssen den vncserver-Befehl jedoch nicht ausführen. Es soll automatisch mithilfe von Startskripten gestartet werden.
Erstellen Sie das xstartup-Skript
Die nächste wichtige Datei ist das xstartup-Skript. Es enthält Anweisungen, welche X-Apps gestartet werden sollen. Die Desktop-Umgebung ist die X-Anwendung, die wir starten müssen.
Erstellen Sie zuerst eine Sicherungskopie der Datei, falls sie bereits vorhanden ist
mv ~/.vnc/xstartup ~/.vnc/xstartup.bakBearbeiten Sie es jetzt mit nano
[email protected]:~$ nano .vnc/xstartupHinweis – Dies befindet sich im Home-Verzeichnis des Benutzers vnc, also /home/mike/.vnc/xstartup
Geben Sie die folgenden Zeilen in das xstartup-Skript
ein#!/bin/bashxrdb $HOME/.Xresourcesstartxfce4 &Der Befehl startxfce4 startet den xfce-Desktop. Speichern Sie die Datei und schließen Sie sie.
Machen Sie die xstartup-Datei ausführbar. Dies ist notwendig, damit vncserver diese Datei ausführen kann.
$ chmod +x ~/.vnc/xstartupVNC-Dienstdatei erstellen
Der nächste Schritt besteht darin, eine vnc-Dienstdatei zu erstellen, damit wir den vnc-Server mit dem Dienstbefehl starten können und nicht jedes Mal den vncserver-Befehl ausführen müssen.
Achten Sie darauf, den richtigen Benutzernamen in die USER-Variable einzugeben. Dies ist der Benutzer, den der vnc-Server verwenden wird, um die Desktop-Sitzung zu starten.
[email protected]:~# sudo nano /etc/init.d/vncserverFügen Sie das folgende Skript ein
#!/bin/bashPATH="$PATH:/usr/bin/"export USER="mike"DISPLAY="1"DEPTH="16"GEOMETRY="1024x768"OPTIONS="-tiefe ${DEPTH} -Geometrie ${GEOMETRY} :${DISPLAY}". /lib/lsb/init-functionscase "$1" instart)log_action_begin_msg "Starte vncserver für Benutzer '${USER}' auf localhost:${DISPLAY}"su ${USER} -c "/usr/bin/vncserver ${OPTIONS }";;stop)log_action_begin_msg "Stoppt vncserver für Benutzer '${USER}' auf localhost:${DISPLAY}"su ${USER} -c "/usr/bin/vncserver -kill :${DISPLAY}";; Neustart)$0 stop$0 start;;esacexit 0Speichern Sie die Datei und schließen Sie sie. Ausführbar machen
# chmod +x /etc/init.d/vncserverDienst starten
Jetzt wird alles gelesen. Es ist an der Zeit, den vncserver auszuführen und unseren Schritt zu testen.
Laden Sie zuerst systemctl neu, damit es das vncserver-Startskript verwenden kann.
systemctl daemon-reloadStarten Sie nun vncserver. Es startet einen Server auf Port 5901
# vncserver-Dienst startenÜberprüfen Sie, ob es läuft
[email protected]:~# service vncserver status● vncserver.service Loaded:geladen (/etc/init.d/vncserver; fehlerhaft; Herstellervoreinstellung:aktiviert) Aktiv:aktiv (beendet) seit Do 2017-03- 02 05:36:42 UTC; vor 6s Dokumente:man:systemd-sysv-generator(8) Prozess:24877 ExecStart=/etc/init.d/vncserver start (code=exited, status=0/SUCCESS)Mar 02 05:36:40 bintu systemd[1 ]:Starten von vncserver.service...Mar 02 05:36:40 bintu vncserver[24877]:* Starten von vncserver für Benutzer 'vnc' auf localhost:1...Mar 02 05:36:40 bintu su[24885]:Erfolgreiche su für vnc von rootMar 02 05:36:40 bintu su[24885]:+ ??? root:vncMär 02 05:36:40 bintu su[24885]:pam_unix(su:session):Sitzung für Benutzer vnc geöffnet von (uid=0)Mär 02 05:36:42 bintu vncserver[24877]:Neues 'X' Desktop ist bintu:1Mar 02 05:36:42 bintu vncserver[24877]:Starten von Anwendungen angegeben in /home/vnc/.vnc/xstartupMar 02 05:36:42 bintu vncserver[24877]:Protokolldatei ist /home/vnc/ .vnc/bintu:1.logMar 02 05:36:42 bintu systemd[1]:Started vncserver.service.$ cat ~/.vnc/*.pid1857718731# ps -ef | grep tightvncvnc 24574 1 0 05:32 ? 00:00:00 Xtightvnc :1 -desktop X -auth /home/vnc/.Xauthority -geometry 1024x768 -depth 16 -rfbwait 120000 -rfbauth /home/vnc/.vnc/passwd -rfbport 5901 -fp /usr/share/ fonts/X11/misc/,/usr/share/fonts/X11/Type1/,/usr/share/fonts/X11/75dpi/,/usr/share/fonts/X11/100dpi/ -co /etc/X11/rgbroot 24744 10412 0 05:33 pts/0 00:00:00 grep --color=auto [email protected]:~#Überprüfen Sie die offenen Ports des vnc-Servers. Sie benötigen die richtige Portnummer, wenn Sie sich vom vnc-Client verbinden
# netstat -nlp | grep vnctcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 24574/Xtightvnctcp 0 0 0.0.0.0:6001 0.0.0.0:* LISTEN 24574/Xtightvncunix 2 [ ACC ] STREAM LISTENING 5225386 24574/Xtight/Xv.tight unix/X1Der Vnc-Server kann auch durch direkten Aufruf des Skripts gestartet werden.
# /etc/init.d/vncserver start[ ok ] Starten von vncserver (über systemctl):[email protected]:~#So stoppen Sie vncserver
# Dienst vncserver stoppenInstallieren Sie den vncviewer-Client auf dem Desktop
Jetzt, da wir den VNC-Server mit der GUI-Desktop-Umgebung eingerichtet haben, ist es an der Zeit, einen VNC-Client zu installieren und auf den Remote-Desktop zuzugreifen.
Installieren Sie xtightvncviewer auf Ubuntu.
$ sudo apt-get install xtightvncviewerVerbinden Sie sich nun mit dem vncviewer-Befehl mit dem entfernten vnc-Server.
$ vncviewer -quality 5 -encodings "copyrect tight hextile zlib corre rre raw" -compresslevel 5 IPADDR:5901Wir verwenden Codierungen geringerer Qualität und Komprimierung, um die übertragenen Bilddaten zu komprimieren und schneller zu machen.
Die Verwendung anderer vnc-Viewer wie KRDC könnte langsamer sein.
Ressourcen
Weitere Informationen finden Sie unter diesen nützlichen Links -
http://tightvnc.com/vncviewer.1.htmlhttps://www.digitalocean.com/community/tutorials/how-to-install-and-configure-vnc-on-ubuntu-16-04https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-vnc-on-ubuntu-14-04
https://www.digitalocean.com/community/tutorials /how-to-setup-vnc-for-ubuntu-12