Linux-PC als Server
In der folgenden Beschreibung gehen wir davon aus, dass Sie den Linux-Rechner als Synergy-Server einsetzen wollen, also mit Linux-Tastatur und -Maus zusätzlich einen Windows-PC steuern möchten.
Zur Server-Konfiguration legen Sie eine Datei .synergy.conf in Ihrem Home-Verzeichnis an und öffnen diese in einem Texteditor wie kate. Sie können z. B. in ein Schnellstartfenster oder in der KDE-Konsole
kate ~/.synergy.conf
eingeben – das funktioniert auch dann, wenn die Datei noch nicht existiert. Schreiben Sie nun die Konfigurationseinträge in die Datei, die wie in Listing 1 aussehen, zu ändern sind dabei nur die Namen der Rechner.
Server-Konfiguration unter Linux
section: screens quad: core2: end section: links quad: left = core2 core2: right = quad end section: aliases quad: 192.168.178.29 core2: 192.168.178.32 end
Die Datei beginnt mit einem Abschnitt screens, der alle potenziell beteiligten Rechnernamen aufnimmt. Synergy bezeichnet die Rechner als Screens, das erinnert an die Einrichtung von Dual-Head-Grafikkarten, bei der die grafische Oberfläche auch von zwei Screens spricht. In unserem Szenario gibt es genau zwei, die Linux-Maschine quad (auf welcher der Synergy-Server läuft) und den Windows-PC core2 (mit einem Synergy-Client). Hinter jedem Rechnernamen muss ein Doppelpunkt stehen.
Weiter geht es mit dem Abschnitt links: Hier geben Sie an, wie die Monitore der beiden Rechner angeordnet sind. Im Beispiel-Setup steht der Linux-PC quad auf der rechten Seite, der Windows-PC core2 steht links. Entsprechend bedeutet der Eintrag
quad: left = core2
dass core2 links (left) von quad steht. Die nächsten zwei Zeilen formulieren dieselbe Aussage aus der anderen Perspektive: quad steht rechts (right) von core2. Die Synergy-Konfiguration benötigt beide Beschreibungen, auch wenn die zweite Angabe überflüssig wirkt.
Im letzten Abschnitt aliases können Sie Aliasnamen für die Rechner vergeben. Wir haben hier im Test die IP-Adressen der Rechner eingetragen, Synergy arbeitete aber auch komplett ohne diesen Abschnitt.
Eine Vorlage für diese Datei (mit einer etwas komplexeren Konfiguration) finden Sie übrigens unter /usr/share/doc/packages/synergy/synergy.conf. Haben Sie die Datei mit den richtigen Daten gefüllt und gespeichert, starten Sie den Synergy-Server. Dazu geben Sie in einem Konsolenfenster den Befehl
synergys -f -c ~/.synergy.conf
ein. Es erscheinen verschiedene Statusmeldungen, die Sie zunächst ignorieren können – nur wenn Sie den Shell-Prompt wieder sehen sollten, gab es Probleme beim Start. Meist dürften das Syntaxfehler in der Konfigurationsdatei sein, dann erhalten Sie eine Meldung der Form ERROR: synergys.cpp,1068: cannot read configuration "/home/esser/.synergy.conf": read error: line 12: found data outside section
. Beim erfolgreichen Start des Servers ist eine der letzten Ausgabezeilen:
NOTE: synergys.cpp,500: started server
Jetzt können Sie auf dem Windows-Rechner den Synergy-Client starten. Rufen Sie aus dem Startmenü Programme / Synergy / Synergy auf. Das Programm kann sowohl einen Client als auch einen Server konfigurieren (Abbildung 2). Für die Einrichtung als Client übernehmen Sie die vorausgewählte obere Option Use another's shared keyboard and mouse (client) (Benutze Tastatur und Maus eines anderen Rechners / Client) und geben im Feld Other Computer's Host Name (Hostname des anderen Rechners) die IP-Adresse des Linux-PCs ein, im Beispiel 192.168.178.29. Die Verwendung der IP-Adresse ist nötig, weil der Windows-PC in der Regel den Hostnamen des Linux-PCs nicht kennt. Klicken Sie dann auf Start.
Auf der Linux-Seite erscheinen nun drei neue Protokollzeilen, die letzte davon sollte so aussehen:
NOTE: CServer.cpp,277: client "core2" has connected
Jetzt steht die Verbindung, und Sie können mit der "Linux-Maus" den Mauszeiger vom Linux-PC zum Windows-PC ziehen. Auf der Windows-Seite erscheint noch ein Fenster, das den erfolgreichen Start vermeldet. Klicken Sie darin auf OK, verabschiedet sich das Synergy-Fenster in die Kontrollleiste. Ein normaler Klick auf das Icon zeigt nur ein Status-Pop-up an, mit der rechten Maustaste erreichen Sie ein Kontextmenü, über das Sie den Client beenden können.
Wenn der Verbindungsaufbau nicht funktioniert, verhindert eventuell eine Firewall den Betrieb. Der Kasten Firewall gibt dann Hinweise zur Problemlösung.
In dieser Konstallation gab es einen merkwürdigen Effekt: Während das Arbeiten mit normalen Windows-Programmfenstern problemlos funktionierte, blieben die Fenster von Eingabeaufforderungen (cmd.exe) vollständig unerreichbar – wir konnten sie nicht per Mausklick aktivieren oder schließen. Mit [Alt]+[Tab] gelang es zwar, ein solches Fenster in den Vordergrund zu holen, aber danach waren Maus und Tastatur tot. Weiter ging es erst, nachdem wir mit der am Windows-PC angeschlossenen Tastatur oder Maus wieder ein normales Windows-Fenster in den Vordergrund geholt hatten.
Windows-PC als Server
Das umgekehrte Szenario, in dem Windows die Server-Rolle übernimmt, richten Sie auf ähnliche Weise ein, statt einer Konfigurationsdatei verwenden Sie aber hier das grafische Tool. Starten Sie zunächst unter Windows Synergy (Programme / Synergy / Synergy) und aktivieren Sie die zweite Option, Share this computer's keyboard and mouse (server) (Tastatur und Maus dieses Rechners gemeinsam nutzen / Server) und klicken Sie neben Screens & Links auf Configure. Es öffnet sich ein neues Fenster. Im oberen Bereich Screens fügen Sie über die Schaltfläche mit dem Pluszeichen alle teilnehmenden Rechner (auch den Windows-PC selbst) hinzu, im Beispiel wären das core2 und quad. Alle weiteren Optionen im jeweiligen Dialog ignorieren Sie.
Um jetzt Synergy über die Anordnung (core2 links von quad) zu informieren, verstellen Sie im unteren Bereich die Drop-down-Menüs so, dass sich der durchgehende Text 0 to 100% of the right of core2 goes to 0 to 100% of quad ergibt (Abbildung 3). Klicken Sie auf die Plus-Schaltfläche darunter. In Kurzform erscheint diese Beschreibung dann im Abschnitt Links des Einrichtungsfensters. Wiederholen Sie diesen Schritt für die umgekehrte Richtung (0 to 100% of the left of quad goes to 0 to 100% of core2). Schließen Sie dieses Fenster mit OK und klicken Sie im Synergy-Hauptfenster auf Start. Unter Vista meldet sich die Firewall, die erkennt, dass Synergy einen Port öffnet – geben Sie hier an, Verbindungen nicht zu blockieren.
Jetzt geben Sie auf dem Linux-PC das Kommando
synergyc 192.168.178.32
ein (wobei Sie die Beispieladresse durch die IP-Adresse des Windows-Rechners ersetzen). Unmittelbar danach sollte die Verbindung stehen.
Firewall
Läuft auf dem Server (egal ob Linux oder Windows) eine Firewall, müssen Sie dafür sorgen, dass der Synergy-Server erreichbar ist. Er nimmt auf Port 24800 Anfragen entgegen. In der Firewall schalten Sie entweder diesen Port für das lokale Netzwerk frei oder geben gleich das ganze lokale Netz frei. Verwenden Sie einen DSL-Router mit aktivierter Firewall (genauer: einen, der keine Port-Weiterleitungen von außen nach innen verwendet), ist Ihr privates Netz eh vor Zugriffen von außen geschützt.
Arbeiten Sie in einem Firmen- oder anderen größeren Netz, sollten Sie beachten, dass Synergy alle Daten unverschlüsselt überträgt, so dass andere Nutzer desselben Netzes diese potenziell mit einem Netzwerksniffer abfangen können. Alle Tastatureingaben auf einem der Clients (nicht aber auf dem Server) sind auf diese Weise rekonstruierbar, also z. B. auch Passworteingaben bei der Anmeldung auf einer Webseite. Wollen Sie hier für mehr Sicherheit sorgen, können Sie die Synergy-Verbindung mit der Secure Shell SSH verschlüsseln. Dazu müssen Sie von jedem Client aus eine SSH-Verbindung zum Server aufbauen, was der Befehl
ssh -f -N -L localhost:24800:server:24800 server
leistet. Im Falle eines Windows-Clients klappt das aber nur, wenn Sie SSH unter Windows installieren. Starten Sie anschließend den Synergy-Client, geben Sie statt des Servernamens den lokalen Rechner an, den Sie unter jedem Betriebssystem über den Namen localhost erreichen.
Ist der Windows-Rechner der Synergy-Server, funktioniert das Prozedere auch – dann müssen Sie aber einen SSH-Server unter Windows einrichten, was eine fortgeschrittenere Aufgabe ist.