Hlavní navigace

NX: vzdálená plocha pro šneky

6. 1. 2009
Doba čtení: 5 minut

Sdílet

Vzdálená plocha v podobě VNC není nejrychlejším řešením, ztrácí dech i na rychlých sítích a na pomalých nemůže být o používání řeč. Zde přichází do cesty firma NoMachine, která v této oblasti staví Linux do srovnatelné pozice s konkurencí. Výhody jejich produktu bohatě vyrovnají i trochu nezvyklou instalaci.

Úvod

Vzdálená správa s VNC je sice jednoduchá na konfiguraci a možností jak na Linuxu VNC nastavit je velké množství, ale když přijde na pomalejší linku, tak se velmi rychle projeví jeho vlastnosti, o kterých jste si mohli přečíst v minulém článku o vzdálené ploše. Firma NoMachine proto vyvinula multiplatformní nástroje, které umožní vzdáleně pracovat i na relativně pomalých linkách typu GPRS. Balík nástrojů se jmenuje NX a je k dispozici pro Linux, Windows, Solaris a Mac OS X. Dále se tento balík dělí na free edici a placenou edici s mnoha variantami, která je určena hlavně pro firmy.

Existuje také open-source implementace NX serveru, kterou jsem netestoval, ale měla by být velmi podobná originální implementaci. Pro připojení se používá stejný klient od firmy NoMachine.

Jak to funguje

Na rozdíl od VNC, které musíme nějakým způsobem tunelovat přes šifrovaný kanál, NX se rovnou tuneluje přes SSH samo a musím uznat, že velmi elegantním způsobem. V systému se vytvoří uživatel NX, ke kterému se naimportuje nás veřejný SSH klíč. Po přihlášení na tohoto uživatele na nás už čeká příkazová řádka nxserveru. Pokud se takto připojí nxclient, tak rovnou začne komunikovat se serverem spravujícím sezení jednotlivých uživatelů, kterých může mít jeden uživatel i více. Ze stránek výrobce je možné stáhnout program, který ulehčuje konfiguraci pravidel přes webové rozhraní, nicméně dnes si vystačíme s výchozím nastavením.

Na rozdíl od VNC nenutí NX administrátorovi žádné výchozí nastavení rozlišení a všechno lze naklikat v klientovi. Můžeme měnit:

  • Rozlišení,
  • co se spustí po vytvoření spojení,
  • šifrování přenosu,
  • nastavení tiskáren (CUPS),
  • nastavení sdílených adresářů (Samba),
  • rychlost linky.

Díky tomu mohou být k jednomu serveru připojeni klienti používající KDE, Gnome nebo v mém případě správce oken OpenBox. Jednoduše stačí vybrat startovací skript, podobný tomu, co jsme vytvářeli pro VNC v minulém článku.

Rychlost NX vychází z jeho optimalizací. Cachuje obsah plochy i jednotlivých oken, takže než se rozhodne něco poslat, ujistí se, že druhá stana to už nemá. Dále potlačuje některé volání X serveru, který si rád s okny povídá. V neposlední řadě to je také JPEG komprese obrazu a ZLIB použitá na všechno ostatní. Podle svých vývojářů je NX optimalizovaný do posledního bitu. NX je vytvořený primárně pro X server, takže jeho největší přednosti se objeví právě u něj.

Instalace na serveru

Velkou nevýhodou instalace je vnucení adresářové struktury, která vybočuje ze standardů unixového světa. Program se totiž nainstaluje do adresáře /usr/NX.

Varianty

Nejprve si vybereme variantu, kterou chceme nainstalovat. Osobně doporučuji free edici ze stránek výrobce, se kterou budete mít nejméně problémů. V mém Gentoo se balíček jmenuje nxserver-freeedition a v jiných distribucích to bude podobné. Na stránkách NoMachine najdeme také balíčky pro nejrozšířenější distribuce. Ty jsou podporované opravdu široce. Po instalaci se nám objeví v systému zmíněný adresář /usr/NX.

Předání SSH klíčů a konfigurace SSHd

V něm najdeme normální unixovou adresářovou strukturu, která obsahuje adresář home/nx/.ssh. Ten je důležitý, protože do něj nakopírujeme náš veřejný klíč. Pokud ho nemáme, použijeme program ssh-keygen s parametrem -t dsa pro jeho vygenerovaní. Klíč poté najdeme v souboru ~/.ssh/id_dsa.pub a rovnou ho můžeme zkopírovat do souboru /usr/NX/home/nx/.ssh/authorized_keys2 na vzdáleném stroji, kde běží nxserver.

Přidání uživatele

Pokud máme klíč umístěný, je potřeba přidat do NX nového uživatele a nastavit mu heslo. To uděláme pomocí programu nxserver:

jako root:

# /usr/NX/bin/nxserver --useradd uzivatel

jako uzivatel:

$ /usr/NX/bin/nxserver --passwd

Pokud vše proběhlo bez problémů, je na čase nahodit nxserver. K tomu může sloužit init skript připravený od distributora nebo samotný program nxserver s parametrem --start, --stop nebo --restart.

Nastavení klienta

V této fází můžeme přejít na stroj, ze kterého se budeme připojovat, nainstalujeme na něm stejný balíček jako na serveru. Kromě serverové části se nainstaluje i klient, kterým se připojíme. Ten je klikací a intuitivně navržený. Hned po spuštění se objeví průvodce přidání nového sezení. Sezení můžeme vytvořit několik.

Začneme průvodcem, který se objeví při prvním spuštění programu nxclient.

nx-wizard1

Je jednoduchý a v několika krocích zvládne nastavit základní parametry připojení.

nx-wizard2

V druhém okně vyplníme název sezení, adresu a vybereme typ připojení. Při každé volbě NX vybírá jiný způsob práce s daty, takže při nastavení LAN půjde kvalitnější obraz než při volbě MODEM. Dobře to je vidět například při přehrávání videa v ukázce níže.

nx-wizard4

Ve třetím nastavíme, co chceme spouštět. Levé okno získáme kliknutím na settings, kde také můžeme nastavit, jestli chceme každé okno na ploše zvlášť nebo vytvořit jednu virtuální plochu. V prvním případě se otevře okno, jako kdyby bylo součástí lokálního systému (s okrajem navíc), u druhého se po připojení objeví jedno velké okno s virtuální plochou, jako jsme zvyklí třeba u qemu nebo Wine.

nx-wizard6

V posledním okně si můžeme zaškrtnout vytvoření ikonky na ploše, případně se přepnout do pokročilého konfiguračního okna.

nx-wizard10

Máme-li všechny parametry nastavené, zobrazí se nám okno pro připojení. Průvodce se spouští, jen pokud neexistuje žádné sezení.

nx-wizard8

Po odkliknutí tlačítka „Login“ a při správné nastaveném serveru se nám po chvilce objeví plocha. Prvních několik vteřin/minut bude spojení pomalejší, protože nx si musí nacachovat obsah okna, ale poté by mělo být spojení již rychlé.

Pokud vypneme naši virtuální plochu, objeví se možnost vypnout vzdálenou plochu nebo jen odpojení od plochy. Pokud NX při připojení zjistí, že existuje běžící sezení, tak k němu nabídne připojení.

nx-wizard7

Video

Rychlé připojení

Toto video bylo pořízeno na 100 mbit/s et­hernetu při nastavení rychlosti linky na ADSL. Podle toho co jsem zkoušel, nastavení linky v programu nxclient nemá na rychlost reakcí na takto rychlé síti vliv. Jediné, co se mění, je kvalita obrazu. Dovolím si tvrdit, že takto se dá připojení na vzdálenou plochu používat prakticky normálně. Odezva není okem poznat. Jediné, co je trochu trhavé, je přesunování oken.

Pomalé připojení

U testu s pomalým připojením jsem použil GPRS/EDGE. NXku stačí otevřít ve firewallu pouze port s SSHčkem a je možné ho naplno využívat. Přes GPRS se připojení chovalo mnohem lépe než VNC. Bylo dokonce možné získat i nějaký obraz z videa. Rolování oken bylo trochu pomalejší než u minulého testu, ale stále na použitelné úrovni. Práce s příkazovou řádkou byla taktéž dobrá.

CS24_early

Závěr

Tímto možnosti NX nekončí. Balík obsahuje řadu dalších nástrojů a hlavně možnost konfigurace. Ty vydají na samostatný článek, takže si další možnosti probereme příště. Zajímavou vlastnosti VNC i NX je možnost sdílení tiskáren a disků pomocí CUPS a Samby. To je také samostatné téma na jeden z příštích článků.

Odkazy

Byl pro vás článek přínosný?

Autor článku

Adam Štrauch je redaktorem serveru Root.cz a svobodný software nasazuje jak na desktopech tak i na routerech a serverech. Ve svém volném čase se stará o komunitní síť, ve které je již přes 100 členů.