26.X.2004 Zastosowanie programu VNC do zdalnej administracji komputerem Autor: Dawid Materna
Wstęp W administracji systemami operacyjnymi często zachodzi potrzeba do działania na Pulpicie zarządzanego komputera, w trybie graficvznym. Dzięki temu administrator może instalować, konfigurować, rozwiązywać problemy zdalnie, z poziomu swojego komputera, za pośrednictwem dowolnego połączenia sieciowego. W tym celu powstało kilka programów, które to umożliwiają, jak Symantec pcanywhere, czy programy oparte na VNC. W niniejszym dokumencie postaram się omówić podstawy pracy z programem VNC, jego zalety, wady i przykłady zastosowania. Instalacja w środowisku Microsoft Windows i GNU/Linux Program VNC, jako że jest rozpowszechniany na licencji GNU GPL, czyli jest darmowy i posiada otwarty kod źródłowy, doczekał się wielu odmian. Dla wersji Windowsowej oraz dla Linuksa istnieją RealVNC, TwightVNC, Ultr@VNC. Wszystkie te programy posiadają to samo jądro, różnią się jedynie dodatkowymi możliwościami. Instalując VNC na komputerze, instaluje się najczęściej serwer VNC oraz klienta VNC. Przykładowo instalacja RealVNC dla Windows sprowadza się do pobrania pliku setup.exe ze strony producenta tego programu i zainstalowania gotowej wersji. Dla Linuksa najwygodniej jest zainstalować z gotowego pakietu RPM, jednak obecnie większość dystrybucji posiada serwer i graficznego klienta zainstalowane domyślnie Na przykład klient VNC wraz z graficzną nakładką na serwer VNC jest dostarczany jako jeden z programów KDE. Rys. 1 Klient VNC i RDP jako program środowiska KDE Można też pobrać źródła, np. ze strony twórców programu: http://www.uk.research.att.com/archive/vnc Serwer VNC Po zainstalowaniu serwera i klienta, na wybranej maszynie uruchamiamy serwer VNC, przyjmujący połączenia. Ten komputer będzie udostępniał swój Pulpit innym. Pulpit może udostępniać komputer praktycznie z dowolnym systemem operacyjnym, ze względu na niesamowitą przenośność VNC, pod warunkiem oczywiście, że udostępnia on jakieś środowisko graficzne.
W Linuksie wystarczy wpisać polecenie vncserver, uprzednio jednak należy poleceniem vncpasswd ustanowić hasło dla połączenia. W Windows wystarczy wybrać odpowiedni program z menu Start, czyli np. aby uruchomić serwer RealVNC należy kliknąć na Start VNC Service, lub Register VNC Service, aby serwer VNC uruchamiany był przy każdym starcie systemu (Win2000, WinXP) rys2. Uruchomienie serwera VNC w Windows Po tych czynnościach w systemowym tray'u zobaczymy ikonkę działającego VNC. rys. 3. TwightVNC rys. 4. RealVNC W systemie Linux każdy użytkownik, o ile administrator tego nie zabronił, może uruchomić dowolną ilość serwrerów VNC. Każdy oddzielnie uruchomiony serwer tworzy tzw. ekran. Ekrany numeruje się od 0. Łącząc się z serwerem w sieci, na którym działa VNC Server, podajemy adres hosta oraz po ':' numer ekranu, na który chcemy się zalogować. Serwer każdego użytkownika ma oddzielne hasło, niezależne od hasła systemowego, a sesja użytkownika ma takie prawa, jak tenże użytkownik. Przykładową sesję,w której uruchomiono dwa serwery VNC na jednym fizycznym komputerze i otrzymano dwa ekrany prezentuje ponizszy zrzut ekranu: rys. 5 Konsola z uruchomionymi dwoma serwerami VNC (Linux)
Przykładowa zawartość pliku konfiguracyjnego wygląda następująco: #!/bin/sh unset SESSION_MANAGER exec /etc/x11/xinit/xinitrc [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources xsetroot -solid grey vncconfig -iconic & xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & twm & Server VNC działa domyślnie na portach TCP 5900 5999 oraz 5800 5899. Taki podwójny zakres wynika z tego, że domyślnie uruchomione sa niejako dwa serwery VNC jednocześnie dla jednego użytkownika, jeden dla połączeń ze zwykłego klienta VNC, a drugi dla klienta Javy, co jest bardzo ciekawą i użyteczną opcją. Aby z niego skorzystać, wystarczy posiadać przeglądarkę internetową z zainstalowaną Javą i wpisać następujący adres: http://adres_hosta_z_serverem_vnc : numer portu, gdzie numerem portu jest 5800 + numer ekranu, czyli dla ekranu 2 adres to: http://adres_hosta_z_serverem_vnc : 5802 rys. 6. Klient RealVNC napisany w Javie
Klient VNC Mając w sieci działający serwer VNC, niezaleznie czy na systemie Linuks czy Windows, możemy uruchomić klienta VNC, również na dowolnym niemalże systemie operacyjnym., wpisując w polę adresu np.: kni.prz.rzeszow.pl:1 rys. 7 Klient RealVNC rys. 8. Opcje klienta RealVNC rys. 9. Opcje klienta TwightVNC Wówczas, zależnie od opcji ustawionych wcześniej, otrzymujemy okno zawierające zdalny Pulpit komputera, na którym zainstalowany jest serwer. Zakładając na przykład, że serwer VNC jest zainstalowany na serwerze Linuksowym, na którym konto posiada 50 użytkowników, to każdy z nich może uruchomić własny serwer VNC i zalogować się na własny, niezależny od innych użytkowników Pulpit. Może również uruchomić więcej niż jeden serwer.
Także na komputerze, z którejgo się łączymy, możemy jednocześnie pracować na kilku zdalnych Pulpitach. Na poniższym zrzucie ekranu zaprezentowana jest praca na trzech różnych odległych komputerach, jeden pracujący pod kontrolą Linuksa, dwa pod Windows. Wszystkie klienty to klienty RealVNC uruchomione w KDE (Linuksa). rys. 10. Praca na trzech przechwyconych przez VNC Pulpitach