VNC - połączenia Linux - Linux -  krótkie howto

Aktualizacja 2006.03.23 (Maciek Rutecki).

Wstęp

Opis ten ma pomóc na otworzeniu zdalnego pulpitu na lokalnym komputerze. Domyślnie na obydwu systemach ma być Linuks, jednak pod koniec opiszę niezbędne narzędzia, aby uruchomić połączenia miesznane (Windows - Windows, Windows - Linux)

Niezbędne programy

X11VNC ze strony http://www.karlrunge.com/x11vnc/
VNCVIEWER ze strony http://www.tightvnc.com/download.html

(w 90% mamy te programy w naszej dystrybucji)

Uruchamiamy serwer

W zasadzie wystarczy uruchmić x11vnc, jednak warto poznać jego dodatkowe opcje.

Przydatną opcją jest -auth, gdy korzystamy z GDM/KDM/XDM i nie chcemy zostawiać zalogowanego użytkownika na zdalnej maszynie. Wtedy wydajemy przykładowo polecenie:

x11vnc -auth /var/gdm/:0.Xauth (dla gdm)

Problemem może być znalezienie tego pliku (MIT-COOKIE auth).  Przykładowe ścieżki podałem poniżej:

XDM:
/var/lib/xdm/authdir/authfiles/

KDM:
/var/lib/kdm

GDM (Debian)
/var/lib/gdm

W przypadku GDM warto dodać opcję w gdm.conf (znajduje się w "/etc"):

KillInitClients=false

Nie będzie zabijany X11VNC w momencie logowania się do systemu.

Dobrze jest eksportować zmienną okreśłającą ekran (szczegółnie jeśli włączamy VNC poprzez SSH/Telnet):

export DISPLAY=:0

Ponadto - dla pewności - dodać to do opcji serwera:

-display :0

Bezpiecznie jest dodać opcję -passwd <hasło> aby nikt niepowołany nie dostał się na nasz komputer.

Inną ciekawą opcją jest skalowanie obrazu, aby  zmieścił się na naszym ekranie (kiedy lokalny ekran jest mniejszy od zdalnego, w drugą stronę też można przeskalować):

-scale 8/10

Ostatecznie skrypt uruchamiający serwer poprzez SSH może wyglądać następująco:

#!/bin/sh
export DISPLAY=:0
x11vnc -display :0  -auth /var/lib/gdm/:0.Xauth -passwd jakies_haselko -scale 8/10

Powinniśmy uzyskać coś takiego:

23/03/2006 15:53:51 setting up 32 cursors...
23/03/2006 15:53:51   done.
23/03/2006 15:53:51 Autoprobing TCP port
23/03/2006 15:53:51 Autoprobing selected port 5900
23/03/2006 15:53:51 created 40 tile_row shm polling images.
23/03/2006 15:53:52 fb read rate: 25 MB/sec
23/03/2006 15:53:52 screen setup finished.
23/03/2006 15:53:52
23/03/2006 15:53:52 The VNC desktop is mr-debian:0
PORT=5900

Najważniejsza jest ostatnia informacja - numer portu. Musimy go otworzyć na serwerze i - ewentualnie - przekierować gdy mamy NAT).

Klient

Uruchamiamy program poleceniem (na lokalnym komputerze):

xvncviewer ip_hosta

możemy dodać opcję -fullscreen aby otworzyć pełny ekran (to samo uzyskamy naciskając F8)

Zostaniemy zapytani o hasło (podaliśmy je w opcjach serwera)

I otrzymamy coś naj na tym zrzucie (połaczenie 128kbps):

Zrzut (~120 kB)

Przyśpieszanie połączenia

Często mamy słabe łącze, metodą prób i błedów dobrałem opcje dla serwera VNC, aby chociaż nieco przyśpieszyć jego pracę, warto poeksperymentować z wartościami:

# x11vnc -display :0  -auth /var/lib/gdm/:0.Xauth -passwd tajne_haslo -nap -wait 60 -onetile -solid -scale 7/10 -nodragging -fs 1.0 -progressive 100 -nosel -nocursor -nocursorpos -readtimeout 30

Windows

Jako klienta i serwer polecam program ze strony http://www.tightvnc.com/download.html polecam wybrać Complete set of executables, no installer.