NX – zdalny pulpit w Linuksie

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

Komentarze (RSS)
Komentarze są prywatnymi opiniami dodających je osób. Prosimy o zachowanie kultury wypowiedzi. Komentarze obraźliwe oraz obniżające poziom serwisu będą usuwane. Więcej w regulaminie komentowania.

29 komentarzy

  1. Rarytas 2 kwietnia 2008 o godz. 3:32 #

    Jeżeli ktoś nie ma aptitude i dpkg, to jak ma to zainstalować?

  2. cezaryece 2 kwietnia 2008 o godz. 8:44 #

    apt-get, dselect, synaptic, adept, gdebi – jest tyle programów do instalacji pakietów deb….

  3. poldek 2 kwietnia 2008 o godz. 9:23 #

    POLDEK w PLD-LINUX

  4. cactus 2 kwietnia 2008 o godz. 10:04 #

    poldek -i freenx

    • dzikus 2 kwietnia 2008 o godz. 10:15 #

      [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.

  5. dave 2 kwietnia 2008 o godz. 10:30 #

    i czym to sie rozni od VNC ?

    • michuk 2 kwietnia 2008 o godz. 12:45 #

      Jest zdecydowanie bartdziej wydajne. To chyba najważniejsza różnica.

      • iss 3 kwietnia 2008 o godz. 23:14 #

        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.

        • michuk 4 kwietnia 2008 o godz. 0:21 #

          @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ę)

        • tralala 5 maja 2008 o godz. 12:14 #

          "W VNC możesz podłączyć się do działającej sesji, w NX tego nie zrobisz"

          Nomachine NX to umożliwia

  6. Bartek 2 kwietnia 2008 o godz. 15:07 #

    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.

  7. Apage 2 kwietnia 2008 o godz. 17:02 #

    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ł.

  8. lepton0 2 kwietnia 2008 o godz. 19:22 #

    Orientuje się ktoś czy da się w FreeNX-ie nagrywać/odgrywać sesje użytkowników ?

  9. rdg 2 kwietnia 2008 o godz. 19:28 #

    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.

  10. wujek_bogdan 2 kwietnia 2008 o godz. 22:38 #

    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.

    • michuk 3 kwietnia 2008 o godz. 1:35 #

      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 :)

  11. tomaszx 3 kwietnia 2008 o godz. 2:56 #

    a jak to się ma z licencją w firmie?

  12. lukes 3 kwietnia 2008 o godz. 19:01 #

    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

    • michuk 3 kwietnia 2008 o godz. 22:38 #

      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ć :)

  13. karol 4 kwietnia 2008 o godz. 21:30 #

    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 :)

  14. lukes 5 kwietnia 2008 o godz. 0:31 #

    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.

    • zumek 11 kwietnia 2008 o godz. 14:02 #

      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.

  15. ufoman 7 kwietnia 2008 o godz. 1:15 #

    hmm… czy aktualną wersją nx nie jest przypadkiem 3.1? ;)

  16. yogi66 27 kwietnia 2008 o godz. 19:19 #

    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/

  17. thalcave 5 września 2009 o godz. 0:35 #

    IMO w arcie brakuje informacji o X-ach zainstalowanych na serwerze. Serwer nie działał mi póki nie zainstalowałem graficznego menadżera logowania.

  18. marek 12 marca 2011 o godz. 19:35 #

    Witam,

    Debian, Gnome 2.30.2, lokalnie jest pl.

    Połączenie przez NX, gnome eng

    Hmm, wie ktoś gdzie jest haczyk?

  19. Sławek 14 września 2012 o godz. 13:12 #

    Pokazana opcja zmiany portu nie jest do końca trafna.

    Poza portem w node.cfg należy zmienić dwie linijki w server.cfg
    SSHDPort = "22"

    SSHDAuthPort = "22"

    źródło: http://blog.infusiontechsolutions.com/how-to-chan

(wymagane)
URI
Uwaga! Niektóre komentarze, m.in. te dodane przez niezalogowanych i nowych użytkowników, są ręcznie moderowane. Jeśli Twój komentarz nie ukaże się od razu, nie dodawaj go ponownie, tylko cierpliwie poczekaj na akceptację.

Literówki najlepiej zgłaszać mailem: sirmacik@jakilinux.org!

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: <del>tekst przekreślony</del>,
  • Kod: <code>printf("blok kodu");</code>,
  • Cytat: <blockquote>cytat</blockquote>
Uwaga: jeśli dodasz nieznany znacznik, będzie on niewidoczny, gdyż system filtruje takie znaczniki.