|
VNC
i Tight VNC
Date:
20-06-2004 Author:
Paweł
Wawrzyniak Number
of Views: 3324 Rate:
4.33
 |
| |
|
Paweł
Wawrzyniak |
|
p.wawrzyniak@it-faq.pl |
| |
| |
Pasjonat
starych komputerów, które składuje bez umiaru,
wielbiący formalizm programista o humanistycznym
usposobieniu, administrator sieci osiedlowej...
z konieczności i żeglarz z
zamiłowania. Obsesyjnie poszukuje rozwiązań
idealnych. |
| |
| | |
|
Zdalna administracja w klimacie Open
Source
VNC i
Tight VNC
Administrowanie
sieciami komputerowymi może być uciążliwe, jeśli
poszczególne komputery rozrzucone są na dużym obszarze.
Zmiana ustawień każdej z maszyn lub odległych serwerów
mogłaby zamienić się bardzo szybko w prawdziwy koszmar,
gdyby nie możliwość zdalnej administracji. Dzięki
odpowiedniemu oprogramowaniu można bez problemu
prowadzić pracę na odległych komputerach - bez względu
na to, czy są to stacje robocze, czy serwery. Na rynku
znajduje się wiele rozwiązań pozwalających przeprowadzać
zdalną administrację, czy szerzej - umożliwiających
obsługę i wykorzystanie oprogramowania na zdalnych
komputerach. Są one używane nie tylko przez działy
techniczne dużych firm, ale także w mniejszych sieciach,
a nawet w Amatorskich Sieciach Komputerowych.
Podstawowym kryterium decydującym o wyborze jest tutaj
cena. Zaawansowane rozwiązania są zwykle drogie i
cechują się dużym stopniem bezpieczeństwa, niezawodności
i prędkości działania (wyjątkiem może być tutaj np.
komercyjny Radmin, który oferuje bardzo wysoką jakość za
stosunkowo niską cenę). Istnieją też tańsze narzędzia, a
niektóre z nich są nawet darmowe. Jak się okazuje, w
większości przypadków całkowicie spełniają swoje zadanie
i mogą bardzo ułatwić pracę. W niniejszym artykule
przedstawimy dwie propozycje, opiszemy ich możliwości,
wady i zalety. To z pewnością powinno ułatwić Wam
podjęcie decyzji, które z rozwiązań najbardziej pasuje
do Waszych potrzeb.
Virtual Network Computing
VNC (ang. Virtual Network Computing)
to najbardziej popularne rozwiązanie pozwalające na
zdalną pracę. Dzięki niemu możemy oglądać pulpit i
korzystać z oprogramowania odległego komputera z
dowolnego miejsca w sieci (także w Internecie, o ile
interesujący nas komputer posiada publiczne IP). Jedynym
warunkiem jest instalacja odpowiedniego oprogramowania.
Maszyny, które mają udostępniać możliwość zdalnego
wykonywania działań muszą zostać wyposażone w serwer
VNC. Z kolei na komputerach, które zamierzamy
wykorzystywać do kontrolowania zdalnych maszyn,
instalujemy oprogramowanie klienckie (tzw. przeglądarki
- ang. viewer). Jedną z najważniejszych zalet VNC jest
fakt, że oprogramowanie to w dużym stopniu jest
niezależne od platformy. Dzięki temu możemy np.
zainstalować serwer VNC na określonym komputerze (np.
serwerze firmowym), a następnie obsługiwać go z dowolnej
lokalizacji, z komputera, na którym da się uruchomić
przeglądarkę. Nic nie stoi na przeszkodzie, aby serwer
działał pod systemem uniksowym (np. Solaris, FreeBSD,
GNU/Linux), a klient wykorzystywany do jego kontroli
pracował pod dowolnym systemem z rodziny MS Windows.
Oczywiście możliwa jest także sytuacja odwrotna. Pod tym
względem VNC okazuje się bardzo elastycznym
rozwiązaniem. Posiadamy całkowitą dowolność i możemy
nawiązywać połączenia z maszyn klienckich do serwerów
bez względu na architekturę sprzętu, czy wykorzystywany
system operacyjny. Dodatkowo, z jednym serwerem
uniksowym może się jednocześnie łączyć kilka maszyn
klienckich. VNC dostępne jest w postaci pakietów
instalacyjnych na najpopularniejsze systemy operacyjne,
w tym dla:
GNU/Linux 2.x dla architektury x86,
Solaris 2.5 (dla maszyn SPARC),
QNX,
Windows 9x/Me/NT/2000/XP/2003 (x86),
Mac OS/Mac OS X,
DEC Alpha OSF1 3.2,
Windows CE 2.x (beta wersja klienta - viewer o
rozmiarze 50 KB) dla procesorów SH3 oraz MIPS. VNC
rozpowszechniane jest na licencji GNU GPL, dzięki czemu
użytkownicy uzyskują pełny dostęp do kodów źródłowych.
Na stronie odnajdziemy źródła m.in. dla systemów
uniksowych (np. FreeBSD, NetBSD, OpenBSD, GNU/Linux)
oraz MS Windows. Dzięki temu VNC działa na dużej ilości
platform i daje możliwość adaptacji kodu źródłowego do
wymogów nowych środowisk. To właśnie ta cecha umożliwiła
przeniesienie oprogramowania na tak wiele platform.
Ponadto, dostępna jest wersja napisana w języku Java, co
dodatkowo zwiększa krąg możliwych zastosowań VNC. Mamy
do wyboru zarówno oprogramowanie klienckie, jak i serwer
- VNC (więcej na ten temat w ramce "VNC w Sieci"). Warto
także zauważyć, że popularność tego rozwiązania
zaowocowała także tym, że jest ono dołączane w postaci
pakietów instalacyjnych do wielu dystrybucji wolnych
systemów operacyjnych (GNU/Linux oraz *BSD). Jest więc
to rozwiązanie bardzo łatwo osiągalne. Zaletą VNC
jest także wykorzystywany do transmisji protokół, który
charakteryzuje się prostotą, otwartością (żadnych
patentów) i niezależnością od platformy. Po stronie
przeglądarki (klienta) nie są przechowywane jakiekolwiek
informacje dotyczące maszyny zdalnej, więc w przypadku
zerwania połączenia z serwerem i jego ponownego
nawiązania nie zostaną utracone żadne dane. W każdej
chwili możemy wznowić połączenie, nawet z innej maszyny
klienckiej i kontynuować pracę na serwerze od miejsca, w
którym ją zakończyliśmy. Oczywiście rozwiązanie to ma
także swoje wady, zanim jednak je przedstawimy, skupmy
się na instalacji i konfiguracji oprogramowania.
| |
 Rys. 1: Wybór komponentów
oprogramowania w czasie instalacji
|
| |
|
Instalacja
VNC możemy
pobrać ze strony głównej projektu (patrz Ramka - "VNC w
Sieci"). Najnowsza wersja nosi numer 3.3.7. W przypadku
systemu MS Windows najlepiej ściągnąć gotowy pakiet
instalacyjny. Następnie wystarczy uruchomić standardowy
program instalacyjny Setup.exe. W trakcie procesu
instalacji będziemy mieli możliwość wybrania elementów
składowych oprogramowania (cały pakiet - serwer i
klient, tylko serwer, tylko klient - patrz rys.
1). Instalator pyta także o podstawowe ustawienia
oprogramowania związane z wyświetlaniem obrazu, oraz
proponuje, aby serwer był uruchamiany jako usługa
systemowa, przy każdym starcie systemu (oczywiście,
jeśli zdecydowaliśmy się zainstalować tą część
oprogramowania). Dostępna jest również wersja w
postaci pakietu instalacyjnego RPM dla systemu RedHat
Linux. W pozostałych systemach uniksowych (np. FreeBSD,
NetBSD, OpenBSD) należy skompilować źródła VNC. Proces
ten wykonujemy w następujący sposób. Po pobraniu
stosownego pliku, np. vnc-3.3.7-unixsrc.tar.gz,
rozpakowujemy go komendą: $tar xvfz
vnc-3.3.7-uni-xsrc.tar.gz do katalogu, w którym
przechowujemy pliki źródłowe programów. Następnie
wydajemy
komendy: $./configure $make W ten
sposób zostaną skompilowane wszystkie komponenty za
wyjątkiem Xvnc, które wykorzystuje własną, okrojoną
wersję serwera XFree86 3.3.2. Aby skompilować Xvnc
wchodzimy do katalogu Xvnc: $cd Xvnc i
wydajemy komendę: $make World Po udanej
kompilacji należy skopiować pliki wynikowe do katalogu,
który określony jest przez zmienną środowiskową PATH,
np. /usr/local/bin. Do tego celu używa się skryptu
vncinstall: $cd .. $./vncinstall
/usr/local/bin Skrypt zainstaluje również strony
podręcznika systemowego man. W przypadku wykorzystania
wersji klienta VNC napisanej w języku Java, należy
skopiować pliki klas z katalogu /classes do docelowego
katalogu instalacyjnego, np. /usr/local/vnc/classes. W
tym celu wydajemy komendy: $mkdir -p
/usr/local/vnc/classes $cp classes/*
/usr/local/vnc/classes Jeżeli nie jesteśmy
zainteresowani kompilacją źródeł VNC, a musimy
zainstalować to oprogramowanie na systemie uniksowym
(np. FreeBSD) lub jednej z dystrybucji GNU/Linuksa,
powinniśmy przejrzeć płyty instalacyjne w poszukiwaniu
gotowych pakietów instalacyjnych. W większości systemów
uniksowych można odnaleźć dedykowane pakiety. Dodatkowo,
w dystrybucji Debian GNU/Linux można wykorzystać program
aptget (i zainstalować VNC z sieci). W przypadku systemu
FreeBSD najłatwiej skorzystać z systemu portów, w
lokalizacji /usr/ports/net/vnc wystarczy wydać
polecenie: $make install clean Źródła
zostaną pobrane z sieci i przekompilowane zgodnie z
ustawieniami w pliku /etc/make.conf. System sprawdzi
także wszelkie zależności i w razie konieczności,
automatycznie pobierze odpowiednie składniki
oprogramowania.
Uruchamianie serwera w systemach
uniksowych
W systemach uniksowych
(również w GNU/Linuksie) serwer VNC jest traktowany
przez aplikacje, które z niego korzystają, jak typowy
serwer systemu okien X Window (tzw. serwer X). Nie ma
tutaj znaczenia fakt, że obraz nie jest wyświetlany na
osobnym fizycznym wyświetlaczu, a obraz przesyłany jest
przez sieć. Z tego względu wszelkie uruchomione programy
działają bez względu na to, czy aktualnie podglądamy ich
przebieg za pomocą przeglądarki, czy też zerwaliśmy
połączenie. Na maszynie uniksowej serwer startujemy
wydając komendę: $vncserver Jeżeli nie
znajdujemy się w pobliżu maszyny, na której mamy
uruchomić serwer VNC, możemy skorzystać z telnetu (lub
SSH) w celu zalogowania się na swoje konto i wydania
powyższej komendy. Program vncserver to skrypt Perla,
który ułatwia startowanie serwera. Jednak w przypadku
niektórych środowisk może okazać się konieczne poddanie
go edycji, w celu ustawienia odpowiednich ścieżek
dostępu. Jeżeli serwer uruchamiany jest po raz pierwszy,
użytkownik zostanie poproszony o podanie hasła
dostępowego. Później można je zmienić za pomocą programu
vncpasswd.
| |
VNC w
Sieci
Strona poświęcona rozwojowi
VNC:http://www.realvnc.com/
Strona VNC na University of Cambridge
(wersja
AT&T):http://www.uk.research.att.com/archive/vnc/index.html
Strona serwera VNCj
(Java):http://www.amherst.edu/~tliron/vncj/
Lista około 40 wspieranych
platform:http://www.uk.research.att.com/archive/vnc/platforms.html
Przeróżne dodatki do
VNC:http://www.uk.research.att.com/archive/vnc/extras.html
Zabezpieczanie transmisji w VNC za pomocą
SSH/OpenSSH:http://www.uk.research.att.com/archive/vnc/sshvnc.html
| | | W
przypadku systemów uniksowych możliwe jest uruchomienie
kilku serwerów na jednej maszynie (na MS Windows sprawa
wygląda inaczej, patrz ramka - "Kilka serwerów
VNC/TightVNC w MS Windows?"). Każdy będzie dostarczał
klientom osobnego, wirtualnego ekranu. W tym celu
wystarczy jeszcze raz wywołać skrypt vncserver i wskazać
numer ekranu, np.: $vncserver :4 Jeżeli nie
sprecyzujemy numeru zostanie automatycznie przydzielony
pierwszy wolny w kolejności. Główny ekran systemu X
Window zawsze dostępny jest pod numerem 0. Informacja o
numerach ekranów jest potrzebna podczas uruchamiania
przeglądarki po stronie klienta lub programów na zdalnej
maszynie - możemy wówczas sprecyzować, który wirtualny
ekran ma być wyświetlany lub wskazać ekran na jakim
program ma wyświetlać efekty swojego działania,
np.: $xterm -display tester:4 & W
trakcie działania serwer tworzy plik dziennika, w którym
zapisuje wszystkie zdarzenia. Dostępny jest on w
lokalizacji: ~/.vnc. Działanie serwera kończymy komendą
o następującej składni - vncserver -kill
, np.: $vncserver
-kill :4 Lista wszystkich parametrów wywołania
serwera dostępna jest po podaniu
komendy: $vnceserwer
-help
Uruchamianie serwera w MS Windows
Po zainstalowaniu oprogramowania w
menu Start zostanie utworzona grupa RealVNC. Serwer może
być uruchamiany automatycznie w postaci usługi
systemowej przy starcie Windows lub ręcznie, poprzez
skrót w menu Start->RealVNC->Run VNC Server. Przy
pierwszym uruchomieniu serwera użytkownik zostanie
zapytany o hasło dostępowe. Będzie ono wykorzystywane
podczas nawiązywania połączeń za pośrednictwem
przeglądarki ze zdalnych maszyn. W przypadku typowego
wykorzystania VNC nie zachodzi potrzeba modyfikacji
standardowych ustawień. Domyślny numer wirtualnego
| |
 Rys. 2: Okno właściwości (ang.
Properties) serwera VNC, w którym możemy
modyfikować ustawienia dotyczące trybu pracy
|
| |
| ekranu ma
wartość 0. Podajemy go podczas łączenia się z
przeglądarki (klienta). W trakcie działania serwer
wyświetla małą ikonę w pasku systemowym. W tym momencie
można już korzystać z oprogramowania klienckiego do
zdalnego administrowania systemem, na którym
uruchomiliśmy serwer. Możemy także zmieniać ustawienia
działającego serwera. W tym celu klikamy prawym
przyciskiem myszy na ikonę serwera VNC w pasku
systemowym i wybieramy z menu kontekstowego opcje
Properties (patrz rys. 2).
| |
Kilka
serwerów VNC/TightVNC w MS
Windows?
Niestety jest to
niemożliwe. W MS Windows można uruchomić tylko
jeden serwer VNC/TightVNC, co spowodowane jest
faktem, że MS Windows nie jest systemem
wielodostępowym, takim jak Unix. Oznacza to, że
jednocześnie można używać tylko jednego ekranu
użytkownika. Kiedy komputer pracujący pod
kontrolą systemu MS Windows jest zdalnie
obsługiwany, to wszystkie ruchy kursora i wyniki
działania klawiatury są na nim odtwarzane (może
to zobaczyć lokalny użytkownik). W systemach
uniksowych może działać kilka serwerów, a każda
osoba znajdująca się po stronie klienta
korzystać będzie z własnego pulpitu. W
przypadku maszyn wykorzystujących system Windows
Terminal Server można uruchomić kilka serwerów
VNC, ale rozwiązanie to nie ma sensu, ponieważ
poszczególne ekrany nie będą aktualizować swojej
zawartości w czasie, kiedy do jednego z serwerów
podpięty jest klient.
| | | W
oknie właściwości możemy m.in.:
zmienić hasło dostępowe,
zmienić numer przydzielany dla wirtualnego ekranu,
włączyć/wyłączyć wsparcie dla apletów klienckich
Java,
włączyć/wyłączyć obsługę lokalnej lub zdalnej
klawiatury i myszy,
włączyć/wyłączyć przesyłanie tapety pulpitu na
zdalny komputer,
określić działanie serwera w momencie, kiedy odłączy
się od niego ostatni klient,
określić zasady odświeżania ekranu.
| |
 Rys. 3: Wywołanie klienta pod
systemem FreeBSD w oknie xterminala. Widać
moment uwierzytelniania, w którym należy podać
hasło.
|
| |
|
Uruchamianie przeglądarek (klientów) w
systemach uniksowych i MS Windows
Podczas uruchamiania przeglądarki,
użytkownik musi określić nazwę serwera lub podać jego
numer IP oraz wskazać numer wirtualnego ekranu, z którym
zamierza się połączyć. Jeżeli np. na danym komputerze
zdalnym działa serwer, używający numeru 4, to w
systemach uniksowych wydajemy komendę (zakładamy, że
serwer nazywa się tester i ma numer IP 192.168.1.5 -
patrz rys. 3): $vncviewer tester:4
| |
 Rys. 4: Okno klienta systemu MS
Windows, w którym podajemy nazwę/numer IP
serwera oraz wskazujemy numer wirtualnego ekranu
X. Na tym etapie mamy także możliwość ustawienia
parametrów połączenia. W tym celu wciskamy
przycisk Options (patrz rys. 5)
|
| |
| lub: $vncviewer
192.168.1.5:4 Ważne, aby komendę wydać w oknie
emulatora terminala systemu X Window maszyny klienckiej.
Podobnie w systemie MS Windows, możemy wydać komendę w
oknie konsoli (wiersz poleceń), np.: C:\vncviewer
tester:4
| |
 Rys. 5: Okno klienta systemu MS
Windows, w którym można ustawić właściwości
połączenia po stronie klienta, m.in. sposób
wyświetlania obrazu, skalowanie,
włączenie/wyłączenie obsługi schowka
|
| |
| Jednak
najprostszym sposobem jest wykorzystanie skrótu
znajdującego się w menu Start->RealVNC->Start VNC
Viewer. Wówczas zostaniemy poproszeni o podanie nazwy
lub adresu IP komputera, z którym zamierzamy się
połączyć (patrz rys. 4). Po wpisaniu tych danych
wciskamy przycisk OK, a w następnym oknie podajemy hasło
(ustawiliśmy je podczas pierwszego uruchamiania
serwera). Zatwierdzamy hasło i jeśli zostało poprawnie
podane, to na ekranie pojawi się okno wyświetlające
aktualną zawartość wyświetlacza zdalnej maszyny (patrz
rys. 6 - dla porównania patrz rys. 7).
| Rating: 4,33 |
 |
 |
 |
 |
 |
|
1 |
2 |
3 |
4 |
5 |
| Number of ratings: 6 |
| Comments
|
|
malo
opisane, Leszek , 2004-11-11
17:27:23 a jak sie polaczyc z
kompem, ktory ma adres prywatny??
192.168.0.3 ?? |
|
re: malo
opisane, jasiu
, 2004-11-18 08:18:01 zrobic
sobie przekierowanie portów, jakie porty -
poszukaj w dokumentacji |
|
nie
rozumiem, Ewa
, 2005-01-19 22:56:37
zainstalowałam u siebie i server
i viver jestem prywatną osobą a że wiem trochę
więcej niż mój siostrzeniec chcąc uniknąć ciągłych
telefonów to też i u niego zainstalowałam ten sam
program (widziałam jak to działa w pracy) ale nie
wiem jak się łączyć, do tej pory mi się to nie
udało mam u siebie nr zaczynający się na cyfrę 8 i
łącznie jest ich osiem przedzielonych kropkami a u
mojego siostrzeńca jest jeden nr zaczynający się 1
jest ich łącznie osiem następnie znak /i numer
zaczynający się 8 a cyfr łącznie 10 i nie wiem co
dalej. proszę o podpowiedź ja i siostrzeniec
działamy na WIN XP Dzięki |
|
re: re: malo
opisane, xyz ,
2005-03-04 19:09:12
przekierowywanie jest malo
bezpieczne. googlaj po necie znajdziesz lepsze
rozwiazanie. :) |
Add
comment Title:
Name: Comment:
Save
|
Return |