Linux: współdziel klawiaturę przez sieć


12

Jak sugeruje tytuł, chcę używać zdalnej klawiatury lokalnie. Zdalna klawiatura powinna być użyteczna w TTY i, jeśli to możliwe, również w X-Server. Czy są jakieś sterowniki (moduły jądra) emulujące „fałszywą” klawiaturę z przezroczystością sieci?

Odpowiedzi:


16

Przekonałem się o tym sam.

Najpierw upewnij się, że załadowałeś moduł jądra evdev na oba komputery.

Na zdalnym komputerze działasz:

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

A na kliencie:

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

(Uwaga: jeśli używasz netcata z netcat-openbsd, na przykład w Ubuntu lub Fedorze, nie używaj '-p')

Działa idealnie bez względu na to, czy jestem w TTY, czy w X.org. I działa bez opóźnień!

Niestety wszystkie klawisze są również wpisywane na komputerze zdalnym. Czy istnieje sposób tymczasowego wyłączenia ich podczas działania nc? Myślałem o czymś takim, jak uruchamianie „cat -” na zdalnej maszynie, ale Ctrl-C to by oczywiście koniec.


2
Miałem więcej szczęścia nc -l 4444, bez -p. Zgodnie z man nc, -pjest wyraźnie zabronione w połączeniu z -l. W przeciwnym razie jest to fantastyczne rozwiązanie i właśnie tego potrzebowałem :)
Magnus Hoff

1
Gorąco zachęcam do korzystania z niego przez bezpieczne połączenie lub lokalnie (choć to też nie jest bezpieczne). Istnieje snetcat („bezpieczny netcat”), który może działać, jeśli importujesz certyfikat (go, google :-). Proszę również zaakceptować swoje rozwiązanie, to pytanie jest nadal „otwarte”.
pruzinat

byłby większy, gdyby wspierał kopiowanie i wklejanie !!
Chenming Zhang

Niesamowite rozwiązanie! Jestem pod wrażeniem, że udało ci się to rozgryźć. Czy znalazłeś rozwiązanie dla wyłączenia wyjścia na jednym komputerze podczas działania na drugim?
Cestarian

7

Synergy będzie współdzielić klawiaturę przez sieć między wieloma komputerami. Jeśli nie zrobi tego, co chcesz, jestem pewien, że jest tam kod, który ułatwi ci konfigurację.


Synergy + to „widelec” synergii, który jest nadal utrzymywany w przypadku poprawek błędów. Dodatkowo szybka synergia jest dostępna w niektórych repozytoriach pakietów Debiana i zapewnia opakowanie GUI dla synergii.
Josiah

3
W rzeczywistości Synergia zależy od X-Servera. Potrzebuję rozwiązania, które działa w TTY. Gdybym wiedział, jak emulować naciśnięcia klawiszy w TTY, sam spróbowałbym napisać małą aplikację. Niestety nie udało mi się znaleźć niczego cennego w Google. Być może ktoś może dać mi jakieś wskazówki?
timn

5

Spójrz na Synergy .

Synergy to darmowe i otwarte oprogramowanie, które pozwala łatwo udostępniać mysz i klawiaturę wielu komputerom, z których każdy ma własny ekran. Nie jest wymagany żaden specjalny sprzęt, wystarczy sieć lokalna. Synergy jest obsługiwany w systemach Windows, Mac OS X i Linux. Przekierowanie myszy i klawiatury jest tak proste, jak przesunięcie myszy poza krawędź ekranu.

Synergia


0

Powyższa sugestia użycia nc (netcat) nie działa dla mnie.

Mogę otworzyć strumień wejściowy za pomocą tego polecenia:

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

Odmawiam pozwolenia, nawet jeśli robię to jako sudo. Na docelowej maszynie zainstalowano naprawdę stary system Linux, więc może pliki / dev / input urządzenia były tylko do odczytu w przeszłości.

Jednak udało mi się rozwiązać ten problem za pomocą x2x, a wynik jest bardzo przyjazny dla użytkownika.

Musisz zrobić „xhost +” na maszynie docelowej, a także użyć gdmsetup, aby włączyć połączenia zdalne (usuwa to flagę -nolisten dla X, gdy gdm uruchomi sesję X).

Następnie serwer xserver jest szeroko otwarty dla połączeń zdalnych, a x2x może się z nim połączyć ze źródła (klawiatury)

x2x -to 192.168.1.3:0

Fajną rzeczą w x2x jest to, że daje ci małe okno kontrolne na maszynie źródłowej, a zdarzenia klawiatury są wysyłane do celu tylko wtedy, gdy to okno jest skupione. Jest to bardzo przydatny sposób, aby to zrobić (piszę teraz tę odpowiedź z maszyny źródłowej i żadne zbłąkane naciśnięcia klawiszy nie docierają do maszyny docelowej, ponieważ nie mam skupienia okna kontrolnego). Również kliknięcie na środku okna sterowania rozpoczyna przekazywanie zdarzeń myszy, a kliknięcie 2 przyciskami kończy wysyłanie zdarzeń myszy. Ponadto po włączeniu przekazywania myszy za pomocą kliknięcia w oknie sterowania WSZYSTKIE zdarzenia z klawiatury są wysyłane do celu, a żadne do źródła. W ten sposób ALT-TAB jest wysyłany do celu bez rozogniskowania okna kontrolnego na maszynie źródłowej.

Mam włączone wirtualne pulpity na maszynie źródłowej, więc po prostu przyklejam okno kontrolne x2x na odległym pulpicie i wchodzę tam tylko wtedy, gdy muszę kontrolować maszynę docelową.

Ta wersja rozwiązania znajduje się na poziomie X, gdzie powyższa odpowiedź znajduje się na poziomie urządzenia Linux. Oczywiście to nie zadziała, jeśli nie uruchomisz X zarówno na celu, jak i źródle.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.