NX-teknik

NX-teknik
Initial release 2003
Stabil frisättning
8.4.2 / 16 februari 2023 ; för 15 dagar sedan ( 2023-02-16 )
Storlek 28 MB
Typ Programvara för fjärrskrivbord
Licens Gratisprogram
Hemsida www .nomachine .com

NX-teknik , allmänt känd som NX eller NoMachine, är en egenutvecklad plattformsoberoende programvaruapplikation för fjärråtkomst, skrivbordsdelning, virtuellt skrivbord (endast på Linux) och filöverföring mellan datorer. Den är utvecklad av det Luxemburg -baserade företaget NoMachine.

NX:s design härleddes från projektet Differential X Protocol Compressor (DXPC). 2003 skapades komprimerings- och transportprotokollet NX för att förbättra prestandan hos det inbyggda X-visningsprotokollet så att det kunde användas över långsamma anslutningar som uppringda modem. Den lindade fjärranslutningar i SSH- sessioner för kryptering. Kärnkomprimeringstekniken släpptes under GNU GPL2 -licensen (NX 1) för Linux-servrar, medan andra komponenter som NX Server och NX Client-programmen förblev proprietära, den 14 februari 2003. Den senaste uppdateringen av denna öppen källkodsversion var släpptes 2012.

2010 meddelade företaget att de skulle släppa tekniken under en egen licens.

Från och med 2013, med releasen av version 4.0, blev NX sluten källkod. Det var 2013 som NX-mjukvaran blev NoMachine-mjukvara.

Funktioner

NoMachine NX kan installeras på Windows , Mac , Linux , Raspberry Pi och Linux ARM- datorer för att låta användare fjärråtkomst till skrivbordet över nätverket. Användare ansluter från en Windows, macOS, iOS , Android , Linux, Raspberry Pi, Linux ARM eller webbläsare . Andra funktioner inkluderar USB-omdirigering, sessionsinspelning, filöverföring, multimediafunktion och webbläsarbaserad åtkomst. Avancerade produkter inkluderar multi compute-nod-klustring och fail-over-funktioner.

NoMachine Linux-produkter erbjuder också möjligheten att köra flera virtuella Linux-skrivbord på en Linux-server (Linux Terminal Server) som är fjärråtkomst via en nätverksanslutning. Bilder som renderas på servern komprimeras och kodas och skickas sedan till klienten för dekryptering och dekomprimering. NX använder en kombination av video- och bildkodning baserad på standardkodekar och ett antal tekniker utvecklade av NoMachine samt VirtualGL för att komma åt avancerade OpenGL -baserade X11 -applikationer och 3D CAD- program.

NX 4 och senare versioner

NX 4 introducerade optimal bildkomprimering och cachning med de senaste videokodningsteknikerna. När du ansluter värdar över nätverket fungerar NX-protokollet som en generisk tunnel, med ytterligare information om inramning och flödeskontroll, och anpassar dynamiskt komprimering och bandbredd efter nätverkshastighet och kapacitet. För kompatibilitet är multiplexering baserad på version 3.

Klientapplikationer kan ansluta med SSH-protokollet, med samma autentiseringsmekanismer som version 3, med en ny SSH-systeminloggning eller med den nya SSL- aktiverade NX-demonen. När en säker anslutning väl har upprättats, förhandlar klienterna en skrivbordssession med ett textprotokoll som är kompatibelt med det som används i version 3. Klienter kan också använda ett av de olika NoMachine-undersystemen, såsom filsynkroniseringstjänsten, programuppdateringar, katalogtjänster, röst/ videomeddelanden och serverklustring.

NX 4 lade till nya kanaltyper för att hantera tjänster som den nya omdirigeringen av filsystemet, nytt utskriftssystem, virtuella nätverksgränssnitt, smartkort och USB-enheter. De flesta NoMachine-komponenter, inklusive agentprogrammet som imiterar skrivbordssessionen på servern, bäddar in så kallade "slavservrar" – lättviktsservrar som tillhandahåller kommunikation mellan processer och automatisering som kan användas för att skapa ytterligare kanaler, under kontroll av klient och server.

Applikationer kan fortfarande begära att kanaler överför data med hjälp av NX X Window System-protokollkomprimering. Version 4 lade till nya kanaltyper för video och ljud, vilket tillåter flera codecs i samma ström. För närvarande kan visningskanalerna (video) hantera data i H.264 , VP8 , MJPEG och andra format, med ytterligare primitiver som används för att implementera speciella kodningsoperationer samtidigt med vanliga ljud- och videoströmmar.

När sessionen väl är etablerad mellan klient och server kan NX-data färdas på TCP- och UDP-strömmar. Klienten och servern väljer dynamiskt vilken transport som ska användas, baserat på typen av data och nätverksförhållanden. Om kommunikation över UDP är aktiverad kan klient och server automatiskt instruera routern att öppna de nödvändiga portarna. UDP använder symmetrisk Blowfish-kryptering. Värdgränssnittet och porten, och Blowfish-krypteringsnyckeln, förhandlas via en säker TCP-länk. UDP-kommunikation är inaktiverad när du använder SSH-tunnling, så att all data använder samma SSH-länk.

Visningsprotokollet använder en kombination av video- och bildkodning, baserat på standardkodekar och ett antal tekniker utvecklade av NoMachine. NX övervakar display och användaraktivitet för att anpassa kvalitet och buffring till den visade applikationen.

Autentisering

Från och med version 4.0, när standard-NX-protokollet används, kan inloggningen ske via lösenordsbaserad autentisering, privat nyckel eller Kerberos -biljettautentisering.

När NX är konfigurerat för att skicka sina data med SSH (endast tillgängligt på servrar i företagsversioner), är följande autentiseringsmetoder tillgängliga:

Klient till server

  • NX logga in som NX-användare med NX SSH-nyckeln och användarlösenordsbaserad autentisering
  • Systeminloggning med lösenordsbaserad autentisering
  • Systeminloggning med SSH-nyckelbaserad autentisering
  • Systeminloggning med SSH-nyckelbaserad autentisering och SSH-nyckel lagrad på ett smartkort
  • Systeminloggning med Kerberos-biljett som finns på klientsidan

Server till nod

  • Logga in med lösenord
  • Logga in med SSH-nyckel vidarebefordrad från klient (t.ex. NoMachine Player) via server till nod
  • Logga in med Kerberos-biljett vidarebefordrad från klient via server till nod
  • Logga in med Kerberos-biljett begärd av Kinit på servervärden
  • Logga in med Kerberos-biljett begärd av PAM- modulen på servervärden.
  • Logga in med lösenord till Kerberos-biljett begärd av PAM-modulen på nodvärden

Äldre teknik

NX komprimerar X11-data för att minimera mängden data som överförs och cachar data för att hålla sessionen så responsiv som möjligt. Till exempel, första gången en meny öppnas kan det ta några sekunder, men är därefter nästan omedelbar.

NX är snabbare än sina föregångare, eftersom det eliminerar de flesta X- rundresor , medan dxpc och MLView bara komprimerar data.

De två huvudkomponenterna i NX är nxproxy och nxagent . nxproxy härleds från dxpc och startas på både fjärrdatorer (klient i X-terminologi) och lokala (server i X-terminologi), simulerar en X-server på klienten och vidarebefordrar fjärranslutna X-protokollförfrågningar till den lokala X-servern.

Enklaste inställningen:

fjärrklienter (xterm, etc.) ↕ nxproxy-klient ↕ Nätverk ↕ nxproxy-server ↕ lokal X-server (skärm/tangentbord)

nxproxy uppnår 1:10 till 1:1000 komprimeringsförhållanden, vilket minskar bandbredden, men eliminerar inte de flesta av X:s synkrona rundresor, ansvariga för det mesta av X:s upplevda latens.

nxagent , härlett från Xnest (liknande Xephyr ), startas vanligtvis på fjärrmaskinen (klient) och undviker därmed de flesta X11-protokollet tur och retur. Tillsammans med nxproxy (inbyggd i nxagent) fungerar den här installationen bra över länkar med låg bandbredd och hög latens.

Typisk inställning:

fjärrklienter (xterm, etc.) ↕ nxagent serversida \ nxagent klientsida nxagent körbar nxproxy klient / ↕ Nätverk ↕ nxproxy server ↕ lokal X-server (skärm/tangentbord)

På system med en funktionell X11-implementering är nxproxy och nxagent allt som behövs för att upprätta en anslutning med krav på låg bandbredd mellan en uppsättning fjärranslutna X-klienter och den lokala X-servern. SSH kan användas för att upprätta en säker tunnel mellan värdarna. NX 3 förlitar sig på SSH-funktioner och befintlig SSH-programvara med öppen källkod, vilket gör det möjligt att köra samtida Unix- och Windows-datorer och godtyckliga nätverksapplikationer över Internet på ett säkert och kontrollerat sätt.

FreeNX och de olika NX-klienterna används för installation, hantering av avstängning och återupptagning, säker tunnling över SSH samt utskrift och ljud.

Andra visningsprotokoll

NoMachines NX-protokoll tillåter klientanslutningar till värdar via Remote Desktop Protocol (för Windows Remote Desktop Services-sessioner) och externa Virtual Network Computing- sessioner (de flesta moderna generella operativsystemplattformar), såväl som XDM.

NX-derivat och gafflar

Före version 4.0 släppte NoMachine kärn NX-teknik under GNU General Public License och erbjöd icke-fria kommersiella NX-lösningar, gratis klient- och serverprodukter för Linux och Solaris och gratis klientprogramvara för Microsoft Windows , macOS och inbyggda system .

På grund av friprogramvaran hos äldre NX-utgåvor startades FreeNX-projektet för att tillhandahålla omslagsskript för GPL NX-biblioteken. FreeNX har utvecklats och underhållits av Fabian Franz, men har inte annonserat någon release sedan 2008.

2X Software har utvecklat ytterligare en kommersiell terminalserver för Linux med hjälp av NX-protokollet.

Den 7 juli 2009 tillkännagav Google sin NX-server med öppen källkod, Neatx , som ett internt projekt. [ vilken? ] Projektet hade inga releaser och är inte aktivt utvecklat. Dess källkod är tillgänglig under GNU GPL v2-licensen.

X2Go är baserat på 3.x NX-biblioteken, men är inte kompatibel med andra implementeringar. Klienten och servern släpps under en kombination av GNU GPLv2 eller senare och GNU AGPLv3 eller senare.

Kunder

De primära NX-klienterna är det officiella gratisprogrammet, NoMachine och NoMachine Enterprise Client. Flera open source- projekt kan också använda NX-protokollet men många av dessa OSS-projekt fungerar inte med nyare versioner av den officiella NX-mjukvaran.

Ett moget OS-projekt var Lawrence Roufails nxc -klientbibliotek, ett komplett bibliotek som kan användas för andra klienter att bygga vidare på. nxrun - applikationen använder detta bibliotek. Från och med 2006 tillåter inte biblioteket att avbryta eller återuppta sessioner och använder endast JPEG -grafikkomprimering.

kNX - projektet var en proof-of-concept-applikation skriven av Joseph Wenninger, med planer på att det så småningom skulle bli en komplett NX-klient för att visa att en öppen källkodsklient kunde skrivas. Dess utveckling stoppades innan den var klar. I slutet av 2005 började Fabian Franz och George Wright modifiera kNX för att använda nxc-biblioteket, men övergav projektet.

Nyare insatser med öppen källkod inkluderar QtNX , som erbjuder fullständig avstängning och återuppta. Det har dock rapporterats som inkompatibelt med de senaste NX-biblioteken.

Nxcl, en uppdatering av nxclientlib, kärnan i QtNX, färdigställdes av Seb James i september 2007 och fungerar med version 3 av NX kärnbibliotek. [ citat behövs ] Det minskar också beroendet av Qt, vilket hindrade nxclientlib från att bli allmänt använt som en plattformsoberoende bas för NX-klientprogram. nxcl tillhandahåller ett bibliotek som kan länkas till ett klientprogram (libnxcl), och en fristående NX-klient med ett D-Bus API (nxcl-binären). Den är tillgänglig från FreeNX Subversion- servern.

En annan föråldrad (senast uppdaterad jan 2013) OSS NX-klient är OpenNX , beskriven som en "drop-in-ersättning för NoMachines [proprietära] nxclient" med fullständig avstängning och återuppta.

Olika terminalserverprojekt med öppen källkod, som X2Go , använder också NX-protokollet. X2Go är dock inte kompatibel med andra NX-servrar eller klienter.

Remmina , ett annat nyligen GTK+ fjärrskrivbordsklientprojekt, tillkännagav möjligheten att använda NX-protokollet i sin release 0.8.

Tidigare X11-komprimeringsscheman

Se även

externa länkar