Linux: Tastatur über Netzwerk freigeben


12

Wie der Titel schon sagt, möchte ich lokal eine entfernte Tastatur verwenden. Die entfernte Tastatur sollte in einem TTY und, falls möglich, auch im X-Server verwendbar sein. Gibt es Treiber (Kernelmodule), die eine "gefälschte" Tastatur mit Netzwerktransparenz emulieren?

Antworten:


16

Ich habe es selbst herausgefunden.

Stellen Sie zunächst sicher, dass Sie das evdev- Kernelmodul auf beiden Rechnern geladen haben .

Auf dem Remote-Computer, den Sie ausführen:

$ cat /dev/input/by-path/platform-i8042-serio-0-event-kbd | nc <IP> 4444

Und auf dem Client:

$ nc -l -p 4444 > /dev/input/by-path/platform-i8042-serio-0-event-kbd

(Hinweis: Wenn Sie netcat von netcat-openbsd verwenden, zum Beispiel in Ubuntu oder Fedora, verwenden Sie nicht das '-p')

Es funktioniert perfekt, egal ob ich in einem TTY oder in X.org bin. Und es läuft ohne Verzögerung!

Leider werden alle Schlüssel auch auf dem Remote-Computer eingegeben. Gibt es eine Möglichkeit, sie vorübergehend zu deaktivieren, während nc ausgeführt wird? Ich dachte, ich würde "cat -" auf dem entfernten Rechner ausführen, aber ein Strg-C würde es natürlich beenden.


2
Ich hatte besseres Glück mit nc -l 4444, ohne das -p. Laut man nc, -pist in Kombination mit explizit verboten -l. Ansonsten ist dies eine fantastische Lösung und genau das, was ich brauchte :)
Magnus Hoff

1
Ich empfehle Ihnen dringend, es über eine sichere Verbindung oder lokal zu verwenden (obwohl dies auch nicht wirklich sicher ist). Es gibt snetcat ('Secure Netcat'), das funktioniert, wenn Sie ein Zertifikat importieren (go, google it :-). Bitte akzeptieren Sie auch Ihre Lösung, diese Frage ist noch offen.
Pruzinat

Es wäre größer, wenn es Kopieren und Einfügen unterstützt!
Chenming Zhang

Erstaunliche Lösung! Ich bin beeindruckt, dass Sie es geschafft haben, das herauszufinden. Haben Sie eine Lösung gefunden, um die Ausgabe auf einem Computer zu deaktivieren, während Sie auf dem anderen Computer ausgeführt werden?
Cestarian

7

Synergy teilt eine Tastatur über das Netzwerk zwischen mehreren Computern. Wenn es nicht direkt das tut, was Sie wollen, gibt es dort sicher Code, der Ihnen das Einrichten erleichtert.


Synergy + ist eine 'Abzweigung' von Synergieeffekten, die für Bugfixes beibehalten wird. Zusätzlich ist in einigen Debian-Paket-Repositories eine schnelle Synergie verfügbar und bietet einen GUI-Wrapper für Synergieeffekte.
Josiah

3
Eigentlich hängt Synergy vom X-Server ab. Ich brauche eine Lösung, die in einem TTY funktioniert. Wenn ich wüsste, wie man Tastendrücke in einem TTY emuliert, würde ich versuchen, selbst eine kleine Anwendung zu schreiben. Leider konnte ich bei Google nichts Wertvolles finden. Vielleicht kann mir jemand ein paar Tipps geben?
9.

5

Schauen Sie sich Synergy an .

Synergy ist eine kostenlose Open Source-Software, mit der Sie Ihre Maus und Tastatur auf einfache Weise für mehrere Computer freigeben können, wobei jeder Computer über ein eigenes Display verfügt. Es ist keine spezielle Hardware erforderlich. Sie benötigen lediglich ein lokales Netzwerk. Synergy wird unter Windows, Mac OS X und Linux unterstützt. Das Umleiten von Maus und Tastatur ist so einfach wie das Bewegen der Maus vom Bildschirmrand.

Synergie


0

Der obige Vorschlag, nc (netcat) zu verwenden, funktioniert bei mir nicht.

Ich kann den Eingabestream mit diesem Befehl öffnen:

nc -l -p 4444 > /dev/input/by-path/platform-i8042-serio-0-event-kbd

Ich bekomme die Erlaubnis verweigert, auch wenn ich es als sudo mache. Auf dem Zielcomputer ist eine sehr alte Linux-Installation installiert, daher waren die Dateien von / dev / input-Geräten möglicherweise vor langer Zeit schreibgeschützt.

Ich konnte dieses Problem jedoch mit x2x lösen und das Ergebnis ist sehr benutzerfreundlich.

Sie müssen "xhost +" auf dem Zielcomputer ausführen und gdmsetup verwenden, um Remoteverbindungen zu aktivieren (dies entfernt das Flag -nolisten für X, wenn gdm das nächste Mal eine X-Sitzung startet).

Danach ist Ihr xserver für Remoteverbindungen offen und x2x kann von der Quellmaschine (Tastatur) aus eine Verbindung zu ihm herstellen

x2x -to 192.168.1.3:0

Das Coole an x2x ist, dass es Ihnen ein kleines Steuerungsfenster auf dem Quellcomputer gibt und Tastaturereignisse nur dann an das Ziel gesendet werden, wenn dieses Fenster fokussiert ist. Dies ist eine sehr praktische Möglichkeit, dies zu tun (ich tippe diese Antwort gerade auf dem Quellcomputer ein, und es gelangen keine Tastendrücke auf den Zielcomputer, da das Kontrollfenster deaktiviert ist). Durch Klicken in die Mitte des Steuerfensters werden auch Mausereignisse weitergeleitet, und durch Klicken mit zwei Tasten wird das Senden von Mausereignissen beendet. Wenn Sie die Mausweiterleitung mit einem Klick im Steuerungsfenster aktivieren, werden ALLE Tastaturereignisse an das Ziel und keine an die Quelle gesendet. Somit wird ALT-TAB an das Ziel gesendet, ohne das Steuerfenster auf dem Quellcomputer zu defokussieren.

Ich habe virtuelle Desktops auf dem Quellcomputer aktiviert, also stecke ich das x2x-Steuerungsfenster einfach auf einen entfernten Desktop und gehe nur dorthin, wenn ich den Zielcomputer steuern muss.

Diese Version der Lösung befindet sich auf der X-Ebene, wobei sich die obige Antwort auf der Ebene der Linux-Geräte befindet. Dies funktioniert natürlich überhaupt nicht, wenn Sie X nicht sowohl auf dem Ziel als auch auf der Quelle ausführen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.