# X2Go

X2Go ist eine freie Terminalserver-Lösung. X2Go ist so konzipiert, dass graphische Benutzeroberflächen auch über Verbindungen mit niedriger Bandbreite übertragen werden können. Benutzer, die sich mit dem Client an einem X2Go-Server angemeldet haben, erhalten dadurch Zugriff auf die graphische Arbeitsoberfläche des Computers, auf dem der X2Go-Server läuft, und können so Programme auf dem Server ausführen. Der Client, der auf dem Endgerät des Benutzers läuft, übernimmt lediglich die Darstellung. Der X2Go-Server, der in diesem Fall als Applikationsserver fungiert, kann alle möglichen Dienste und Anwendungen zur Verfügung stellen, die sich auf der jeweiligen Plattform installieren lassen. Solange der Server über die technischen Möglichkeiten und genug Reserven verfügt, ist ein Hinzufügen von neuen Clients einfach zu realisieren. Eine solche Lösung bietet sich z. B. für Schulen, Internetcafés und Bibliotheken an. Die Sitzung kann jederzeit eingefroren werden und von einem anderen Terminal an dieser Stelle fortgesetzt werden. X2Go bietet Client-Software für Thin Clients, PCs, Webbrowser und Mobilgeräte mit Maemo.
X2Go wird unter anderem von den Projekten linux4afrika und DebianEdu verwendet.

## Server

Ursprünglich stellte X2Go verschiedene Server-Pakete zur Verfügung, die unterschiedlichen Ansprüchen gerecht werden sollten. Es gab eine „One Node Edition“ („x2goserver-home“, „x2goserver-one“), bei der alle benötigten Dienste auf einem Server liefen. Die Benutzerverwaltung wurde in diesem Fall allein von diesem Server realisiert. Diese Variante war aber auf einen Server beschränkt. Sollten mehrere Server benutzt werden, beispielsweise um eine Lastverteilung zu realisieren, musste das Paket „x2goserver“ verwendet werden. Diese Version verwendete LDAP für die Benutzerauthentifizierung und eine PostgreSQL Datenbank, um die Sitzungsdaten zu hinterlegen.
Seit April 2011 stellt X2Go nur noch ein Server-Paket zur Verfügung, welches unterschiedlichen Ansprüchen gerecht werden soll.

## Client

Der Zugriff auf den Server kann entweder mit einem normalen Client von einem Windows- oder Linux-System erfolgen oder über eine Thin-Client-Lösung, die mittels Preboot Execution Environment (PXE) bootet und die Client-Software via Network File System (NFS) vom Server lädt. Ist der Bootvorgang des Clients abgeschlossen, erscheint die X2Go-eigene zweigeteilte Oberfläche, die als Cardview bezeichnet wird. Dort können konfigurierte Sitzungen angezeigt, Einstellungen an der Auflösung vorgenommen, der Sound de-/aktiviert und der Fenstermanager gewählt werden.

## Technik
### Lokale Geräte und Sound

USB-Wechseldatenträger können am Client angesteckt werden und werden über einen SSH-Tunnel an den Server weitergereicht. Durch diesen Tunnel kann auch eine Weiterleitung des Sounds erfolgen. Als Sound-Schnittstelle kann z. Z. zwischen PulseAudio, aRts und Enlightened Sound Daemon gewählt werden.

### Smartcards

Die Sitzungsverwaltung kann über einen USB-Stick oder eine Smartcard erfolgen. Eine Verbindung kann dabei über LAN, WLAN oder das Internet aufgebaut werden. Des Weiteren ist es möglich, eine Sitzung zum Beispiel am Arbeitsplatz einzufrieren und diese zu Hause durch Einstecken der Smartcard wieder aufzunehmen.