Virtual Network Computing (VNC) je systém na zdieľanie obrazovky, ktorý sa používa na vzdialený prístup ku grafickým používateľským rozhraniam. Využíva protokol vzdialenej vyrovnávacej pamäte snímok (RFB), ktorý umožňuje jednému serveru (na strane používateľa) pripojiť sa k druhej strane (klientovi). VNC je bezpečné, spoľahlivé a funguje na všetkých operačných systémoch.
RealVNC, UltraVNC, Xfce, TightVNC, aby sme spomenuli aspoň niektoré, patria medzi najpopulárnejšie VNC klienty používané v súčasnosti. V zozname dostupných alternatív si môžete slobodne vybrať akékoľvek VNC podľa vlastného uváženia. V tomto návode vás prevedieme krokmi inštalácie a konfigurácie VNC na Ubuntu 20.04. Nainštalujeme Xfce kvôli jeho rýchlosti, ľahkosti a vynikajúcemu výkonu.
Začneme nastavením VNC servera na Ubuntu serveri a vytvorením zabezpečeného pripojenia cez SSH tunel. Nakoniec použijeme klientsky program VNC na našom lokálnom počítači na interakciu so serverom prostredníctvom grafického prostredia pracovnej plochy.
Požiadavky
Na sledovanie tohto návodu budete potrebovať:
-
An Ubuntu 20.04 server s používateľom bez oprávnení root a jednoduchým firewallom (UFW).
-
Lokálny počítač s nainštalovaným VNC klientom. Taktiež VNC klient, ktorého budeme používať, sa pripája cez SSH tunely.
Krok 1 — Inštalácia prostredia pracovnej plochy a VNC servera
Na rozdiel od predchádzajúcich verzií Ubuntu, Ubuntu 20.04 sa nedodáva s predinštalovaným VNC. V prvom kroku nainštalujeme potrebné balíky z oficiálneho repozitára Ubuntu. Predtým, ako budeme pokračovať, aktualizujme existujúce balíky:
|
1 |
sudo apt update |
Teraz nainštalujeme Xfce a balík xfce4-goodies pomocou príkazu:
|
1 |
sudo apt install xfce4 xfce4-goodies |
Počas inštalácie balíka sa zobrazí obrazovka s výzvou na výber predvoleného správcu zobrazenia pre Xfce. Správu ignorujte alebo ju nastavte ako predvolenú a potom stlačte ENTER.
Správca zobrazenia je program, ktorý umožňuje používateľom prihlásiť sa do prostredia pracovnej plochy prostredníctvom grafického rozhrania. V tomto návode použijeme Xfce pri pripájaní s VNC klientom, kde sme prihlásení ako používateľ Ubuntu bez oprávnení root. Výber správcu zobrazenia preto nebude mať na našu inštaláciu žiadny vplyv.
Po inštalácii Xfce nainštalujeme TightVNC server:
|
1 |
sudo apt install tightvncserver |
V ďalšom kroku použite príkaz vncserver na nastavenie prístupového hesla pre VNC a vytvorenie počiatočných konfiguračných súborov. Zadaním nasledujúceho príkazu spustíte inštanciu VNC servera:
|
1 |
vncserver |
Potom nastavte heslo s dĺžkou 6 až 8 znakov a stlačte ENTER. Zobrazí sa výzva:
|
1 2 3 4 5 |
Výstup Na prístup k vašim plochám budete potrebovať heslodesktops. Heslo: Overenie: |
Ak budete chcieť v budúcnosti zmeniť svoje heslo alebo pridať heslo len na čítanie, použite príkaz:
|
1 |
vncpasswd |
Teraz už budete mať vytvorené všetky predvolené konfigurácie pre server a spustený zobrazovací port 5901 ako :1. VNC môže spustiť viacero inštancií na iných zobrazovacích portoch ako :2, :3, pričom :4 odkazuje na port 5902, 5903 a 5904 v tomto poradí:
|
1 2 3 4 5 6 7 8 9 |
Výstup Chcete zadať heslo len na čítanie (y/n)? -only password (y/n)? n xauth: súbor /home/cloudsigma/.Xauthority neexistujenot exist Nová 'X' plocha je your_hostname:1 Vytvára sa predvolený spúšťací skript /home/cloudsigma/.vnc/xstartup Spúšťajú sa aplikácie špecifikované v /home/cloudsigma/.vnc/xstartup Súbor protokolu je /home/cloudsigma/.vnc/your_hostname:1.log |
Váš VNC server je teraz nainštalovaný a úspešne beží. V ďalšom kroku nakonfigurujeme server tak, aby spúšťal Xfce, čím získate prístup cez grafické rozhranie.
Krok 2 — Konfigurácia VNC servera
V domovskom adresári nájdete priečinok .vnc, ktorý obsahuje všetky konfiguračné súbory s názvom startup. Na začiatku tu nájdete spustený štartovací súbor, ktorý sa automaticky vytvoril pri spustení príkazu vncserver v Kroku-1. Štartovací skript sa vytvoril, keď ste v predchádzajúcom kroku spustili príkaz vncserver command in the previous step. However, you will now create your own to launch the Xfce desktop. We will also have to create our own server to launch the Xfce desktop because the VNC configuration will change.
Predtým, ako budeme pokračovať, musíme zastaviť inštanciu VNC servera bežiacu na porte 5901:
|
1 |
vncserver -kill :1 |
Uvidíte nasledujúci výstup:
|
1 2 |
Output Ukončuje sa Xtightvnc proces ID 17648 nano ~/.vnc/xstartup |
Namiesto 17648, môžete dostať iné číslo, čo je v poriadku. Ďalej upravíme súbor xstartup file. Before making any file modifications, let’s back up the original file:
|
1 |
mv ~/.vnc/xstartup ~/.vnc/xstartup.bak |
Ďalej vytvorte nový súbor xstartup a otvorte ho v ľubovoľnom textovom editore. V tomto návode používame nano:
|
1 |
nano ~/.vnc/xstartup |
Po dokončení pridajte do súboru nasledujúce riadky:
|
1 2 3 |
#!/bin/bash xrdb $HOME/.Xresources startxfce4 & |
Vždy, keď spúšťate alebo reštartujete VNC server, tieto príkazy sa vykonajú automaticky. Prvý riadok je Shebang, ktorý informuje systém o interpretovi, ktorému sa má odovzdať súbor ~/.vnc/xstartup na spustenie. Ďalší riadok xrdb $HOME/. Xresources informuje grafické rozhranie VNC, aby načítalo súbor Xresources používateľa servera. Nakoniec posledný riadok požiada server o spustenie prostredia Xfce. Po pridaní týchto riadkov súbor uložte a zatvorte.
Musíme súbor nastaviť ako spustiteľný, aby VNC server mohol použiť nový štartovací súbor:
|
1 |
chmod +x ~/.vnc/xstartup |
Ďalej reštartujte VNC server:
|
1 |
vncserver -localhost |
Teraz tu budete mať pridanú možnosť -localhost. Možnosť localhost viaže VNC server na loopback rozhranie vášho servera, čo umožňuje pripojenia iba z nainštalovaných serverov. Ďalej vytvoríme SSH tunel medzi naším lokálnym počítačom a serverom. Cieľom je pridať ďalšiu vrstvu zabezpečenia pre VNC. Prečo? Pretože prístup budú mať iba tí používatelia, ktorí už majú SSH prístup k serveru.
Uvidíte nasledujúci výstup:
|
1 2 3 4 |
Nový 'X' desktop je your_hostname:1 Spúšťajú sa aplikácie špecifikované v /home/sammy/.vnc/xstartup Logovací súbor je /home/cloudsigma/.vnc/your_hostname:1.log |
Po nastavení konfigurácie sme pripravení pripojiť sa k VNC serveru z nášho lokálneho počítača.
Krok 3 — Bezpečné pripojenie k VNC ploche
Pri pripájaní k serveru VNC nepoužíva zabezpečené protokoly. Preto musíme vytvoriť SSH tunel a požiadať VNC klienta, aby sa pripojil pomocou tohto tunela, namiesto toho, aby sme mu umožnili priame pripojenie.
Na našom lokálnom počítači vytvoríme SSH pripojenie pomocou príkazu ssh, ktorý presmeruje na pripojenie localhost. Na vytvorenie SSH pripojenia použite príkaz v termináli:
|
1 |
ssh -L 59000:localhost:5901 -C -N -l cloudsigma your_server_ip |
Poďme si dešifrovať vyššie uvedený kód:
-
-L 59000:localhost:5901: Prepínač -L určuje, že daný port na lokálnom počítači ( 59000) bude smerovať na daného hostiteľa a port na cieľovom serveri ( localhost:5901). To znamená, že port 5901 na cieľovom serveri bude definovaný ako your_server_ip). Lokálny port, ktorý zadáte, je ľubovoľný. Pokiaľ port už nie je priradený inej službe, môžete ho voľne použiť ako port na presmerovanie pre váš tunel.
-
-C: Povolí kompresiu, čo ďalej pomáha minimalizovať spotrebu zdrojov a zrýchliť výkon.
-
-N: Užitočné pre presmerovanie portov. Toto informuje ssh aby nespúšťal žiadne vzdialené príkazy.
-
-l cloudsigma your_server_ip: Prepínač -l vám umožňuje špecifikovať používateľa, pod ktorým sa chcete prihlásiť po pripojení k serveru.
Vyššie uvedený príkaz je bezpečnejší spôsob nadviazania zabezpečeného pripojenia než len otvorenie firewallu vášho servera na povolenie pripojení k portu 5901 odkiaľkoľvek. Po nadviazaní pripojenia SSH tunel presmeruje obsah z portu 5901 na vašom VNC na port 59000 na vašom lokálnom stroji cez predvolený SSH port; port 22.
Môžete tiež použiť PuTTY na pripojenie k vášmu serveru. Otvorte PuTTY, prejdite na ľavú stranu terminálu PuTTY a nájdite Connection vetvu na pripojenie. Potom rozbaľte SSH vetvu a kliknite na Tunnels. Na Options controlling SSH port forwarding obrazovke, zadajte 59000 ako Source Port a localhost:5901 ako Destination:

Ponechajte všetky možnosti nezmenené, kliknite na Add, a potom na Apply na implementáciu tunela. Po spustení tunela použite VNC klienta na pripojenie k localhost: 59000. Predvolene budete vyzvaní na overenie totožnosti pomocou hesla, ktoré sme vytvorili v Kroku-1. Po pripojení uvidíte predvolenú pracovnú plochu Xfce:

Môžete pristupovať k súborom v domovskom adresári a spravovať ich. Tiež nakonfigurujte svoj VNC server tak, aby bežal ako služba systemd.
Krok 4 — Spustenie VNC ako služby Systemd
Nastavenie VNC servera na spustenie ako služby systemd umožňuje správu servera. Môžete ho spustiť, zastaviť, reštartovať alebo ukončiť podľa vašich potrieb a pohodlia. Pri každom spustení servera môžete použiť príkazy správy systemd na overenie, či je server ZAPNUTÝ alebo VYPNUTÝ.
Najprv vytvoríme nový súbor jednotky (unit file) na špecifikovanie portu displeja VNC, ktorý chceme použiť pri správe služieb. Definujte súbor jednotky:
|
1 |
sudo nano /etc/systemd/system/vncserver@.service |
Na konci názvu súboru nájdete symbol @, ktorý vám umožňuje odovzdať argument pre použitie konfigurácie služby.
Ďalej pridajte do súboru jednotky nasledujúce riadky. Premenujte User, Group, WorkingDirectory, a používateľské meno v hodnote PIDFILE:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[Unit] Description=Spustiť TightVNC server pri štarte After=syslog.target network.target [Service] Type=forking User=cloudsigma Group=cloudsigma WorkingDirectory=/home/cloudsigma PIDFile=/home/cloudsigma/.vnc/%H:%i.pid ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost :%i ExecStop=/usr/bin/vncserver -kill :%i [Install] WantedBy=multi-user.target |
Ak už VNC beží, príkaz ExecStartPre ho zastaví. Príkaz ExecStart spustí VNC a nastaví farebnú hĺbku na 24-bitové farby s rozlíšením 1280×800. Tieto možnosti spustenia môžete upraviť podľa svojich požiadaviek. Upozorňujeme tiež, že príkaz ExecStart opäť obsahuje možnosť -localhost. Po dokončení uložte a zatvorte súbor jednotky.
Ďalej načítajte nový súbor jednotky do systému:
|
1 |
sudo sudo systemctl daemon-reload |
Zapnite ZAPNUTÉ pre súbor jednotky:
|
1 |
sudo systemctl enable vncserver@1.service |
Číslo 1 nasledujúce po @ znak označuje, nad ktorým číslom displeja sa má služba zobraziť. V našom prípade je to predvolené :1 ako bolo diskutované v Krok-2. Ak VNC stále beží, môžete zastaviť aktuálnu inštanciu VNC servera pomocou kill príkazu:
|
1 |
vncserver -kill :1 |
Potom ho spustite tak, ako by ste spustili akúkoľvek inú službu systemd:
|
1 |
sudo systemctl start vncserver@1 |
Môžete overiť, že sa spustil, pomocou tohto príkazu:
|
1 |
sudo systemctl status vncserver@1 |
Uvidíte výstup:
|
1 2 3 4 5 6 7 8 |
Výstup vncserver@1.služba - Spustiť TightVNC server pri štarte Načítané: načítané (/etc/systemd/system/vncserver@.služba; povolené; vendor preset: povolené) Aktívne: aktívne (beží) od Št 2020-05-07 17:23:50 UTC; 6s pred Proces: 39768 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (code=exited, status=2) Proces: 39772 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :1 (code=exited, status=0/SUCCESS) Hlavný PID: 39795 (Xtightvnc) ... |
Váš VNC server je teraz pripravený na použitie kedykoľvek sa váš server spustí, a môžete ho spravovať pomocou systemctl príkazov ako akúkoľvek inú službu systemd. Na strane klienta však neuvidíte žiadny rozdiel. Ak sa chcete znova pripojiť, spustite svoj SSH tunel pomocou:
|
1 |
ssh -L 59000:localhost:5901 -C -N -l cloudsigma your_server_ip |
Môžete sa znova pripojiť pomocou svojho VNC klienta k localhost:59000 s vaším serverom.
Záver
Nastavenie VNC servera sa môže spočiatku zdať náročné, najmä keď sa pokúšate pripojiť k novému počítaču. Keď však nadviažete spoľahlivé pripojenie, práca so vzdialeným počítačom bude zábavná a vzrušujúca. So zabezpečeným VNC serverom spusteným a bežiacim na vašom serveri Ubuntu 20.04 môžete jednoducho spravovať svoje zdroje, súbory, softvér a nastavenia pomocou používateľsky prívetivého grafického rozhrania. Používanie nadmernej šírky pásma je snáď jedinou nevýhodou používania VNC. Môžete to prekonať použitím nízkeho rozlíšenia a obrazoviek v odtieňoch sivej pre rýchlejší prenos.
Príjemnú prácu s počítačom!
Komentáre
Zatiaľ žiadne komentáre. Buďte prvý.