NX – Das bessere VNC/RDP

NoMachine LogoDie meisten haben sicher schon davon gehört: Programme (Oder besser Protokolle) wie VNC oder RDP (Windows Remote Desktop) erlauben die einfache Fernbedienung eines Computers über das Netzwerk oder sogar Internet. VNC hat jedoch einige entscheidende Nachteile: Besonders gravierend finde ich, dass es unverschlüsselt ist. Das heißt jemand könnte die Verbindung überwachen und Passwörter oder gar die gesamten übertragenen Daten „ersniffen“. Weiterhin ist die Kompression nicht sonderlich effizient was bei langsameren (Upload-) Verbindungen kaum ein echtes Arbeiten an dem Remote Desktop erlaubt.

Wenn der zu steuernde Computer mit Linux läuft sollte man sich mal das alternative NX Protokoll ansehen. Dieses wird durch das SSH Protokoll getunnelt, was auch heißt, dass man davon ausgehen kann wenn man eine SSH Verbindung zustande bekommt auch eine NX Fernsteuerung möglich ist. Durch das Tunneling ist die Verbindung auch in gleicher Weise verschlüsselt wie SSH also ziemlich sicher. Dazu kommt noch, dass NX eine sehr gute Kompression bietet und selbst bei langsameren Verbindungen sehr gut läuft und auch die Wiedergabe von Ton über die Soundkarte des steuernden Rechners sowie die Nutzung dessen Druckers erlaubt. Den Client, also das Tool mit dem man sich zudem entfernten Rechner verbindet gibt es übrigens auch für Windows und Mac.

NX wird von der italienischen Firma „NoMachine“ entwickelt und die wichtigen Kernbestandteile stehen unter der GPL. Da der offizielle NX Server kommerziell vertrieben wird und die kostenlose Version in einigen Funktionen eingeschränkt ist entstand aus den offenen Kernbestandteilen das freie Projekt FreeNX. Dieses bietet eine freie Implementation des NX Protokolls. In diesem Tutorial möchte ich jedoch die Installation des kommerziellen Servers und Clienten beschreiben, da diese meist einfacher und problemloser funktioniert und die Einschränkungen auf einem normalen Heimrechner meiner Meinung nach hinnehmbar sind. So ist die einzige mir bekannte Einschränkung, dass nur maximal 2 Systembenutzer eine Verbindung herstellen dürfen.

Okay, nun zur Installation des NX Servers. Dieser wird auf dem Host Computer installiert, also den Computer, den man später steuern möchte. Der Server ist hier (Server) und hier (Client) auch als RPM und Tar.GZ verfügbar, im Folgenden werde ich jedoch die Links zu den .deb-Paketen verwenden welche für Debian und Ubuntu genutzt werden können.

Server

  1. Download der .deb Pakete von hier
    Achtung: Alle Pakete benötigt, auch das Paket für den Client!
  2. Installation vom OpenSSH Server (Wird für NX benötigt). Dies kann z.B. grafisch in Synaptik geschehen oder in der Konsole. Der Paketname lautet „openssh-server“:
    sudo apt-get install openssh-server
  3. Installation der Pakete für NoMachine NX in der folgenden Reihenfolge: client, node, server
    Dies kann z.B. grafisch mit einem Doppelklick passieren oder in der Konsole mit „sudo dpkg -i paketname.deb“
  4. Optional Weiterleitung des SSH Portes 22 beim Router um die Verbindung zu dem NX Server auch außerhalb des lokalen Netzwerkes zu ermöglichen. Bitte das Router Handbuch zu Hilfe ziehen.

Client

  1. Download des .deb Pakets von hier
  2. Installation des Paketes grafisch durch einen Doppelklick oder in der Konsole mit „sudo dpkg -i paketname.deb“

Verbindung

  1. Start des Clienten über „Anwendungen/Internet/NX Client for Linux/NX Client for Linux“
  2. Im Wizard einen beliebigen Session Namen eingeben und als Host die IP des Host-Rechners angeben. In einem lokalen LAN also z.B. 192.168.0.XX oder entfernt über das Internet die öffentliche IP der eigenen Internetverbindung (Schritt 4. von der Serverkonfiguration vorrausgesetzt)
    Als Desktop bei einer standard Ubuntu Konfiguration UNIX/Gnome wählen, für Kubuntu gehört dort UNIX/KDE hinein.
  3. Im Login-Fenster die Benutzerdaten eines auf dem Host Rechner vorhandenen Systembenutzers eingeben und Login klicken – nach kurzer Zeit sollte man den Desktop des Benutzers sehen. Das ist dann übrigens eine eigene Session: Sollte der Benutzer gleichzeitig bereits am Computer eingeloggt sein wird er nichts bemerken. Das hat den Vorteil, dass die Verbindung auch funktioniert wenn keine grafische Oberfläche gestartet ist oder der Computer im Moment nur den Anmeldebildschirm anzeigt.
  4. Fertig 😉
  • Ja echt geil die ganze G’schicht. Schöne ausführliche Anleitung.

    Wer noch einen Schritt weitergehen will kann dann mithilfe von NXPlugin, Sitzungen übers Web Interface aufbauen, von überall ohne dass man sich einen Client installieren muss.

    Und in größeren Umgebungen lohnt sich der NX Manager als Verwaltungstool, dann kann man sogar ab und an Kollegen was machen lassen, die auf der Kommandozeile zwei linke Hände haben 😉

  • Peter

    Hi,

    kommerzielle Version NX-Server unter OpenSUSE 10.3
    Mir ist aufgefallen, dass nach dem Neustart des Servers die authorized_keys2 verschwunden war. Mehrfach und nachvollziehbar.
    Mir fiel weiterhin auf, dass das nie passierte, wenn ein default.id_dsa.pub im Verzeichnis lag. Da man diesen Standardschlüssel natürlich niemals in der authorized_keys2 haben sollte, meine Lösung fürs Problem:
    # cat *.pub >> default.id_dsa.pub
    Also hat er seinen default-Schlüssel (in welchem die öffentlichen Schlüssel meiner beiden Nutzer liegen) und ist damit zufrieden.

    MfG Peter

  • Floschen

    Verdammt gutes Tool,

    verwende es schon seit Monaten.

    Per Wake on Call (FBF 7170) ruf ich meinen Computer, der fährt hoch, und ich kann von überall auf der Welt aus drauf zugreifen, mit einer guten geschwindigkeit. 🙂