Open Source im professionellen Einsatz
Linux-Magazin 10/2010
© Robert Byron, 123RF.com

© Robert Byron, 123RF.com

Terminaldienst X2go bekommt einen Webclient

Zugriff nach Bedarf

Unterwegs stets Zugriff auf Daten und Applikationen bieten - das ist die Stärke der Terminallösung X2go. Seit Version 3.01 braucht der Reisende nicht mal einen X2go-Client, Firefox und ein Plugin reichen. Unter Ice WM lässt sich sogar die Fensterdekoration des Browsers verbergen.

1045

Mit der Arbeitsplatzmobilität wächst auch der Wunsch, das Desktop-Betriebssystem zentral auf Servern zu betreiben. Denn Datensicherheit und -konsistenz sowie System-Wartbarkeit kann der zuständige Administrator auf diese Weise deutlich einfacher sicherstellen als auf vagabundierenden Laptops von Außendienstlern. So verwundert es nicht, dass Server-based Computing [1] die Thin-Client-Nische verlässt (Abbildung 1). Das Remote-Desktop-Paket X2go ([2], [3]) ist dabei, sich eine Dauerkarte für diesen Markt zu lösen.

Abbildung 1: Lokaler Firefox zeigt Firefox auf dem Server an – das Entkoppeln des Web in eine DMZ mit X2Go liefert einen Ansatz für hochsichere Umgebungen.

Weil es einige NX-Bibliotheken des Mitbewerbers Nomachine [4] nutzt und den Datenverkehr zwischen Server und Client fast identisch komprimiert, gilt X2go oft irrtümlich als NX-kompatibel. Server und Client kommunizieren aber anders als in NX, sodass sie nicht über Kreuz benutzbar sind. Als Belohnung für die Inkompatibilität winkt unter idealen Bedingungen ein Session-Startup von unter 5 Sekunden, NX braucht mindestens doppelt so lange.

Seit Version 3.01 schafft nun das so genannte X2go-Plugin die Möglichkeit, Sitzungen nahtlos in einem Firefox-Fenster darzustellen. Das Plugin beherbergt alle zum Sitzungsstart notwendigen Binaries, zur jeweiligen Architektur passend. Im Prinzip handelt es sich um einen vollwertigen X2go-Client, der den Browser als Display benutzt. Zurzeit sind Plugins für Firefox auf Linux (32 und 64 Bit) und Windows (32 Bit) verfügbar, Internet Explorer und Safari sollen folgen.

Dass er eine X2go-Session darzustellen hat, erfährt der Browser per »<object>«-Tag. Das in Zeile 4 von Listing 1 eingebundene Javascript »x2goplugin.js« und die Funktion »checkPlugin()« sorgen dafür, dass der Browser das X2go-Plugin in der aktuellen Version benutzt. In manchen Linux-Distributionen entpacken sich derzeit die Berechtigungen der Plugin-Dateien leider nicht korrekt. Bei wem das Plugin nicht startet, der behebt den Mangel mit folgender Fingerübung:

Listing 1: Minimale
X2Go-HTML-Seite

01 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
02 <html>
03   <head>
04     <script src="http://plugin.x2go.org/media/x2goplugin.js" type="text/javascript"></script>
05   </head>
06   <body onload="checkPlugin()">
07     <div id="x2goplugin">
08     <object src="location"
09         type="application/x2go"
10         pluginspage="http://plugin.x2go.org/index.html"
11         pluginurl="http://plugin.x2go.org/download/x2goplugin_linux32.xpi"
12         data="x2go.server"
13         name="x2goplugin"
14         height="100%"
15         width="100%">
16     </object>
17     </div>
18   </body>
19 </html>
cd ~/.mozilla/firefox/*.default/extensions/
x2goplugin@obviously-nice.de/x2goclient/
chmod 755 sshd sftp-server nxproxy
 x2goclient

Den X2go-Hauptentwicklern ist das Problem bekannt, sie wollen es in einer der nächsten Minor-Releases beheben.

Sitzung parametrisieren

Die in Zeile 12 von Listing 1 spezifizierte Definitionsdatei »x2go.server« der X2Go-Verbindung enthält die Konfigurationsparameter aus Tabelle 1, die der Start der gewünschten Applikation fordert. In die Datei darf der Admin zudem einen SSH-Private-Key schreiben, der beim Verbindungsaufbau zum Tragen kommt.

X2go-Plugin-Parameter

Um die Audio-Ausgaben einer Sitzung übers Netz zu hören, muss der Benutzer wie bei den anderen X2go-Clients auch den Parameter »sound=Audiosystem« passend setzen; zu empfehlen ist Pulseaudio, da es sich komprimiert übertragen lässt. Videos laufen zurzeit nur als Bitmap übers Netz, profitieren aber zumindest vom Geschwindigkeitsvorteil der Bibliothek Libjpeg-turbo (siehe Kasten "X2go und NX mit Turbolader"). Wie alle X2go-Clients unterstützt das Firefox-Plugin das im Thin-Client-Betrieb beliebte Remote-Mounten nicht.

X2go-Einsteigern, gerade wenn sie Debian- oder Ubuntu-Nutzer sind, leistet das X2go-Wiki [9] wertvolle Hilfe. Details zum Betrieb an einem LDAP-Backend sind dort ebenfalls zu finden.

X2go und NX mit
Turbolader

Libjpeg-turbo [5] ist eine API/ABI-kompatible Jpeg-Bibliothek, die einerseits die erweiterten Instruktionssets neuerer Prozessoren wie SSE2 benutzt und andererseits durch Parallelisierung eine wesentlich höhere Geschwindigkeit beim Komprimieren und Dekomprimieren erreicht als Libjpeg. Im für November angekündigten Fedora 14 soll Libjpeg-turbo die Libjpeg sogar vollständig ersetzen.

Da Terminalserver laufend Bildinformationen übers Netz transportieren, liegt die Vermutung nahe, dass X2go und NX mit Libjpeg-turbo einen merklichen Geschwindigkeitsgewinn erzielen können. Diverse Tests des Autors dieses Artikels im Rahmen eines X2go-Projekts für eine Bank ergaben in der Tat einen Performanceschub von bis zu 180 Prozent - unter der Voraussetzung, dass Client und (!) Server die neue Bibliothek aktivieren.

Fertige X2go-Pakete mit Libjpeg-turbo-Erweiterung für SLES 11 und Open Suse sind unter [6] zu finden, bald auch in einem eigenen Repository auf dem bekannten Build Service [7]. Die Integration von Libjpeg-turbo in Windows-X2go-Clients ist gerade in der Untersuchungsphase.

Browser ohne Dekoration

Der Browser mit Balken und Bedienelementen ist beim Betrieb als Terminalclient nicht gerade von Vorteil: Die Fensterdekoration braucht Platz auf dem Bildschirm, ohne dass die Bedienbuttons wirklich nötig wären. Den Browser ohne Windowmanager unter einem nackten X11 starten, löst das Problem brachial, aber der Bediener kann das Applikationsfenster nicht mehr auf- und zuziehen oder in den Fullscreen setzen.

Eleganter geht es mit Ice WM zur rahmenlosen Sache, da sich der Windowmanager optisch sehr zurücknehmen lässt. Systemweit in »/etc/icewm« oder pro Benutzer in »~/.icewm« geeignet konfiguriert, verzichtet Ice WM auf Fensterdekoration, Taskbar und andere Elemente eines klassischen Windowmanagers. Ein fertiges Profil gibt es unter [8].

Das im Lieferumfang von Ice WM enthaltenen Icesh-Utility schaltet das Applikationsfenster schließlich auf Fullscreen. Xprop kann zunächst die Window-ID des Fensters ermitteln, die Icesh verwendet, um den Fullscreen-Event auszulösen:

CURRENT_WINDOW="`xprop -root |
 grep ^_NET_ACTIVE | awk '{print $NF}'`"
/usr/bin/icesh -window $CURRENT_WINDOW
 setState 12 12

Der schlagende Vorteil ist, dass sich die eingebettete X2go-Applikation an Resize-Events des Browserfensters anpasst. Diese bekommt der X2go-Plugin-Container mit, woraufhin sich die darstellbare Fläche des X-Servers ändert. Jeder bekannte Windowmanager erkennt die Geometrieänderungen und gibt sie an die von ihm verwalteten Applikationsfenster weiter. Damit lässt sich das X2go-Plugin wirksam in HTML-Elemente wie etwa »<div>«-Tags einbetten. Das gezielte Integrieren in Iframe-Container funktioniert ebenfalls, was relative Positionsangaben in Prozent möglich macht. An per Rdesktop in X2go gezogenen Windows-Sessions gehen die Geometrieänderungen (noch) vorbei (Abbildung 2).

Abbildung 2: Windows-Desktop in der X2go-Session – dank Rdesktop-Login auf einem Windows-Server. Das Browser-Plugin stellt die Sitzung schon dar, die noch fehlende Resizing-Funktionalität ist in Planung.

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • X2go 4.0

    Die freie Terminalserver-Lösung X2go erscheint bald in Version 4.0. Die Entwickler haben fleißig neue Features implementiert. Der Artikel analysiert den aktuellen Snapshot und zeigt, was sich in den letzten zwölf Monaten im Projekt getan hat.

  • Bewölkte Fenster

    Cloud Computing drängt auf den Desktop: Ressourcen aus dem Internet sollen den lokalen Rechner ergänzen oder gar ablösen. Eine Bestandsaufnahme der derzeit angebotenen Umsetzungen.

  • Video: Der x2go-Client

    Dieser Screencast zeigt den X2go-Client im Einsatz. Das Open-Source-Projekt X2go steht kurz vor der Version 3. Zu Smartcards, Suspended Sessions und LDAP sind neue Clients, Seamless Windows und Pakete für Debian Lenny hinzugekommen.

  • Mozjpeg 2.0 verbessert JPEGs

    Mozilla hat festgestellt, dass sich das schon betagte JPEG-Format weiter optimieren lässt und kann nun mit Mozjpeg 2.0 einen ersten Erfolg in der Entwicklung vorweisen.

  • Der Sun-Blocker

    Das Open-Source-Projekt X2go steht kurz vor der Version 3. Zu Smartcards, Suspended Sessions und LDAP sind neue Clients, Seamless Windows und Pakete für Debian Lenny hinzugekommen.

comments powered by Disqus

Ausgabe 07/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.