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