strona główna




W ostatnim numerze CYBER-a zamieściliśmy opis kilku programów, służących do zdalnego dostępu w środowisku Windows. Wielu jednak potrzebuje narzędzia bardziej uniwersalnego. Czy można uzyskać dostęp do PowerMaca z komputera pracującego w systemie FreeBSD albo do serwera opartego na Windows NT z Amigi? Tak. Rozwiązaniem jest VNC - i to oferowany bezpłatnie.

VNC, czyli Virtual Network Computing, służy do dostarczania do komputera lokalnego ekranu zdalnego komputera pracującego z użyciem interfejsu graficznego (GUI, czyli "okienek"). Wydaje się, że to niewiele, lecz liczne usługi zawarte w takich pakietach, jak Carbon Copy 32, ReachOut czy pcANYWHERE32 są stosowane raczej rzadko. Potrzebowałem narzędzia do zdalnej pracy na odległych stacjach. Inne opcje, takie jak dostęp do plików, możliwości dodzwaniania się do stacji czy prowadzenia rozmowy (chat) poprzez Sieć, były mniej istotne. Zastępowałem je narzędziami nie tylko lepszymi, ale i dostępnymi bez zbędnych opłat licencyjnych.

Na każdy system...

Pakiet składa się z dwu części: serwera (do tworzenia obrazu w formie nadającej się do transmisji) i klienta (do odbioru owego przekazu). Obecnie dostępne są serwery działające na Win32 (MS Windows 95/98, MS Windows NT 4.0/3.5.1), X11 (praktycznie wszystkie Unixy i systemy spełniające podstawowe standardy POSIX, czyli SCO, Solaris, FreeBSD, Linux, AIX, OS/2, Windows NT z użyciem podsystemu POSIX) oraz rozwijany na bieżąco serwer dla PowerPC Macintosh. Klientów jest wiele, są one dostępne dla wszystkich platform, na które napisano serwery (Win32, X11, MacOS pracujące nie tylko na PowerPC). Są także programy klienckie napisane w Javie (używające prostego serwera HTTP) oraz wersje dla systemów typu PDA, takie jak MS Windows CE lub PalmPilot czy też jednodyskietkowa dystrybucja Linuxa o nazwie lods. Nie zapomniano również o stosunkowo nowym systemie, jakim jest BeOS.

... i na każdą kieszeń

Zarówno liczba obsługiwanych platform, jak i spore zaangażowanie użytkowników w rozwój tego narzędzia mają korzenie w liberalnym sposobie licencjonowania. VNC oferowane jest na GNU Public Licence, co oznacza, że dostępne (m.in. do pełnej modyfikacji) muszą być źródła aplikacji. Dzięki możliwości ingerencji w źródła programu administrator może nie tylko zapoznać się bezpośrednio ze sposobem działania programu, ale i starać się dostosować program do swoich (nie przewidzianych przez autorów programu) potrzeb. Najczęściej jest to przeniesienie programu do innego niż planowany systemu operacyjnego. W ten sposób powstały wersje klienta dla BeOS, Amigi, MS-DOS ze stosem TCP/IP czy Linuxa na konsoli (bez środowiska graficznego), później linuxowa wersja ,,wolno stojąca'' pracująca z wykorzystaniem jednej dyskietki. Inną kategorią modyfikacji kodów źródłowych są poprawiające jakość działania, np. szyfrowanie transmisji w kanale SSL, lub ułatwienia związane z zapewnieniem działania VNC poprzez firewalle. Dostępność źródeł (w równie dużym stopniu co bezpłatność oprogramowania) sprawia, że jest to bezpieczna inwestycja. Nawet jeśli firma wytwarzająca dane oprogramowanie zbankrutuje lub zostanie przejęta przez inną firmę, możliwy będzie jego dalszy rozwój. (Tak stało się w przypadku dotychczasowego twórcy VNC, czyli Olivetti & Oracle Research Lab. Mimo przejęcia go przez europejskie laboratoria AT&T, prace nad VNC będą kontynuowane.)

Instalacja

Zobacz
* VNC @ AT&T Research - http://www.uk.research.att.com/vnc/
* Teleport - unixowy protoplasta VNC http://www.uk.research.att.com/teleport/ LODS - jednodyskietkowa dystrybucja Linuxa z VNC http://www.stuttgart.netsurf.de/~khk/lods.html
* VNC na Politechnice Gdańskiej (w jęz. polskim) - http://www.pg.gda.pl/OI/vnc/
* Krzystof Cegliński "Zdalny dostęp w Windows" [w:] CYBER 1/99 str. 40-43

VNC to niewielki program. Zestaw klient+serwer zajmuje 300 KB w wersji dla Win32, 600 KB w wersji dla Linuxa/X11.

W wersji X11 serwer VNC (oparty na XFree86) umożliwia zdalną pracę w sposób podobny do kosztownych X-serwerów dla Win32. Należy nawiązać połączenie z komputerem unixowym (choćby przy użyciu programu telnet.exe) i uruchomić tam program vncserver :1 (:1 oznacza w tym przypadku drugi remote display X Window System - należy dodawać je stosownie do potrzeb; gdy go nie zostanie podany, będzie przydzielony pierwszy wolny.) Przy pierwszym uruchomieniu serwera przez danego użytkownika zostanie on spytany o hasło dostępu. Powstanie też plik $HOME/.vnc/xstartup, zawierający polecenia wykonywane po uruchomieniu serwera.

Od tego momentu na ekranie :1 (i odpowiednio na portach 5901 w przypadku dostępu bezpośredniego i 5801 w przypadku połączenia za pomocą przeglądarki WWW) naszego komputera unixowego czeka na połączenia klientów serwer udostępniający pulpit po wpisaniu hasła dla użytkownika ziembor.

Od tego momentu można się zalogować na port 5901 serwera (przy użyciu typowego klienta), bądź na port 5801 (jeśli używamy klienta, korzystającego z przeglądarki WWW). Po podaniu hasła, będziemy mogli pracować na zdalnym pulpicie.

Analogiczne działania mogą przeprowadzić inni użytkownicy w ramach swoich uprawnień systemowych (także każdy będzie miał własne, niezależne środowisko). Należy jedynie spowodować, by użytkownicy kończyli swe sesje przez vncserver -kill :nr_ekranu.

W przypadku serwera przeznaczonego dla Windows 95 lub Windows NT postępowanie jest podobne. Najpierw należy rozpakować archiwum z programem instalacyjnym i uruchomić setup.exe. Wtedy są instalowane dwa programy, dostępne w menu Start -> Programs -> VNC. WinVNC.exe pełni funkcje serwera, zaś vncviewer.exe jest samodzielnym klientem. Aby rozpocząć działanie serwera, wystarczy uruchomić WinVNC.exe i wpisać hasło. Niestety, VNC w wersji Win32 nie korzysta z systemowej bazy danych użytkowników, podobnie jak nie może przekształcić systemu w wielodostępny. Użytkownik siedzący bezpośrednio przy komputerze z uruchomionym serwerem, tak jak użytkownik zdalny, działający przez VNC, będą "walczyć" ze sobą o zasoby - kursor myszki, zawartość ekranu. Nie jest to sytuacja godna pozazdroszczenia (do tworzenia systemów wielodostępnych w architekturze Win32 służy znacznie droższy i bardziej wymagający MS Windows NT Terminal Server Edition). Serwer VNC dla Win32 zwykle wykorzystuje Windows NT nie przeznaczonych do pracy bezpośredniej (przez pracę bezpośrednią rozumiem korzystanie z klawiatury, myszki i monitora podpiętych do danego komputera).

Po skonfigurowaniu serwera, można użyć klientów. Uruchamiamy vncview, odpowiadamy na pytanie, z jakim komputerem ma być nawiązane połączenie, z którym jego ekranem (liczba po dwukropku), podajemy hasło i już możemy pracować na zdalnej maszynie.

Korzystając z przeglądarki WWW, należy podać pełny URL komputera wraz z odpowiednim numerem portu (5800 + numer ekranu) np. http://wariat.domek.org.pl:5801/. Po wprowadzeniu hasła, można natychmiast rozpocząć pracę.

W kliencie nie jest zachowywany stan systemu. Oznacza to, że możemy opuścić komputer, przy którym pracowaliśmy, wykorzystując VNC, przejść do innego komputera pracującego w sieci TCP/IP i odnowić połączenie, aby kontynuować działania od miejsca, w którym zakończyliśmy zadanie. Dla serwera VNC aplikacje nadal są aktywne.

VNC w praniu

Podczas prawie rocznej eksploatacji VNC używałem go w różnych sytuacjach, jako:
* bezpłatny substytut X serwera dla Win32,
* narzędzie zdanego dostępu do serwerów (kilkakrotnie dostawałem się na taki serwer po łączu komutowanym, przez Internet z drugiego końca Polski, przy czym szybkość modemu wynosiła 14,4 kB/s - mimo to udało się, z pewnym trudem, pracować),
* narzędzie wspomagające help-desk (przechwytywanie zdalnego ekranu w komputerze użytkownika, zgłaszającego problemy).

Ogólnie praca z tym narzędziem jest zadowalająca. Jest wprawdzie kilka niedociągnięć, np. kłopoty z powrotem z pełnoekranowej sesji MS-DOS/NVR w Windows NT lub brak szyfrowania i kompresji całości transmisji, lecz opcje te są w trakcie opracowywania. VNC w stopniu zadowalającym realizuje podstawowe zadania - działa z każdego miejsca, zapewniając możliwości administrowania siecią.

Ziemek Borowski


   
©MAGAZYN CYBER IDG Poland SA