Linux: Klavyeyi ağ üzerinden paylaşma


12

Başlıktan da anlaşılacağı gibi, yerel olarak uzak bir klavye kullanmak istiyorum. Uzak klavye bir TTY'de ve mümkünse X-Server'da da kullanılabilir olmalıdır. Ağ saydamlığına sahip "sahte" bir klavye taklit eden sürücüler (çekirdek modülleri) var mı?

Yanıtlar:


16

Kendi başıma buldum.

Öncelikle her iki makineye de evv çekirdek modülünü yüklediğinizden emin olun .

Çalıştırdığınız uzak makinede:

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

Ve müşteri üzerinde:

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

(Not: Netcat-openbsd'den netcat kullanıyorsanız, örneğin Ubuntu veya Fedora'da, '-p' kullanmayın)

TTY'de veya X.org'da olsam da mükemmel çalışır. Ve herhangi bir gecikme olmadan çalışır!

Ne yazık ki tüm tuşlar uzak makineye de yazılmıştır. NC çalışırken geçici olarak devre dışı bırakmanın bir yolu var mı? Uzaktaki makinede "kedi -" çalıştırmak gibi bir şey düşündüm ama bir Ctrl-C elbette bitirecekti.


2
Ben daha şanslı vardı nc -l 4444olmadan -p. Göre man nc, -paçıkça birlikte yasaktır -l. Aksi takdirde bu harika bir çözüm ve tam da ihtiyacım olan şey :)
Magnus Hoff

1
Güvenli bağlantı üzerinden veya yerel olarak kullanmanızı kesinlikle öneririz (bu da güvenli değildir). Sertifika içe aktarırsanız çalışabilecek snetcat, ('secure netcat') vardır (go google it :-). Ayrıca, lütfen çözümünüzü kabul edin, bu soru hala 'açık'.
pruzinat

kopyala ve yapıştır destekliyorsa daha büyük olurdu !!
Chenming Zhang

İnanılmaz bir çözüm! Bunu çözmeyi başardığın için çok etkilendim. Diğer makinede çalışırken bir makinedeki çıkışı devre dışı bırakmak için bir çözüm buldunuz mu?
Cestarian

7

Synergy , birden fazla makine arasında ağ üzerinden bir klavye paylaşacak. İstediğiniz şeyi doğrudan yapmazsa, kurulumunuzu kolaylaştıracak bir kod olduğundan eminim.


Synergy +, hala hata düzeltmeleri için korunan bir sinerji çatalıdır. Ayrıca bazı Debian paket depolarında hızlı sinerji mevcuttur ve sinerji için bir GUI sarmalayıcısı sağlar.
Josiah

3
Aslında Sinerji X-Sunucusuna bağlıdır. Yine de bir TTY çalışan bir çözüme ihtiyacım var. Bir TTY'de tuş basımlarını nasıl taklit edeceğini bilseydim, kendim küçük bir uygulama yazmaya çalışırdım. Maalesef Google'da değerli bir şey bulamadım. Belki biri bana bazı ipuçları verebilir?
timn

5

Bir göz atın Sinerji .

Synergy, farenizi ve klavyenizi, her bilgisayarın kendi ekranına sahip olduğu birden fazla bilgisayar arasında kolayca paylaşmanızı sağlayan Ücretsiz ve Açık Kaynaklı Yazılımdır. Özel bir donanım gerekmez, tek ihtiyacınız olan bir yerel ağdır. Synergy, Windows, Mac OS X ve Linux'ta desteklenir. Fareyi ve klavyeyi yeniden yönlendirmek, fareyi ekranınızın kenarından uzaklaştırmak kadar basittir.

Sinerji


0

Yukarıdaki nc (netcat) kullanma önerisi benim için işe yaramıyor.

Bu komutu kullanarak giriş akışını açabilirim:

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

Sudo olarak yapsam bile izin verilmedi. Hedef makinenin üzerinde gerçekten eski bir linux kurulumu var, bu yüzden / dev / giriş cihazı dosyaları ne zaman geri okunabilirdi.

Ancak bu sorunu x2x kullanarak çözebildim ve sonuç çok kullanıcı dostu.

Hedef makinede "xhost +" yapmanız ve ayrıca uzaktan bağlantıları etkinleştirmek için gdmsetup kullanmanız gerekir (bu, gdm bir sonraki X oturumunu başlattığında X için -nolisten bayrağını kaldırır).

Bundan sonra, xserver'ınız uzak bağlantılar için tamamen açıktır ve x2x buna kaynak (klavye) makinesinden bağlanabilir

x2x -to 192.168.1.3:0

X2x ile ilgili en güzel şey, kaynak makinede size küçük bir kontrol penceresi vermesidir ve klavye olayları yalnızca bu pencere odaklandığında hedefe gönderilir. Bu bunu yapmanın çok kullanışlı bir yoludur (şu anda kaynak makineden bu cevabı yazıyorum ve kontrol penceresine odaklanmamış olduğum için, hiçbir sapık tuş basımı hedef makineye ulaşmıyor). Ayrıca, kontrol penceresinin ortasına tıklamak da fare olaylarını iletmeye başlar ve 2 düğmeli tıklama fare olaylarının gönderilmesini sonlandırır. Ayrıca, kontrol penceresinde bir tıklama ile fare yönlendirmeyi etkinleştirdiğinizde, TÜM klavye olayları hedefe gönderilir ve hiçbiri kaynağa gönderilmez. Böylece ALT-SEKME, kaynak makinedeki kontrol penceresini bulanıklaştırmadan hedefe gönderilir.

Kaynak makinede sanal masaüstlerim var, bu yüzden x2x kontrol penceresini uzaktaki bir masaüstüne yapıştırıyorum ve sadece hedef makineyi kontrol etmem gerektiğinde oraya gidiyorum.

Çözümün bu sürümü, yukarıdaki cevabın linux cihaz seviyesinde olduğu X seviyesindedir. Tabii ki, X'i hem hedefte hem de kaynakta çalıştırmıyorsanız hiç işe yaramaz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.