Połączenie z wykorzystaniem VNC
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).
Pojawią się dwa okienka. Jedno informuje o próbie połączenia…
…a drugie czeka na podanie hasła które wcześniej ustawiliśmy.
Po podaniu prawidłowego hasła pojawi się zdalny pulpit.
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





