Download: KnowHow_vnc
Transkrypt
Download: KnowHow_vnc
Zdalny dostęp KNOW HOW VNC – Virtual Network Computing Weź pulpit ze sobą Pomysł na zdalne przesyłanie ekranu aplikacji nie jest ani nowy, ani odkrywczy. Na dodatek VNC to produkt, który ma swoje lata i całkiem sporą kolekcję mniej czy bardziej udanych klonów. Oryginał rodził się całkiem zwyczajnie jak na obecne czasy – nie w garażu, a w laboratorium uniwersyteckim. ARTUR GRÓNIAK N a dodatek pierwowzorem systemu był produkt sprzętowy będący rozwinięciem technologii cienkiego klienta o nazwie Videotile. Zainteresowanym polecam oficjalną stronę tego projektu [1]. Jakie są najważniejsze cechy tej technologii? Serwer zarządza pełnym ekranem roboczym – dla Linuksa jest to ekran wirtualny nie powiązany z żadnym urządzeniem fizycznym, a w przypadku Windowsa przesyłany jest ekran systemowy – aplikacje pracują całkowicie po stronie serwera. Klient otrzymuje jedynie bitmapę opisującą aktualny wygląd ekranu. Dzięki takiemu podejściu wymagania stawiane „terminalowi” są minimalne (ten tekst piszę np. w OpenOffice na komputerze 486DX2-66 z 12MB RAM, używając xvncviewer). Istnieją natywne wersje klientów VNC pod prawie każdy system operacyjny, a na dodatek możliwe jest skorzystanie z wersji napisanej w Java, dzięki czemu przy odrobinie wysiłku możemy mieć np. komórkę z ekranem z komputera stacjonarnego. Serwer obsługuje klienta asynchronicznie. Dzięki temu nie występuje problem bezpowrotnego „zatykania się” połączenia. Z sukcesem zarządzałem systemem z serii MS Windows podłączonym poprzez modem. Istnieje możliwość wizualizacji jednego ekranu na wiele stanowisk (idealne rozwiązanie do taniego przeprowadzania pokazów). W sieci FastEthernet bez problemu udało mi się uruchomić 9 VNC terminali pracujących jednocześnie z ekranem o rozdzielczości 1024x768x24. W zależności od implementacji, możliwe jest uzyskanie dodatkowej funkcjonalności: szyfrowanie połączenia, kompatybilność Rysunek 1: Konfiguracja usługi VNC w Windows. z zewnętrznymi standardami, dodatkowa synchronizacja danych między klientem a serwerem, skalowanie ekranu przed przesłaniem, zarządzanie po stronie klienta pojedynczym oknem zamiast pełnym ekranem itp. Pod adresem [2] znajdują się odsyłacze do niektórych wersji wolnodostępnych oraz dokumentów opisujących VNC. Polecić mogę: RealVNC [3], Ultr@VNC, ZVNC, TightVNC. Istnieją również rozwiązania komercyjne np. DoubleVision. Instalacja Serwer dla MS-Win najprościej wybrać w wersji binarnej. Jest on udostępniany jako samoinstalujący się program *.exe. Po zakończonej sukcesem instalacji w menu Start pojawi się dodatkowe podmenu z wpisami dotyczącymi serwera oraz przeglądarki VNC. Podczas pierwszego uruchomienia VNCserwera program poprosi o podanie hasła, które zostanie użyte do autoryzacji zdalnego dostępu. Przykładowe okienko konfiguracyjne można zobaczyć na Rysunku 1. W większości przypadków domyślne ustawienia będą wystarczające. Jeśli chcemy korzystać z możliwości dostępu z poziomu przeglądarki WWW, konieczne jest włączenie opcji JavaViewer, a w przypadku, gdy chcemy ograniczyć dostęp do stacji lokalnej lub zdalnej, warto zainteresować się ustawieniami dotyczącymi połączenia oraz domyślnej akcji po odłączeniu ostat- www.linux-magazine.pl Czerwiec 2004 45 KNOW HOW Zdalny dostęp Rysunek 2: Konfiguracja klienta VNC w Mac OS X. niego klienta. Kolejnym krokiem będzie przygotowanie Linuksa do pracy ze zdalnym systemem. X-Window, svgalib czy też Mozilla? Linux ma do dyspozycji klientów VNC dla różnych środowisk graficznych. Oczywiście najprostszym sposobem na uzyskanie zdalnego dostępu do maszyny pracującej pod kontrolą serwera jest uruchomienie dowolnej przeglądarki WWW obsługującej aplety Java i podanie adresu komputera docelowego z portem 5800 np. http://nazwa_komputera:5800. Jeśli zmieniony zostanie domyślny numer ekranu na inny niż:0, to należy w adresie strony użyć portu 5800 + numer_ekranu. Wygodniejszym, szybszym oraz bardziej funkcjonalnym sposobem jest użycie dedykowanego klienta VNC. W zależności od potrzeb, możliwe jest wykorzystanie programu używającego biblioteki svgalib: svncviewer lub pracującego w systemie X Window – xvncviewer. Sposób uruchomienia obu jest podobny: vncviewer komputer:ekran, a najczęściej używane opcje to: ■ fullscreen – xvncviewer użyje trybu pełnego ekranu. ■ passwd – pozwala na podanie nazwy pliku zawierającego zaszyfrowane hasło używane do autoryzacji. Do jego utworzenia należy użyć polecenia vncpasswd. Pozwala to na automatyzację połączenia. ■ shared– połączenie będzie współdzielone z już wcześniej istniejącymi. ■ viewonly – nie pozwala na przekazywanie akcji myszki oraz klawiatury do zdalnej maszyny. ■ listen – czeka na zainicjalizowanie połą- 46 Czerwiec 2004 Rysunek 3: Dostęp do pulpitu Windows z poziomu Linuksa. czenia po stronie serwera. Polecenie addnewclient. Niestety.. na koniec tej części muszę wspomnieć o „polskim” problemie, który dotknie każdego chcącego korzystać z VNC. Oczywiście nie będzie żadnych niespodzianek od strony fontów, nacjonalizacji itp., jako że są one w pełni obsługiwane przez system zdalny. W większości przypadków sporym problemem będzie jednak polska klawiatura. Najgorzej jest z programem svncviewer, gdzie konieczna jest interwencja w kod biblioteki svgalib. W pozostałych przypadkach powinna wystarczyć modyfikacja w ustawieniach stron kodowych i ewentualnie zmiana przypisań klawiszy programem xmodmap (gdy serwer działa w środowisku Linux, jedynie svncviewer nie działa poprawnie). Najprostszym wyjściem jest używanie polskiej klawiatury maszynistki do wpisywania ogonków lub kombinacji ~litera np. ~a. Oczywiście nie są to rozwiązania eleganckie, jeśli więc któregoś z czytelników interesuje ostateczne pozbycie się tego problemu, to zapraszam do współpracy. ście do momentu powrotu z kursorem na ekran macierzysty. Jedynym minusem tego rozwiązania jest fakt, że monitor zdalnej maszyny musi być w zasięgu wzroku użytkownika. W zamian jednak otrzymujemy obraz złożony z tego, co pokazują dwa monitory tzw. multihead. Opcje programu: ■ north, -south, -west, -east – bok, który przełączy do zdalnego ekranu. ■ passwdfile – plik z zaszyfrowanym hasłem wygenerowany przez vncpasswd ■ shared – współdzielenie ekranu z innymi klientami Pozostałe opcje służą do eliminowania problemów i są dokładniej opisane w podręczniku online do programu. Użytkownicy Windows NT Terminal Server lub Windows 2000/2003 Terminal Services oraz Windows XP mogą być bardziej zainteresowani innym produktem o nazwie rdesktop. Dokładniejsze informacje oraz źródła można znaleźć pod adresem [5]. Niestety nie miałem jeszcze okazji dokładniej przetestować działanie tego rozwiązania. ■ Rozdwojenie jaźni... A właściwie raczej jej zespolenie zapewnia program, który jest rozwijany niezależnie od rozwiązania macierzystego. Chodzi tu o projekt x2vnc [4], dzięki któremu możliwe jest wirtualne połączenie ekranu zdalnego komputera z uruchomionym serwerem VNC oraz ekranu zarządzanego przez X Window. Gdy kursor myszki przesuniemy przez prawy (domyślnie) brzeg ekranu, wszystkie naciśnięcia klawiszy oraz ruchy myszki zostaną przesłane do zdalnej maszyny. Oczywi- www.linux-magazine.pl INFO [1] Adres projektu VNC: http://www.uk.research.att.com/ vnc/index.html [2] Zbiór informacji o VNC: http://www.darkage.co.uk/links.htm [3] RealVNC: http://www.realvnc.com [4] Program x2vnc: http://fredrik.hubbe.net/x2vnc.html [5] Rdesktop http://www.rdesktop.org