Zdalny Pulpit

Zdalny pulpit jest bardzo użytecznym narzędziem, które pozwoli nam na uruchomienie urządzenia zarówno w systemie Windows (serwer/klient), jak i Linux (j/w). Serwer to osoba, która pozwala klientowi na zarządzania zawartością swojego komputera (obsługa myszki, klawiatury). Może to nam pomóc np. gdy mamy problem z Linux’em, z którym sami sobie nie możemy poradzić wtedy może zrobić to za nas ktoś inny nie będąc przy naszym komputerze. Poniżej opis jak uruchomić zdalny pulpit w obu tych przypadkach.

W tekście:
nazwa_hosta – oznacza komputer, do którego się łączymy. Jeśli jego nazwa nie jest znana w DNS, wpisujemy zamiast niej jego adres IP,
sesja bieżąca – oznacza sesję, która pokazuje to samo, co na monitorze bezpośrednio podpiętym do komputera,
sesja nowa – oznacza, że po zalogowaniu otrzymamy nowy, równoległy pulpit, na którym możemy pracować w tle. Na równoległych pulpitach może pracować kilku użytkowników.

A. Dostęp z Linuksa do Windowsa
1. Zdalny plupit / Usługa Terminalowa Windows Server.

Zdalny Pulpit oraz Usługa Terminalowa korzystają z protokołu RDP. Protokół ten jest szybszy, niż popularne VNC, więc zalecam korzystanie z niego, gdy tylko jest to możliwe. RDP umożliwia też przesyłanie plików.

Aby się podłączyć, musimy, oczywiście, włączyć zdalny pulpit pod Windows XP (Mój komputer/Właściwości/Zdalny) lub uruchomić Usługę Terminalową w Windows 2003 Server. O ile mi wiadomo, Windows Home nie posiada funkcji serwera zdalnego pulpitu. [Jeszcze jest Citrix. To, zdaje się, też działa po RDP, ale nie wiem, na ile jest kompatybilne z Linuksowym klientem. Chętnie się dowiem.]

Następnie pod linuksem instalujemy pakiet rdesktop:

sudo apt-get install rdesktop

Wywołanie programu w wersji podstawowej to:

rdesktop nazwa_hosta

Dodatkowe, praktyczne parametry do podania w linii polecenia, które automatyzują połączenie podaję poniżej. Umożliwiają one np. automatyczne zalogowanie.

-u użytkownik
-d domena
-p hasło
-k język klawiatury
-N synchronizacja numlocka
-g wielkość okna na naszym ekranie (podaj procenty).

Najważniejszy zapewne jednak jest parametr -r, który umożliwia dostęp do naszego zasobu dyskowego, udostępnionego pod Linuksem, spod zdalnego pulpitu windowsowego. Dodanie następującego parametru:

-r disk:user1=/home/user

spowoduje, że pod windowsem będzie można (Start/Uruchom…) wejść w zasób:

\\tsclient\user1

co umożliwi nam wymianę plików z zadeklarowanym katalogiem user. Jeśli chcemy dysku z literką, np. Q, w Start/Uruchom klepiemy:

net use Q: \\tsclient\user

Wszystkie parametry są zresztą opisane w man rdesktop.

Warto zauważyć, że w przypadku Usługi Terminalowej, polecenie rdesktop tworzy nowe logowanie pod Windowsem, tzn. nie podłączamy się do sesji bieżącej, ale do sesji nowej. Można jednak przełączyć się do sesji bieżącej, uruchamiając Menadżera zadań (prawy klik na pasku zadań), przechodząc do zakładki Użytkownicy i wybierając tego, który siedzi przy monitorze. W Internecie można też znaleźć patch, który umożliwia uruchomienie kilku równoległych sesji w XP Professional (domyślnie działa chyba tylko jedna).

2. VNC
Programy VNC (Virtual Network Computing) są chyba najbardziej popularne. Protokół ten jest otwarty, dlatego powstało wiele implementacji. Osobiście pod Windows używam UltraVNC, ponieważ czerpie najwięcej z pozostałych wariantów (TightVNC, esVNC, RealVNC i innych) oraz umożliwia przesyłanie plików. Co prawda w chwili obecnej przesyłanie plików działa tylko między Windowsami, więc nas chwilowo nie dotyczy, ale i tak polecam właśnie UltraVNC. Wydaje mi się on najlepszy, ponieważ np. po stronie serwera Windows UltraVNC instaluje rodzaj wirtualnego sterownika karty graficznej, który umożliwia mu bardzo efektywne przechwytywanie obrazu pulpitu. Niemniej jednak VNC operuje głównie obrazkami, więc ma swoje ograniczenia wydajnościowe i od RDP, VNC zawsze będzie wolniejsze.

Protokół VNC przechwytuje albo cały pulpit albo tylko jego zmieniające się fragmenty, stosując jednocześnie jego kompresję, m. in. do jpg. Możemy sterować wydajnością obniżając jakość jpg lub wybierając tryb o mniejszej liczbie kolorów. Parametry połączeń serwera VNC ustawia się klikając na ikonce w tray’u. Można tam np. ustawić, czy przechwytywany ma być cały ekran, czy tylko jedno, wybrane okno.

VNC wymaga zainstalowania serwera na Windows. Jest to banalne; uruchamiamy program instalacyjny z http://www.ultravnc.com/download/index.html, który rejestruje usługę i prosi o określenie hasła. Ręcznie musimy tylko odblokować zaporę we Właściwościach Połączenia Sieciowego albo w Centrum Zabezpieczeń. Porty używane przez vncserver to 5900 oraz 5800.

Od strony Linuksa mamy teraz dwie możliwości podpięcia się do serwera VNC.
a) z wykorzystaniem przeglądarki internetowej z javą.
W firefoksie wpisujemy adres:

http://adres_hosta:5800

(Serwer VNC musi mieć włączoną opcję połączenia typu java na porcie 5800).

b) z wykorzystaniem klienta linuksowego

Najpierw instalujemy:

sudo apt-get install xvncviewer

W konsoli, możemy wówczas odpalić:

vncviewer nazwa_hosta:5900

Uwaga: VNC zawsze połączy nas z bieżącym pulpitem Windows. Nie ma możliwości pracy równoległej w tle.

B. Dostęp z Windowsa do Linuksa (i w sumie z Linuksa do Linuksa też)

Opiszę tutaj dwie różne metody, które różnią się dwoma aspektami: protokołem/wydajnością, ale przede wszystkim możliwością podłączenia się do bieżącej sesji X-window, ponieważ ludzie często o nią pytają, chcąc zajrzeć komuś w ekran aby udzielić pomocy.

1. Bieżąca sesja
Do zdalnego podłączenia się do linuksa wykorzystać możemy System > Preferencje > Zdalny Pulpit. Niestety, jego włączenie na odległość (np. przez ssh) może okazać się trudne, więc opłaca się zainstalować program x11vnc, który z punktu widzenia klienta działa tak samo, a łatwiej sobie z nim poradzić bez pomocy osoby siedzącej przed zdalnym hostem, bo składnia jego wywołania jest prostsza. Nie mówiąc o tym, że niektóre dystrybucje mogą nie mieć Zdalnego Pulpitu, a x11vnc zawsze da się zainstalować z jakiejś paczki.

Poza tym Zdalny Pulpit naraził mi się dwiema rzeczami: po pierwsze, na każdą sesję generuje inne hasło, co jest może bezpieczne, ale denerwujące, a po drugie: usiłując pomóc koledze z Kubuntu, dostałem białej gorączki usiłując pisać w jego zdalnej konsoli, bo klawiatura powtarzała litery po kilka razy. Natomiast serwer x11vnc uruchomiony zamiast Zdalnego Pulpitu pracował normalnie, chociaż to niby to samo?…

Uwaga: x11vnc to nie jest „zwykły” serwer VNC, który najczęściej pojawia się w opisach, ponieważ tamten, po zalogowaniu, tworzy dla nas osobną sesję (inaczej niż jego wersja pod Windows!). Opis takiej nowej sesji jest poniżej, w punkcie B2, na razie jednak łączymy się z sesją bieżącą!

Po pierwsze, instalujemy x11vnc:

sudo apt-get install x11vnc

Teraz należy go uruchomić. Ja robię to w taki sposób, że z docelowym komputerem Linuksowym (na którym działa sesja X-window) łączę się po ssh i w konsoli wydaję polecenie

x11vnc --display :0

Takie polecenie może też wydać użytkownik siedzący przy komputerze, w terminalu odpalonym w X-window. Wtedy pewnie nie będzie potrzebował opcji –display.

Jeśli masz problem z podłączeniem się do „display :0”, może się okazać, że twoja sesja ma inny numer, albo że powłoka graficzna nie jest uruchomiona.

Użytkownik zdalny może też uruchomić Zdalny Pulpit, o czym wspomniałem wyżej.

Jeśli się powiodło, serwer x11vnc pokazuje serię komunikatów, a na końcu port, na którym oczekuje połączeń (domyślnie: 5900). Sesja taka, uruchomiona w/w poleceniem jest bez hasła, oraz ma charakter jednorazowy, tzn. serwer wyłącza się po zakończeniu połączenia. Jeśli chcesz zabezpieczyć serwer hasłem i zachować działanie serwera po wylogowaniu, zapoznaj się z man x11vnc (opcje -forever, -passwd i -passwdfile).

Z tak uruchomionym serwerem x11vnc łączymy się klientem vncviewer uruchomiomym pod Linuksem albo pod Windowsem. W tym drugim przypadku należy upewnić się, że w kliencie Ultra VNCviewer wybrany rodzaj kompresji to TightVNC. Wyłączamy więc „automatycznie wybierz najlepsze ustawienia” i klikamy na „Tight”. W przeciwnym razie pod Windowsem zobaczysz tylko czarny ekran.

Sterowanie wydajnością odbywa się poprzez sterowanie jakością kompresji jpg.

Sesję x11vnc (tę samą!) można też udostępnić kilku komputerom (opcja -shared), jeśli chcemy swój pulpit pokazać jednocześnie więcej niż jednej osobie.

2. Nowa sesja

Tworzenie osobnej sesji, czyli nowego logowania i pracy w tle to domyślne zachowanie „normalnego” serwera VNC (w odróżnieniu od x11vnc). Nie zamieszczę tu jednak tego opisu, ponieważ VNC można w tym wypadku zastąpić systemem bardziej wydajnym, czymś w stylu RDP.

Takie rozwiązanie dostarcza Klient/Server NX, udostępniony przez http://www.nomachine.com. Wykorzystamy go, bo konfiguracja jest bajecznie prosta, praca bardzo szybka, a na dodatek możliwe jest przesyłanie plików.

(NX nie jest Wolnym Oprogramowaniem, ale w wersji podstawowej dostępny jest za darmo. Producent deklaruje, że na zawsze. Warto jednak wspomnieć, że firma NoMachine udostępniła część swojego kodu źródłowego na licencji otwartej, na bazie którego napisano niezależny, kompatybilny serwer, FreeNX – niestety, nie instalowałem go. Może ktoś spróbuje? Jest tutaj: http://freenx.berlios.de).

Po pierwsze, musimy miec skonfigurowany serwer ssh i przećwiczone logowanie do niego. Opisy dla ssh bez problemu można znaleźć na forum i w Internecie.

Pobieramy ze strony NoMachine i instalujemy 3 pakiety: nxserver, nxclient i nxnode. Miałem problem ze znalezieniem u nich tego ostatniego. Poradziłem sobie tak, że przeszukałem ich witrynę googlem, który odesłał mnie bezpośrednio do strony pobierania. 😉

Po zapisaniu ich w jednym katalogu możemy rozpocząć instalację.

Pierwszym krokiem jest doinstalowanie pakietu libstdc. Jeśli go już masz w systemie, to tym lepiej:

sudo apt-get install libstdc++2.10-glibc2.2

(oczywiście w nowszych dystrybucjach numer wersji może być inny). Drugim krokiem jest wejście do katalogu, gdzie zapisaliśmy pobrane pliki nx*.deb i wykonanie polecenia:

sudo dpkg -i nxserver*.deb nxclient*.deb nxnode*.deb

(Gwiazdki zastępują dokładną wersją pakietu pobranego z NoMachine).

Po wykonaniu tych poleceń, usługa serwera zostaje zainstalowana i uruchomiona automatycznie, nie zadając żadnych pytań. Możesz więc teraz na zdalnym komputerze z Windows (lub Linux) zainstalować i uruchomić klienta NX.

Klient pyta o adres zdalnego komputera, łącząc się z nim po ssh. Po pomyślnym zalogowaniu stawia automatycznie szyfrowany tunel, po czym otwiera sesję graficzną – już bez ponownego logowania. Jest to nowa, równoległa sesja.
Uwaga: jeśli otrzymujesz komunikat o niemożności nawiązania połączenia, a stosujesz firewall, upewnij się, że włączyłeś „enable SSL encryption of all traffic” na zakładce Advanced. Myślę, że spowolnia to nieco transmisję i podgrzewa procek, ale za to nie są potrzebne dodatkowe otwarte porty (tzn. wymagane jest tylko ssh).

Wydajność pracy jest bardzo dobra, o wiele większa niż VNC. Do tego, klient umożliwia mapowanie zasobów i wymianę plików. Konfigurację przeprowadza się w opcjach połączenia klienta. Można tam też skonfigurować przesyłanie dźwięku, ale sam tego nie ćwiczyłem.

Jeśli chcemy łączyć się z klienta Linuksowego, po prostu wydajemy na nim polecenie /usr/NX/bin/nxclient (oczywiście w trybie graficznym). Okienko konfiguracji jest bardzo podobne do klienta windowsowego.

3. Kontynuacja sesji w NX

Skoro nie można podłączyć się do sesji bieżącej, to co zrobić, jeśli chcielibyśmy rozpocząć jakąś pracę przy monitorze, zostawić ją w tle, a następnie kontrolować jej postępy zdalnie? NX nie potrafi łączyć się z bieżącą sesją, autorzy proponują więc następujące obejście tematu:

Na lokalnym komputerze tworzymy nową sesję nxclientem do naszego własnego komputera (localhost). Uruchamiamy, co tam sobie chcemy, po czym zamykamy okno bez wylogowywania się. Sesja pracuje w tle. Następnie, ze zdalnego komputera, łączymy się z komputerem ponownie – i klient NX pokazuje nam okno wyboru: nowa sesja/sesje odłączone. Wybieramy wtedy podpięcie się do sesji odłączonej i kontynuujemy pracę. 🙂

4. Wersja superszybka – używanie jednego programu w NX

Często możemy sobie zadać pytanie, czy do zdalnej pracy w ogóle potrzebny jest nam CAŁY pulpit, i do tego z tapetą? Jeśli chcemy tylko sprawdzić pocztę, wystarczy przecież program pocztowy. Chodzi konkretnie o taki efekt, jak na niniejszych zrzutach ekranu, pokazujących Konquerora odpalonego zdalnie pod Windows.

W takiej sytuacji po prostu wchodzimy w ustawienia klienta NX i opcji w „Desktop” wybieramy „Unix / Custom”. Następnie w ustawieniach zaawansowanych („Settings”) ustawiamy konsolę, albo wręcz na sztywno wybrane polecenie („following command”). Wtedy możemy wpisać tam komendę uruchamiającą wybrany program. Osobiście polecam jednak konsolę, zamiast polecenia na sztywno, gdyż jest to bardziej przydatne: w konsoli działa dopełnianie polecenia klawiszem TAB, i łatwo możemy odpalać mozilla-thunderbird, evolution itp. Praca na tak uruchomionym programie jest wyjątkowo szybka i autentycznie sprawia wrażenie pracy lokalnej już na łączu typu aDSL.

Artykuł jest autorstwa „frytek” z forum.ubuntu.pl

Advertisements

0 Responses to “Zdalny Pulpit”



  1. Dodaj komentarz

Skomentuj

Please log in using one of these methods to post your comment:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s





%d blogerów lubi to: