FreeNX Server HOWTO

Ga naar: navigatie, zoeken

Over

NX is een protocol voor toegang op afstand. Het is zowel snel als veilig en grafisch en open (in tegenstelling tot het telnet-protocol, dat alleen snel en open is).

NX is een client-server-protocol dat het mogelijk maakt om grafisch toegang te krijgen tot een daarvoor ingerichte machine. Het is gebaseerd op zowel SSH (voor de veiligheid) als X-compressie (voor de GUI en de snelheid), en NX is veel gemakkelijker te gebruiken dan het normale X-protocol.

Deze howto beschrijft hoe SUSE Linux 10.0 als een terminalserver is te gebruiken, hoe de boel te configureren, en hoe de verbinding te maken.

Korte geschiedenis

NoMachine heeft een paar jaar geleden de NX software gemaakt en daarna de kernbibliotheek en commandoregelhulpmiddelen publiek vrijgegeven (onder de GPL). Kurt Pfeifle - iemand die bijdraagt aan KDE - heeft op basis van deze bibliotheek en hulpmiddelen een eerste bescheiden (niet uitgegeven) script gemaakt dat automatisch op afstand tot op zekere hoogte een NX sessie opzette. Nadat hij Fabian Franz (toen iemand die bijdroeg aan Knoppix en MPlayer) bij het NX-project betrok, starte Fabian een project, genaamd FreeNX, dat hetzelfde werkt als de implementatie van NoMchine's commerciële (gesloten broncode) product NXserver.

NoMachine geeft de kernbibliotheek nog steeds vrij onder de GPL en stelt de NX-client gratis beschikbaar, waarbij deze vrij gedistribueerd mag worden. Deze client kan gebruikt worden om toegang te krijgen tot de FreeNX servers. Wij - de gemeenschap - kunnen de GPL-implementatie van de FreeNX-server en de "knx"-client vrij gebruiken, hoewel deze laatste nog steeds vele mogelijkheden mist en niet wordt onderhouden.

Er is ook nog de client voor de 2X-server onder GPL. Dit is een ander commerciëelproduct dat gemaakt wordt door een ander bedrijf, maar wel de NX-kernbibliotheek gebruikt; het zou moeten werken met FreeNX.

Het opzetten

openSUSE 11.1 en 11.2

Het pakket FreeNX is niet langer beschikbaar in de officiële installatiebronnen van openSUSE. Het pakket is nu te vinden in de Build-service

  • Installeer de NX en FreeNX rpm-pakketten uit hier en hier. De versies uit de installatiebron X11:RemoteDesktop/openSUSE_11.2 zouden hiermee goed moeten werken.

Vervang 11.2 door 11.1 als u die versie van openSUSE gebruikt.

 zypper ar http://download.opensuse.org/repositories/X11:/RemoteDesktop/openSUSE_11.2 RemoteDesktop
 zypper ref
 zypper in FreeNX NX
    • Als een voorvereiste alvorens de bovenstaande rpm te installeren, zou het nodig kunnen zijn om pakketten zoals expect en rdesktop te installeren. Installeer deze met YaST's Softwarebeheer of met zypper op de commandoregel.
  • Draai nxsetup --install --setup-nomachine-key --clean om de server voor de eerste keer te installeren
  • Gebruik nxserver --status om de status van de server te controleren. De server draait op de ssh-poort, 22.
  • Test door te verbinden met elke NX-client. Officieel kan de No Machine client gedownload worden vanaf www.nomachine.com die de binaire client installeert in /usr/NX/bin/nxclient Zie http://walter.deback.net/blog/archives/19 voor het effectief gebruiken van de NX-client.

.

openSUSE 10.0

Als u net als ik met SUSE Linux 10.0 werkt dan moet u het pakket FreeNX (de server) met YaST installeren (freenx is aanwezig op de SUSE CD's/DVD) evenals client-software, pakket knx, om te testen op de lokale machine. U kunt de freeware NX Client (van www.nomachine.com/download) gebruiken of de open-source "knx" - de standaard KDE NX Client.

Na de installatie is het verder erg gemakkelijk.
Start konsole en ga met su in root-modus, daarna:

1.) laten we eerst even kijken of FreeNX is geïnstalleerd:

linux:/ #rpm -q FreeNX
FreeNX-0.4.4-4 ; voor openSUSE 11.1 is dit FreeNX-0.7.3-1.1

Als er niets terugkomt dan moet FreeNX met YaST geïnstalleerd worden. Als er "FreeNX-0.4.4-4" terugkomt, zoals in mijn geval, dan is alles OK.

2.) Dit configureert de FreeNX-server: (met gebruik van de standaard sleutel)

linux:/ # nxsetup --install --setup-nomachine-key --clean

3.) start een NX-client - Ik gebruik die van NoMachine - en typ: localhost als mijn host, 22 als mijn SSH-poort - tenslotte is NX gebaseerd op SSH, mijn gebruikersnaam en wachtwoord, desktop: UNIX/KDE en zet de resolutie van het scherm, druk op ok - en - het werk fantastisch!

NX-in-actie schermafdruk:

NX-In-Action.jpg

Gefeliciteerd ! ! ! U bent klaar!

De volgende paragrafen zijn optioneel voor geavanceerde NX-configuratie. Dit is niet nodig om NX te laten werken.

De terminalserver bedrijven

In de echte wereld is er voor het bedrijven van een terminalserver meer nodig dan alleen het configureren van de NX-server. Het vereist ook het aanmaken van gebruikers oo de server. Onder SUSE Linux is dat het eenvoudigst met Yast. Rest nog het configureren van de clients; er zijn twee manieren om dat te doen:

1) gebruik bestaande (Windows XX) werkstations en installeer er een NX-client op.

2) Gebruik een LiveCD met een NX-client. Knoppix vanaf v3.9+.

NOOT1: De SUSE Live-DVD voldoet niet aan de specificaties; het bevat geen NX-client en bevat geen UnionFS om deze te installeren. De SUSE Live-DVD kan toch gebruikt worden, maar u moet handmatig de NX-client installeren met een gebruikersaccount; het is dus moeilijker dan Knoppix.

NOTE2: FreeNX als een terminalserver is fantastisch, omdat het erg snel en veilig is, en de software beperkt het aantal gebruikers niet.Uw enige beperking is de kracht van uw server; de performance van uw CPU en de hoeveelheid RAM-geheugen.

3) Gebruik een schijfloze distributie, zoals thinstation of 2x.com.

Een noot bij de NX-clients

Er zijn twee soorten NX-clients, namelijk:

a) the freeware NoMachine's "NX-client" (niet opensource). Geavanceerde client.

b) en een opensource KDE "knx" client. Simpele client.

Elk wordt ondersteund op verschillende platvormen:

1) Windows 95...XP - u moet a gebruiken.

2) Mac OS X (ppc) - u moet a gebruiken.

3) Linux - u kunt kiezen a of b.

4) FreeBSD - u moet b gebruiken b.

5) Solaris (sparc) - u moet a gebruiken.

Een server can alleen een Linux- of UNIX-host zijn.
SUSE Linux 10.0 en hoger worden goed ondersteund. Andere UNIXen/Linuxen vereisen mogelijk compilatie van de broncode.
Noot van de vertaler: Nieuwere versies van SUSE hebben hogere versies voor FreeNX. Kijk ook naar de versie van het pakket NX dat automatisch wordt geïnstalleerd bij FreeNX. NX is de zogenaamde backend. De versie hiervan, die niet gelijk is aan de versie van FreeNX, wordt vaak genoemd in combinatie met de versie van de client. Niet elke versie van de client werkt samen met elke versie van NX.

Gebruiken van KDE3 als KDE4 is geïnstalleerd

Als KDE4 is geïnstalleerd op de NX-server en u probeert in te loggen op een KDE-desktop dan zal de NX-server als standaard naar een KDE4-desktop gaan.

Als u een verbinding wilt met de KDE3-desktop op afstand, voeg dan de volgende regel toe aan het bestand /etc/nxserver/node.conf:

COMMAND_START_KDE=startkde3

Op openSUSE 11.0, startkde start KDE4 en startkde3 start KDE3.

Veranderen van de NX TCP-poort

Het veranderen van de NX-poort op de client is recht-toe-rechtaan, daarom kijken we hier alleen naar de server.

Omdat de FreeNX-server is gebaseerd op SSH is het veranderen van de NX-poort het veranderen van de SSH-poort anders werkt NX niet. De standaard TCP-poort voor SSH en dus NX is 22. De betrokken configuratiebestanden op SUSE Linux 10.0 en hoger zijn:

/etc/nxserver/node.conf

/etc/ssh/sshd_config

...en vergeet niet om de SSH-service nadien te herstarten.

Tip voor geavanceerde gebruikers:

Met deze techniek is het mogelijk een serie Linux systemen met verschillende distributies op te zetten, zelfs op uw thuis-PC, waarbij u virtualisatie (VMware/Qemu/Xen) gebruikt en elke virtuele NX-server luistert naar een verschillende poort. Dit is echt cool, want u kunt deze niet alleen benaderen vanaf uw eigen LAN maar ook vanaf elke plek in het internet!

Run-niveaus

De NX-server kan op run-niveau 3 of 5 draaien. De NX-server gebruikt geen videokaart, dus dit werkt.

De NX-client onder SUSE vereist wel run-niveau 5. Het run-niveau concept is afwezig onder Windows.

Om het run-niveau te weten te komen gebruik:

> who -r
       run-niveau 5  2006-04-24 17:33                   laatste=S


Ondersteuning van Internationaal Toetsenbord

De NX-Server vereist een kleine wijziging in /etc/nxserver/node.conf, als root, om NX-clients een andere instelling van het toetsenbord toe te staan dan de VS (QWERTY) instelling:

Zoek de regel in /etc/nxserver/node.conf op met:

  1. AGENT_EXTRA_OPTIONS_X=""

En verander deze in: AGENT_EXTRA_OPTIONS_X="-xkbdir /usr/share/X11/xkb"

Herstart uw NX-Server met: nxserver --restart

Herstel of maak opnieuw verbinding vanuit uw NX-Client en dat is het dan. U zou een werkend internationaal toetsenbord moeten hebben.

SLE 10 modificaties

Deze instructies werken op SLED10 SP2 en SLES10 SP2, met de volgende additionele instellingsstappen:

  • FreeNX, NX, rdesktop worden niet met SLES 10 verscheept, u kunt deze downloaden van RPM uit het OBS-project.
  • FreeNX heeft afhankelijkheden met de volgende pakketten die vanaf de verscheepte CD/DVD/ISO zijn te installeren
    • expect
    • NX
  • na het starten van nxsetup moet de volgende regel in /etc/nxserver/node.conf uitgecommentarieerd worden en als volgt gewijzigd
COMMAND_SESSREG="/usr/X11R6/bin/sessreg"
  • Dit voorkomt de volgende foutmelding bij het verbinden met een client:
/usr/bin/nxserver: line 874: sessreg: command not found
NX> 280 Exiting on signal: 15

SLE 11 wijzigingen

Deze instructies werken op SLED11 (zouden ook moeten werken op SLES11, echter niet getest), met de volgende additionele instellingsstappen:

  • FreeNX heeft afhankelijkheden met de volgende pakketten die kunnen worden geïnstalleerd vanaf de verscheepte CD/DVD/ISO
    • expect
  • FreeNX, NX, rdesktop worden niet met SLE 11 verscheept, maar u kunt deze installeren via de installatie bron vam het OBS-project: openSUSE11.1 RemoteDesktop installatiebron
  • Na het draaien van nxsetup, moet de volgende regel van het commentaarteken worden ontdaan en als volgt gewijzigd in /etc/nxserver/node.conf (opm. pad verschilt met SLE10)
COMMAND_SESSREG="/usr/bin/sessreg"
  • Dit voorkomt de volgende fout bij de poging om met een client te verbinden:
/usr/bin/nxserver: line 874: sessreg: command not found
NX> 280 Exiting on signal: 15


-Door Alexey Eremenko. 21.apr.2006.

-Internation Keyboard Support area by Xavier Colinot. 14.jul.2007

-SLE10 Modifications area by Luke Hallett. 07.sep.2008

-minimale SLES10 wijzigingen door Benjamin Francom 03.mar.2009

-SLE11 wijzigingen door Luke Hallett. 16.jul.2009

Als u een niveau hoger wilt, klik dan hier: Configuratie