Połączenie z wykorzystaniem VNC

Tuesday, December 16, 2008, autor: Rafał

Opisałem już połączenie LINUX-LINUX poprzez VINO, był opis połączenia WINDOWS-LINUX poprzez OpenSSH (dla fanów konsoli), więc pora na kilka słów dla osób, którym trudno pracować w trybie tekstowym (lub np. muszą korzystać z programów, które tego trybu pracy nie obsługują).
Aby połączyć się z systemem okienkowym Linuksa z poziomu Windows możemy skorzystać z VNC. Dzięki temu będziemy pracowali tak, jak byśmy siedzieli przy danym komputerze. W SLES 10, na którym konfigurowałem połączenie był już zainstalowany pakiet TightVNC Server (najlepiej sprawdzić to w YaST i doinstalować w miarę potrzeby).

Podstawy
Idea połączenia jest prosta. Komputer z systemem Linux musi mieć zainstalowany serwer VNC (w tym przypadku tightVNC), a po stronie Windows musimy mieć zainstalowane oprogramowanie klienta VNC, czyli TightVNC Viewer. Instalując pakiet TightVNC w systemie Windows wystarczy nam wybranie opcji „Viewer”. Chyba, że myślimy o połączeniu w obie strony (o czym może kiedyś napiszę).

Uruchomienie serwera
Aby program klienta ThightVNC Viewer mógł się połączyć musimy uruchomić serwer VNC. Oto przykład komendy, jaką wykonujemy w SuSE:

vncserver :1

W tym przypadku wybrałem Display „1”. W czasie pierwszego wykonania komendy określamy hasło dostępu. Poniżej cała procedura.

ides:/ # vncserver :1

You will require a password to access your desktops.

Password:
Verify:
Would you like to enter a view-only password (y/n)? n

New ‘X’ desktop is ides:1

Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/ides:1.log

W wyniku wykonania komendy pojawi się kilka nowych plików w folderze „.vnc”. Folder ten znajduje się w folderze domowym użytkownika (w moim przykładzie jest to root). Oto lista utworzonych plików:

ides:~/.vnc # ls
ides:1.log  ides:1.pid  passwd  xstartup

Dodatkowo, w wyniku uruchomienia serwera powinien pojawić się nowy proces, który najprościej sprawdzić komendą ps. Oto przykład wykonania:

ides:~/.vnc # ps aux |grep vnc
root      9384  0.4  0.3  29808 13860 pts/1    S    14:09   0:00 Xvnc :1 -desktop X -httpd /usr/share/vnc/classes -auth /root/.Xauthority -geometry 1276×1000 -depth 24 -pixelformat rgb888 -rfbwait 120000 -rfbauth /root/.vnc/passwd -rfbport 5901 -fp /usr/X11R6/lib/X11/fonts/misc:unscaled,/usr/X11R6/lib/X11/fonts/local,/usr/X11R6/lib/X11/fonts/75dpi:unscaled,/usr/X11R6/lib/X11/fonts/100dpi:unscaled,/usr/X11R6/lib/X11/fonts/Type1,/usr/X11R6/lib/X11/fonts/URW,/usr/X11R6/lib/X11/fonts/Speedo,/usr/X11R6/lib/X11/fonts/truetype,/usr/X11R6/lib/X11/fonts/uni,/usr/X11R6/lib/X11/fonts/CID
root      9422  0.0  0.0   3032   712 pts/1    S+   14:11   0:00 grep vnc

Możemy też sprawdzić porty komendą nmap (podawałem tę komendę przy opisie OpenSSH). Oto wynik jej działania:

ides:~/.vnc # nmap -sS -O 16.55.100.50

Starting Nmap 4.00 ( http://www.insecure.org/nmap/ ) at 2008-12-15 14:12 CET
Interesting ports on ides.site (16.55.100.50):
(The 1663 ports scanned but not shown below are in state: closed)
PORT     STATE SERVICE
22/tcp   open  ssh
111/tcp  open  rpcbind
427/tcp  open  svrloc
631/tcp  open  ipp
1527/tcp open  tlisrv
5801/tcp open  vnc-http-1
5901/tcp open  vnc-1
6001/tcp open  X11:1
8000/tcp open  http-alt
Device type: general purpose
Running: Linux 2.4.X|2.5.X|2.6.X
OS details: Linux 2.4.0 - 2.5.20, Linux 2.5.25 - 2.6.8 or Gentoo 1.2 Linux 2.4.19 rc1-rc7

Nmap finished: 1 IP address (1 host up) scanned in 2.068 seconds

Widać, że porty zostały otworzone i system na nich nasłuchuje.
Przypominam, że podobnie jak we wszystkich pozostałych typach połączeń ważne jest, aby zapora (firewall) była odpowiednio skonfigurowana i przepuszczała pakiety na odpowiednich portach (konfiguracja zapory poprzez YaST).

Połączenie po stronie Windows.
Po zainstalowaniu TightVNC Viewer możemy spróbować się połączyć. Po uruchomieniu programu pokaże się okienko, w którym podajemy adres IP (tu 16.55.100.50) i po dwukropku numer display (tu 1).

TightVNC viewer - proces łączenia

Pojawią się dwa okienka. Jedno informuje o próbie połączenia…

TightVNC viewer - proces łączenia

…a drugie czeka na podanie hasła które wcześniej ustawiliśmy.

TightVNC viewer - proces łączenia

Po podaniu prawidłowego hasła pojawi się zdalny pulpit.

TightVNC viewer - Okienko

Jak widać na powyższym zrzucie ekranu nie jest to GNOME ani KDE. Domyślnym menadżerem okienek jest tu TWM. Może on być mało poręczny dla początkujących osób. Zawsze możemy go zmienić (jak również inne parametry VNC) edytując plik xstartup znajdujący się w folderze .vnc.

Uruchamiając serwer VNC możemy z góry określić rozdzielczość ekranu. Oto przykład dla rozdzielczości 800 na 600:

vncserver -geometry 800×600 :1

Warto też pamiętać, że generalnie nie zaleca się logowania jako root (tylko, jeśli to niezbędne), dlatego nie należy się sugerować tym, że w przykładzie wykorzystałem tego użytkownika. Start serwera VNC możemy wykonać po połączeniu się poprzez SSH.

Jeżeli będziemy chcieli zatrzymać serwer VNC, to wykorzystujemy opcję kill. Przykład wykonania dla display „1”:

ides:~/.vnc # vncserver -kill :1
Killing Xvnc process ID 9384



 

 

 



Zostaw komentarz


 


 


 


 

*
Wpisz słowo z obrazka. Kliknij na obrazku aby usłyszeć angielską wersję audio
Kliknij na obrazku aby usłyszeć angielską wersję audio