NX - zdalny pulpit w Linuksie
2 kwietnia 2008, oZz
Technologia NX pozwala na dostęp do komputera z innego urządzenia za pomocą internetu. Możesz go użyć, by zalogować się graficznie na swój komputer z odległej lokalizacji. Aby to zrobić potrzebny jest serwer NX zainstalowany na domowym komputerze oraz klient zainstalowany na stanowisku dostępowym (Linux bądź Windows).
Uwaga: w pierwotnej wersji artykułu wkradł się błąd rzeczowy. To co opisujemy nie jest FreeNXem, lecz klientem NX firmy nomachine. FreeNX to oddzielny projekt, darmowa i wolna implementacja NX. Klient nomachine ma jedno podstawowe ograniczenie: pozwala na uruchomienie maksymalnie 2 jednoczesnych sesji NX. Za więcej trzeba zapłacić. Za sprostowanie dziękujemy lukes-owi
Terminologia, którą powinieneś znać.
Serwer jest to komputer, z którym chcesz się połączyć. Jest to komputer, na którym serwer FreeNX będzie zainstalowany. Nazwa pakietu w Ubuntu obsługującego serwer to “nxserver”. Dla przykładu tu przytoczonego, domowy komputer jest serwerem z zainstalowanym systemem Debian Etch.
Klient jest to komputer, z którego chcesz uzyskać dostęp do serwera. Nazwa pakietu w Ubuntu obsługującego klienta to “nxcliient”. Dla przykładu tu przytoczonego, komputer w miejscu pracy to klient — w naszym przypadku MS Windows.
Oprogramowanie niezbędne do instalacji
NX serwer potrzebuje serwera SSH oraz paru bibliotek do poprawnego działania. Te pakiety mogą nie być zainstalowane na komputerze serwerze. Użyj następujących poleceń do ich instalacji (jako root):
#aptitude install libstdc++2.10-glibc2.2 ssh
Zainstaluj NX Server w Debian Etch
Najpierw potrzebujesz pobrać pakiety .deb używając następujących poleceń:
#wget http://64.34.161.181/download/2.1.0/Linux-NoXft/nxclient_2.1.0-17_i386.deb
#wget http://64.34.161.181/download/2.1.0/Linux/nxnode_2.1.0-22_i386.deb
#wget http://64.34.161.181/download/2.1.0/Linux/FE/nxserver_2.1.0-22_i386.deb
Oczywiście można wybrać dowolny serwer z pakietami NX. Ten podany może w momencie gdy czytasz ten artykuł być niedostępny. Jeśli tak jest rzeczywiście, użyj Google.
Teraz potrzebujesz zainstalować pakiety .deb w następującym porządku. Kolejność jest kluczowa.
#dpkg -i nxclient_2.1.0-17_i386.deb
#dpkg -i nxnode_2.1.0-22_i386.deb
#dpkg -i nxserver_2.1.0-22_i386.deb
Jeśli pojawią się jakieś błędy (zwykle brak zainstalowanego wymaganego pakietu zależnego), spróbuj użyć następującego polecenia, by je naprawić:
#apt-get -f install
Teraz potrzebujesz się upewnić, że SSH i serwery nx działają. Jeśli okaże się, że nie, zainicjuj je następującymi poleceniami:
#/etc/init.d/ssh start
#/etc/init.d/nxserver start
Instalacja klienta NX w Windows
Po pierwsze potrzebujesz pobrać klienta NX ze strony projektu
W tym przykładzie używam klienta NX dla Windows i zainstalowałem go w moim Windows XP.
Kiedy skończysz instalację, powinieneś zobaczyć skróty FreeNX na pulpicie. Należy wtedy NX

Teraz powinieneś wprowadzić nazwę sesji, serwera lub adres ip i numer portu. Adres IP serwera sprawdzisz przez wywołanie na nim polecenia /sbin/ifconfig.

Następnie wymagane jest wprowadzenie twojej sesji, rozdzielczości ekranu i kliknięcie ‘next’.

Konfiguracja zakończona, możesz kliknąć ‘Finish’.

Teraz potrzebujesz wprowadzić użytkownika, hasło z którym chcesz się połączyć i kliknąć na ‘login’. Oczywiście chodzi o login i hasło do konta użytkownika zainstalowanego na serwerze.

Połączenie stabilizujące ekran.

Ono zakończy połączenie z twoim serwerem.
Instalacja klienta NX w Debianie
Po pierwsze musisz pobrać pakiet .deb klienta używając następującej komendy:
#wget http://64.34.161.181/download/2.1.0/Linux-NoXft/nxclient_2.1.0-17_i386.deb
Klient NX jest dostępny również dla innych dystrybucji Linuksa. Skąd go ściągnąć? Użyj Google. Lub Yahoo Search.
Zainstaluj pakiet DEB używając następującego polecenia:
#dpkg -i nxclient_2.1.0-17_i386.deb
Jeśli napotkasz jakieś błędy, użyj następujących poleceń by je naprawić:
#apt-get -f install
Teraz musisz przejść wybrać w menu GNOME: Applications–>Internet–>NX Client for Linux –> NX Client for Linux. Jeśli posiadasz inne środowisko graficzne, aplikacja kliencka może znaleźć się w innym miejscu, lub też w ogóle nie znajdować się w menu. W takim przypadku uruchom klienta w konsoli wpisując po prostu: nxclient. Kiedy program się otworzy, możesz postępować zgodnie z powyższą procedurą dla Windows, by połączyć się z serwerem i pracować zdalnie.
Dodatkowa konfiguracja
Zmiana numeru portu SSH
W domyślnej konfiguracji, nxserver korzysta z portu 22 do komunikacji z SSH. W niektórych maszynach lub sieciach, port 22 może być zablokowany. Przykładowo, niektórzy administratorzy sieci mogą blokować port 22 z różnych powodów. By zmusić serwer SSH do pracy na innym porcie, powiedzmy 8888, możesz wykonać następujące kroki:
Wyedytować plik /etc/ssh/sshd_config na serwerze:
#nano /etc/ssh/sshd_config
Znaleźć ciąg port 22 i zmienić go na port 8888.
Następnie potrzebujesz zrestartować demona SSH. Spróbuj:
#/etc/init.d/ssh restart
Otwórz plik /etc/nxserver/node.conf
#nano /etc/nxserver/node.conf
Znajdź:
#SSHD_PORT=22
i zmień na
# Numer portu, na którym działał "sshd".
SSHD_PORT=8888
Chodzi oczywiście o analogiczną zmianę portu jak w przypadku SSHD.
Było to tłumaczenie tekstu: FreeNX Server and Client Installation in Debian Etch. Tłumaczył: Jerzy Jan Starnawski
Korekta i skład: oZz
Liczba komentarzy: 26
W komentarzach możesz używać prostych znaczników HTML. Przykłady:
- Link: <a href="jaklinux.org">Linux dla każdego</a>,
- Wytłuszczenie: <strong>tekst pogrubiony</strong>,
- Kursywa: <em>tekst pochylony</em>,
- Przekreślenie: <strike>
tekst przekreślony</strike>, - Kod: <code>
printf("blok kodu");</code>, - Cytat: <blockquote>cytat</blockquote>



Jeżeli ktoś nie ma aptitude i dpkg, to jak ma to zainstalować?
apt-get, dselect, synaptic, adept, gdebi - jest tyle programów do instalacji pakietów deb….
POLDEK w PLD-LINUX
poldek -i freenx
[grzegorz@dom ~]$ poldek -i freenx
Wczytywanie [pndir]ac…
Wczytywanie [pndir]ac-updates…
Wczytywanie [pndir]ac-supported…
Wczytywanie [pndir]ac-ready…
Przeczytano 18439 pakietów
Usunięto 6 zdublowanych pakietów z listy dostępnych
błąd: freenx: nie ma takiego pakietu
Niestety bez buildera się nie obędzie.
i czym to sie rozni od VNC ?
Jest zdecydowanie bartdziej wydajne. To chyba najważniejsza różnica.
A coś na potwierdzenie?
VNC przecież oferuje różne rodzaje kompresji, skalowanie obrazu, ograniczanie głębi kolorów. Wszystko da się dopasować żeby działało na różnych łączach.
@iss: Na szybkim łączu możesz nie zauważyć różnicy. Na wolnym (poniżej 128 Kbps) już tak. Kilka różnic:
- VNC przesyła bitmapy, NX jest klientem X11
- NX cache’uje dane
- NX działa nie tylko z X ale też z VNC (sic!) i Remote Desktop (przez własne proxy)
- W VNC możesz podłączyć się do działającej sesji, w NX tego nie zrobisz (i to jedyny plus VNC jaki widzę)
“W VNC możesz podłączyć się do działającej sesji, w NX tego nie zrobisz”
Nomachine NX to umożliwia
Może taka że przy VNC spędziłem trochę czasu i do dziś dnia nie udało mi się skonfigurować na serwerze więc zapewne z NX’em będzie dużo prościej.
Chyba wkradł się błąd - mowa w newsie jest tylko o produktach firmy Nomachine. Co z tego, że są w pewnych warunkach darmowe; projekt freenx całkowicie na GPL to chyba umarł.
Orientuje się ktoś czy da się w FreeNX-ie nagrywać/odgrywać sesje użytkowników ?
Nie wiem czy to nieobycie z wersją FreeNX (dawno temu to było jak instalowałem tą wersję), ale w wersji darmowej z NoMachine możliwe jest uruchomienie ssh na porcie domyślnym (22) i łączenie się zarówno do niego jak i przez NX, który jest tunelowany właśnie przez ssh.
Może to rzuci dodatkowe światło na różnice w tym podejściu. Dodatkowa dobra informacja - korzystanie z NX w przeciwieństwie do VNC (patrzę po różnicach konfiguracji obu, gdzie VNC szybko odpuściłem z braku czasu) jest banalnie proste.
błąd sie wkradł:
zamiast
aptitude libstdc++2.10-glibc2.2 ssh
powino być raczej:
aptitude install libstdc++2.10-glibc2.2 ssh
warto by było też wspomnieć, że komputer, z którym się łączymy musi mieć zewnętrzne IP lub przekierowany dany port. Nie dla wszystkich jest to takie oczywiste.
Dzięki, poprawione.
Myślę, że jak ktoś stawia w konsoli FreeNX, to wie o tym, że nie połączy się ze świata z kompem z prywatnym IP.
Chociaż głowy nie dam
a jak to się ma z licencją w firmie?
1) Artykuł opisuje instalację serwera nx firmy NoMachine, a nie FreeNX. W błąd wprowadza również stwierdzenie instalacji klienta FreeNX - jeśli już to mówimy o kliencie NX firmy NoMachine.
2) Serwer NX firmy NoMachine pozwala na uruchomienie maksymalnie 2 jednoczesnych sesji NX. Za więcej trzeba zapłacić.
3) Projekt FreeNX wcale nie umarł - ma się bardzo dobrze, a najnowsza wersja bazuje na bibliotekach NoMachine 2.1.0. Nie posiada ograniczeń ilości sesji.
Cóż mogę rzec - FUMD
= FreeNX u mnie działa!
pozdrawiam
Dzięki. Rzeczywiście wkradł się poważny błąd. To co opisujemy to oczywiście nie Free NX, a darmowy klient NX od nomachine. FreeNX to osobny projekt, nie opisywany w tym artykule. Sprostowałem na początku tekstu — dzięki lukes!
A może ktoś chciałby skrobnąć artykuł o FreeNX? Do wygrania nagrody więc warto się postarać
Ymmm… takie pytanko… ni ukamieniujcie mnie od razu.
Czy jest mozliwosc podlaczenia sie do servera gdy ten nie ma IP zewnetrznego? Domyslam sie ze nie ale moze czegos nie wiem
tunel do sieci i gra gitara ;]
karol: jeśli ustawisz, aby całe połączenie było szyfrowane to będzie ono się odbywać tylko w ramach portu SSH - nie będą zatem otwierane inne porty dla komunikacji chociażby X-ów.
Jedyne co musisz to poprosić administratora routera, aby wykonał przekierowanie z jakiegos portu routera na port Twojego serwera SSH. Taka prośba w sieciach korporacyjnych (lub tam gdzie bezpieczeństwo odgrywa zasadniczą rolę) na pewno zostanie odrzucona.
CHodzilo mi o komunikacje w pracy z domem. Dom - server, praca klient. Tylko ze w domu mam trzy kompy podpiete pod router i dlatego sie pytam zeby nie przepinac kompow.
hmm… czy aktualną wersją nx nie jest przypadkiem 3.1?
Próbowałem zmienić numer portu wg powyższej instrukcji, jednak po zmianie domyślnego portu na inny, klient nie może uzyskać autentykacji. Czy ktoś ćwiczył ten temat i wie jak to zrobić ?
BTW aktualna wersja na dzis to 3.2.0-7, pliki konfiguracyjne znajdują się w /usr/NX/etc/
Połączenie stabilizujące (!?) ekran (!?)