Możliwość zdalnego uruchomienia aplikacji, która będzie wyświetlana na naszym lokalnym ekranie (z użyciem ssh -X
),
czy też możliwość zdalnego uruchomienia graficznej aplikacji na zdalnym X serwerze bez możliwości interakcji z nią (zwykłe ssh
i ustawienie zmiennej DISPLAY
),
nie zawsze jest wystarczające.
Jeżeli potrzebujemy przejąć kontrolę nad zdalnym X serwerem można do tego wykorzystać x11vnc
– po stronie zdalnej uruchamiamy (np. poprzez ssh):
x11vnc -passwd TAJNE_HASLO -forever --display :0
a po stronie lokalnej łączymy się standardowym klientem VNC:
vncviewer HOST:5900
gdzie HOST
to adres maszyny na której uruchomiliśmy x11vnc
, a 5900
to numer portu na którym słucha x11vnc
(znajduje się w informacjach wyświetlanych po uruchomieniu polecenia x11vnc
i może mieć inną wartość niż podana w przykładzie).
Przykład pokazuje podłączenie się do ekranu :0
(co odpowiada w większości przypadków domyślnej sesji X serwera).
Jeżeli chcemy podłączyć się do innego ekranu podajemy odpowiedni inentyfikator w opcji --display
.
udostępnianie klawiatury i myszy przez sieć
Nie zawsze będziemy potrzebowali pełnej sesji VNC, w części przypadków (gdy widzimy ekran strony zdalnej) wystarczy nam możliwość jedynie udostępnienia klawiatury i myszy poprzez sieć – możemy wtedy skorzystać z programu barrier
.
więcej VNC
Oczywiście VNC nie ogranicza się tylko do możliwości podłączenia do działającego X serwera – możliwe jest też tworzenie X serwera dedykowanego połączeniu VNC. W tym celu należy uruchomić serwer VNC:
vncserver -geometry 1024x768 -depth 24 -SecurityTypes None
podłączenie się do niego (vncviewer -SecurityTypes None localhost:5901
) spowoduje uzyskanie (nowej) sesji X serwera.
Uwagi:
- pokazana konfiguracja uruchamia VNC bez hasła (opcja
-SecurityTypes None
), co w pewnych sytuacjach może być niebezpieczne - podobnie jak w przypadku
x11vnc
5901 jest numerem portu na którym słucha serwer VNC i jest on podawany w komunikatach wyświetlanych po uruchomieniu serwera (jeżeli nie jest podany jawnie a jako:X
to numer portu wynosi: 5900 + X) - serwer VNC możemy wyłączyć wysyłając do niego sygnał przy pomocy
kill
lub używając poleceniavncserver -kill :X
, gdzie X to numer serwera (podany po jego uruchomieniu lub obliczony jako X = numer_portu - 5900)
dodatkowe informacje – autoryzacja X serwera
Niekiedy może zajść też potrzeba uprawnienia np. innego użytkownika do wyświetlenia czegoś na XC serwerze należącym do nas. Możliwe jest to dzięki narzędziom xhost
i/lub xauth
.
Na przykład: xhost +local:
zezwala wszystkim procesom używającym lokalnych (nie sieciowych) połączeń na dostęp do naszego X serwera
(co jest wygodne gdy na komputerze do którego dostęp mamy tylko my, odpalamy jakiś program z interfejsem graficznym na prawach innego użytkownika).
Więcej na temat tych poleceń można przeczytać w Xauth i xhost na straży bezpieczeństwa Xserver'a.