Spuštění plochy na vzdáleném serveru
Obvykle byste při práci na vzdáleném linuxovém serveru používali terminál ssh. Ale mohou nastat situace, kdy budete potřebovat spustit aplikaci gui na serveru a nechat ji běžet docela dlouho.
Nedávno jsem musel udělat něco podobného, a proto jsem nastavil server Ubuntu s desktopem a přistupoval k němu přes VNC.
Myšlenka je jednoduchá. Nainstalujte na server libovolné desktopové prostředí dle vašeho výběru. V tomto tutoriálu budeme používat Xfce, protože má lehkou stopu ve srovnání s většími, jako je Gnome a KDE.
Poté použijte vnc server ke spuštění desktopového prostředí a vytvořte relaci X display, ke které budeme přistupovat z našeho místního stolního počítače prostřednictvím vnc klienta.
Instalace desktopového prostředí a VNC serveru
Xfce je lehký desktop a ideální pro použití na vzdáleném serveru. Nejprve nainstalujte balíčky xfce a server tightvnc. Před samotnou instalací by bylo dobré aktualizovat mezipaměť balíčku.
sudo apt-get updatesudo apt-get install xfce4 xfce4-goodies tightvncserver
Všimněte si, že se tím pouze nainstalují balíčky a nic se nespustí. Vncserver spustíme se specifickými nastaveními sami, později v této příručce.
Pokud se proces dpkg neočekávaně ukončí, možná budete muset spustit následující příkaz -
# sudo dpkg --configure -a
Vytvořte nového uživatele pro vnc
Další věcí, kterou musíte udělat, je vytvořit unixového uživatele, který bude použit během relací vnc. Uživatelské jméno může být jakékoli. Použijte příkaz adduser.
# adduser mikePřidání uživatele `mike' ...Přidání nové skupiny `mike' (1001) ...Přidání nového uživatele `mike' (1001) se skupinou `mike' ...Vytvoření domovského adresáře `/home/mike ' ...Kopírování souborů z `/etc/skel' ...Zadejte nové UNIXové heslo:Zopakujte nové UNIXové heslo:passwd:heslo bylo úspěšně aktualizováno Změna informací o uživateli pro mikeZadejte novou hodnotu nebo stiskněte ENTER pro výchozí Celé jméno [] :Číslo pokoje []:Telefon do zaměstnání []:Telefon domů []:Jiné []:Jsou informace správné? [A/n]#
Vncserver spustí desktopové prostředí s tímto unixovým uživatelem. To znamená, že při práci na vzdálené ploše budete tímto uživatelem
Nastavte "heslo vnc" pro uživatele
Server vnc udržuje samostatné heslo, které se používá k přihlášení k serveru vnc prostřednictvím klientů vnc. Toto heslo se liší od hesla uživatele unixu. Konfiguruje se pomocí příkazu vncpasswd.
Nejprve se přepněte na uživatele „mike“, který byl vytvořen v předchozím kroku, a nastavte heslo serveru vnc.
# su - mike
Dále použijte příkaz vncpasswd
$ vncpasswdUsing password file /home/mike/.vnc/passwdVNC adresář /home/mike/.vnc neexistuje, vytváří se.Password:Verify:Chcete zadat heslo pouze pro prohlížení (y/n)? [email protected]:~$
Všimněte si, že soubor passwd neexistoval a byl vytvořen poprvé v tomto kroku.
Pokud jste již dříve spustili příkaz vncserver, vytvořil by soubory. Při prvním spuštění vncserver vytvoří výchozí spouštěcí skript
$ vncserverPro přístup k vašim desktopům budete vyžadovat heslo.Heslo:Heslo je příliš krátké[email protected]:~$ vncserverPro přístup k vašim desktopům budete vyžadovat heslo.Heslo:Verify:Chcete zadat heslo pouze pro prohlížení (y/n)? nNová plocha 'X' je desktop:1Vytváří se výchozí spouštěcí skript /home/enlightened/.vnc/xstartupSpouštění aplikací specifikovaných v souboru /home/enlightened/.vnc/xstartupLog je /home/enlightened/.vnc/desktop:1.logNemusíme však spouštět příkaz vncserver. Spouští se automaticky pomocí spouštěcích skriptů.
Vytvořte skript xstartup
Dalším důležitým souborem je skript xstartup. Obsahuje pokyny, které X aplikací spustit. Desktopové prostředí je X aplikace, kterou musíme spustit.
Nejprve vytvořte zálohu souboru, pokud již existuje
mv ~/.vnc/xstartup ~/.vnc/xstartup.bakNyní jej upravte pomocí nano
[email protected]:~$ nano .vnc/xstartupPoznámka – Toto je v domovském adresáři uživatele vnc, to je /home/mike/.vnc/xstartup
Zadejte následující řádky do skriptu xstartup
#!/bin/bashxrdb $HOME/.Xresourcesstartxfce4 &Příkaz startxfce4 spustí plochu xfce. Uložte soubor a zavřete jej.
Udělejte soubor xstartup spustitelný. To je nezbytné, aby vncserver mohl spustit tento soubor.
$ chmod +x ~/.vnc/xstartupVytvořit soubor služby vnc
Dalším krokem je vytvoření souboru služby vnc, abychom mohli spustit server vnc pomocí příkazu service a nemuseli pokaždé spouštět příkaz vncserver.
Ujistěte se, že jste do proměnné USER zadali správné uživatelské jméno. Toto je uživatel, kterého server vnc použije ke spuštění relace plochy.
[email protected]:~# sudo nano /etc/init.d/vncserverVložte následující skript
#!/bin/bashPATH="$PATH:/usr/bin/"export USER="mike"DISPLAY="1"DEPTH="16"GEOMETRY="1024x768"OPTIONS="-hloubka ${DEPTH} -geometrie ${GEOMETRY} :${DISPLAY}". /lib/lsb/init-functionscase "$1" instart)log_action_begin_msg "Spouštění vncserveru pro uživatele '${USER}' na localhost:${DISPLAY}"su ${USER} -c "/usr/bin/vncserver ${OPTIONS }";;stop)log_action_begin_msg "Zastavuji vncserver pro uživatele '${USER}' na localhost:${DISPLAY}"su ${USER} -c "/usr/bin/vncserver -kill :${DISPLAY}";; restart)$0 stop$0 start;;esacexit 0Uložte soubor a zavřete jej. Udělejte jej spustitelný
# chmod +x /etc/init.d/vncserverSpusťte službu
Nyní je vše přečteno. Je čas spustit vncserver a otestovat náš krok.
Nejprve znovu načtěte systemctl, aby mohl používat spouštěcí skript vncserver.
systemctl daemon-reloadNyní spusťte vncserver. Spustí server na portu 5901
# spuštění služby vncserverZkontrolujte, zda běží
[email protected]:~# stav služby vncserver● vncserver.service Načteno:načteno (/etc/init.d/vncserver; špatné; přednastaveno dodavatelem:povoleno) Aktivní:aktivní (ukončeno) od čt 2017-03- 02 05:36:42 UTC; Před 6 s Dokumenty:man:systemd-sysv-generator(8) Proces:24877 ExecStart=/etc/init.d/vncserver start (code=exited, status=0/SUCCESS)Mar 02 05:36:40 bintu systemd[1 ]:Spouštění vncserver.service...Mar 02 05:36:40 bintu vncserver[24877]:* Spouštění vncserveru pro uživatele 'vnc' na localhost:1...Mar 02 05:36:40 bintu su[24885]:Úspěšné su pro vnc od rootMar 02 05:36:40 bintu su[24885]:+ ??? root:vncMar 02 05:36:40 bintu su[24885]:pam_unix(su:session):relace otevřena pro uživatele vnc (uid=0)Mar 02 05:36:42 bintu vncserver[24877]:Nové 'X' desktop je bintu:1Mar 02 05:36:42 bintu vncserver[24877]:Spouštění aplikací uvedených v /home/vnc/.vnc/xstartupMar 02 05:36:42 bintu vncserver[24877]:Soubor protokolu je /home/vnc/ .vnc/bintu:1.logMar 02 05:36:42 bintu systemd[1]:Spuštěna služba vncserver.$ cat ~/.vnc/*.pid1857718731# ps -ef | grep tightvncvnc 24574 1 0 05:32 ? 00:00:00 Xtightvnc :1 -desktop X -auth /home/vnc/.Xauthority -geometrie 1024x768 -hloubka 16 -rfbwait 120000 -rfbauth /home/vnc/.vnc/passwd -1/ff /usrsha900 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]:~#Zkontrolujte otevřené porty serveru vnc. Při připojování z klienta vnc
potřebujete správné číslo portu# netstat -nlp | grep vnctcp 0 0 0.0.0.0:5901 0.0.0.0:* POSLECHNUTÍ 24574/Xtightvnctcp 0 0 0.0.0.0:6001 0.0.0.0:* POSLECH 24574/Xtight 24574/XtightCC245/LISTXtight 24574/Xtightvnc5/17tightvncunix/17tightvncunix LIST 7tight 24574/Xtightvnc5LIST/7vtightvnc5LIST unix/X1Server Vnc lze také spustit přímým voláním skriptu.
# /etc/init.d/vncserver start[ ok ] Spouštění vncserveru (přes systemctl):[email protected]:~#Chcete-li zastavit vncserver
# zastavení služby vncserverNainstalujte klienta vncviewer na plochu
Nyní, když máme vnc server v provozu s prostředím gui desktop, je čas nainstalovat vnc klienta a přistupovat ke vzdálené ploše.
Nainstalujte xtightvncviewer na Ubuntu.
$ sudo apt-get install xtightvncviewerNyní se připojte ke vzdálenému serveru vnc pomocí příkazu vncviewer.
$ vncviewer -kvalita 5 -kódování "copyrect tight hextile zlib corre rre raw" -compresslevel 5 IPADDR:5901Ke kompresi přenášených obrazových dat a zrychlení používáme kódování nižší kvality a komprese.
Používání jiných prohlížečů vnc, jako je KRDC, může být pomalejší.
Zdroje
Pro další čtení se podívejte na tyto užitečné odkazy -
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
Jak automaticky připojit oddíly při spuštění na Kubuntu Jak sledovat teplotu nvidia gpu na Kubuntu 16.10Ubuntu