VNC Server na CentOS

Obvykle každý deň keď ukončíme prácu, tak aj vypneme počítač. Na druhý deň ráno pri zapnutí počítača sa obvykle chceme vrátiť k tomu, čo sme mali rozrobené. Pri vypnutí počítača sa však všetky aplikácie ukončili a musíme všetko spúšťať znova. Prípadne chcem mať prístup k svojmu desktopu z ktoréhokoľvek počítača. Ako zabezpečiť, aby ste po zapnutí počítača mali všetko práve tak, ako ste predošlý deň zanechali? Na túto otázku je jednoduchá odpoveď: použite Virtual Network Computing: VNC.

Svoj desktop nechávam pustený na inom počítači, dokonca v inej budove. Počítač, za ktorým sedím, má spustený VNC viewer a v ňom je zobrazený môj desktop. Aplikácie na tomto desktope sú ale spustené na VNC serveri. Takéto sedenie obvykle pozostáva z počítača, na ktorom beží VNC server (čo je vlastne typ virtuálneho frame buffera – spravuje obraz monitora bez toho, aby ho na monitor aj skutočne posielal). Na ďalšom počítači zasa má spusteného klienta – VNC viewer, ktorý preberá obraz z virtuálneho frame buffera VNC servera a zobrazuje ho na reálnom monitore.

Konfigurácia perzistentného desktopu

V prvom rade sa uistíme, že máme nainštalovaný na serveri balík vnc-server. Takže sa prihlásime na konzolu servera a napíšeme nasledovný príkaz:

[user@ns ~]$ yum list | grep vnc-server
vnc-server.i386 4.1.2-9.el5 installed

Pokiaľ vidíte na poslednom mieste niečo iné ako installed je potrebé VNC server doinštalovať:

[user@ns ~]$ sudo yum install vnc-server

Pokiaľ máme VNC server nainštalovaný, musíme nastaviť heslo pre VNC server. Na príkazovom riadku spustite príkaz vncpasswd. Toto je nutné, pretože VNC servis sa bez hesla nespustí.

Teraz upravíme konfiguračný súbor VNC servera /etc/sysconfig/vncservers – tu sa pridajú užívatelia, ktorí majú mať prístup na VNC server. Súbor by mal vyzerať asi takto:

# The VNCSERVERS variable is a list of display:user pairs.
#
# Uncomment the lines below to start a VNC server on display :2
# as my 'myusername' (adjust this to your own). You will also
# need to set a VNC password; run 'man vncpasswd' to see how
# to do that.
#
# DO NOT RUN THIS SERVICE if your local area network is
# untrusted! For a secure way of using VNC, see
# .
# Use "-nolisten tcp" to prevent X connections to your VNC server via TCP.
# Use "-nohttpd" to prevent web-based VNC clients connecting.
# Use "-localhost" to prevent remote VNC clients connecting except when
# doing so through a secure tunnel. See the "-via" option in the
# `man vncviewer' manual page.
# VNCSERVERS="2:myusername"
# VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -nohttpd -localhost"

Na koniec súboru pridáme užívateľov, ktorí budú mať prístup. Formát je:

VNCSERVERS="N:user"

Kde N je číslo displeja na ktorom bude VNC server bežať a user je užívateľský účet, pod ktorým bude bežať. Užívateľov a displejov môže byť špecifikovaných viac na riadku, ale musia byť oddelení medzerami. Príklad:

VNCSERVERS="1:janko 2:jozko"

Pre odlišné rozlíšenie obrazovky pre každého užívateľa ešte môžete pridať nasledovné riadky:

# janko VNC options
VNCSERVERARGS[1]="-geometry 1024x768"
# jozko VNC options
VNCSERVERARGS[2]="-geometry 1280x1024"

POZOR! Ak máte spustený X Window, displej 0 nemôže byť použitý pre VNC server, lebo už je použitý pre X Window.

Pre každého špecifikovaného užívateľa musí byť nastavené aj heslo. VNC heslá sú úplne niečo iné ako systémové heslá. Každý užívateľ môže nastaviť svoje heslo pre VNC spustením príkazu vncpasswd.

Defaultne sa VNC štartuje s jednoduchým window managerom (twm) a terminálom. Ak chcete mať plné prostredie, musíte vytvoriť súbor ~username/.vnc/xstartup a vložiť nasledujúce riadky:

#!/bin/bash
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc

Nezabudnite následne nastaviť súbor na spustiteľný:

[user@ns ~]$ chmod 755 ~username/.vnc/xstartup

Teraz aktivujeme službu VNC server, aby sa nám automaticky spúšťala po štarte:

[user@ns ~]$ sudo /sbin/chkconfig vncserver on

Overíme správnosť:

[user@ns ~]$ sudo /sbin/chkconfig --list vncserver
vncserver 0:off 1:off 2:on 3:on 4:on 5:on 6:off

A ešte spustíme službu:

[user@ns ~]$ sudo /sbin/service vncserver start

That’s all, folks… ;)

3 komentáre k “VNC Server na CentOS”

  1. Ja len doplnim, ze defaultny ~/.vnc/xstartup ma na poslednom riadku

    twm &

    Tento riadok staci prepisat na

    xfce4-session &

    alebo podobne, podla pouzivaneho GUI (gnome , kde) , restartovat vncserver a hotovo.

  2. dobry ja som do tohto vnc uplne nezasveteny aj ked by som chcel z priatelkou zdielat plochu ked nieco potrebuje neciem ako to mam nastavit ked sa do toho nerozumiem a z vasich vysvetleni nevidem neda sa to nejako polopate vysvetlit alebo nazorne obrazkamy znazornit? dakujem

    1. Hm, ja som si myslel, že práve tento článok je napísaný veľmi jasne a zrozumiteľne. A to priamo pre CentOS. Možno tam chýba informácia, že vám samozrejme treba aj VNC klient – t.j. program, ktorý vám zobrazí na vašom počítači obrazovku počítača vašej priateľky. Tento program sa volá vncviewer. Ťažisková otázka ale je – používa vaša priateľka na počítači ako operačný systém CentOS, resp. RedHat? Pokiaľ nie (a dovolím si predpokladať, že nie) tak musíte hľadať na inom fóre, alebo si počkať, či nenapíšem niečo o VNC na Windows… :)

Napísať odpoveď pre Lemon Zrušiť odpoveď

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *