Hlavní navigace

NX: vzdálená plocha pro šneky

Adam Štrauch 6. 1. 2009

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

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

Našli jste v článku chybu?

6. 1. 2009 8:31

ForMat (neregistrovaný)
sloziteho na tom neni nic. Pripojuji se z domu do prace (ano ja vim, clovek by mel doma delat jine veci...), v praci mam velmi rychlou linku, doma mam rozumny kabel, presto jsou programy pres nativni X pomale. prikazova radka a vim OK, ale kdyz potrebuji neco sofistikovanejsiho, je to pomale. Pripojuji linux k linuxu, oba slusne stroje se slusnym pripojenim. Kde je, guruove, problem, ze musim pouzivat obezlicky typu VNC a NX?

6. 1. 2009 9:06

uživatel si přál zůstat v anonymitě
Haha, jaký podařený vtip. Žeprý napřed a poklad k tomu. Jak známo, X protokol kandiduje na nejpitomější protokol světa, dá se o něm říct v podstatě cokoli, jen ne, že je síťový. Ani na běžné LAN to nejede nijak slušně (bežná LAN obvykle nebývá vyhrazena pro jedno jediné X sezení) a na jakékoli delší vzdálenosti (kde se projeví ukecanost protokolu a závislost na latenci spojení) můžou X ve své tragikomičnosti směle konkurovat němým groteskám. Naprosto "výjimečné" vlastnosti X protokolu (které vzh…
Vitalia.cz: Jak vybrat ořechy do cukroví a kde mají levné

Jak vybrat ořechy do cukroví a kde mají levné

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

120na80.cz: Rakovina oka. Jak ji poznáte?

Rakovina oka. Jak ji poznáte?

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

Podnikatel.cz: Babiš: E-shopy z EET možná vyjmeme

Babiš: E-shopy z EET možná vyjmeme

Lupa.cz: Seznam mění vedení. Pavel Zima v čele končí

Seznam mění vedení. Pavel Zima v čele končí

DigiZone.cz: ČRa DVB-T2 ověřeno: Hisense a Sencor

ČRa DVB-T2 ověřeno: Hisense a Sencor

Podnikatel.cz: EET: Totálně nezvládli metodologii projektu

EET: Totálně nezvládli metodologii projektu

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Podnikatel.cz: Na poslední chvíli šokuje výjimkami v EET

Na poslední chvíli šokuje výjimkami v EET

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

Vitalia.cz: Baletky propagují zdravotní superpostel

Baletky propagují zdravotní superpostel

Lupa.cz: Google měl výpadek, nejel Gmail ani YouTube

Google měl výpadek, nejel Gmail ani YouTube

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

DigiZone.cz: Rádio Šlágr má licenci pro digi vysílání

Rádio Šlágr má licenci pro digi vysílání

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

DigiZone.cz: ČT má dalšího zástupce v EBU

ČT má dalšího zástupce v EBU