Linux: Обмін клавіатурою через мережу


12

Як випливає з назви, я хочу локально використовувати віддалену клавіатуру. Віддалена клавіатура повинна використовуватися в TTY і, якщо можливо, в X-сервері. Чи є драйвери (модулі ядра), що імітують "підроблену" клавіатуру з прозорістю мережі?

Відповіді:


16

Я дізнався це самостійно.

Спочатку переконайтеся, що ви завантажили модуль ядра evdev на обидві машини.

На віддаленій машині ви працюєте:

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

А про клієнта:

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

(Примітка. Якщо ви використовуєте netcat від netcat-openbsd, наприклад, в Ubuntu або Fedora, не використовуйте '-p')

Це прекрасно працює незалежно від того, я в TTY чи на X.org. І працює без жодної затримки!

На жаль, всі клавіші набрані і на віддаленій машині. Чи існує спосіб тимчасового відключення їх під час роботи nc? Я подумав про щось, як запустити "cat -" на віддаленій машині, але Ctrl-C, звичайно, закінчить це.


2
Мені пощастило більше nc -l 4444, без цього -p. Згідно з цим man nc, -pявно заборонено в поєднанні з -l. Інакше це фантастичне рішення і саме те, що мені було потрібно :)
Магнус Хофф

1
Я настійно рекомендую використовувати його через захищене з'єднання або локально (хоча це теж не є безпечним). Існує snetcat, ("безпечний netcat"), який може працювати, якщо ви імпортуєте сертифікат (go, google it :-). Крім того, прийміть ваше рішення, це питання все ще є "відкритим".
прузінат

було б більше, якщо він підтримує копіювання та вставлення !!
Ченьмін Чжан

Дивовижне рішення! Я вражений, що вам вдалося це зрозуміти. Ви знайшли рішення для відключення виводу на одній машині під час роботи на іншій?
Cestarian

7

Synergy поділиться клавіатурою по мережі між кількома машинами. Якщо він безпосередньо не робить те, що ви хочете, я впевнений, що там є код, який полегшить вам налаштування.


Synergy + - це "вилка" синергії, яка зберігається для виправлень. Додатково швидка синергія доступна в деяких сховищах пакунків Debian і забезпечує обертання графічного інтерфейсу для синергії.
Йосія

3
Насправді синергія залежить від X-Server. Мені потрібно рішення, яке працює в TTY, хоча. Якби я знав, як імітувати натискання клавіш у TTY, я б спробував написати невелику заявку самостійно. На жаль, мені не вдалося знайти нічого цінного в Google. Можливо, хтось може дати мені підказки?
timn

5

Погляньте на Synergy .

Synergy - це безкоштовне та відкрите програмне забезпечення, яке дозволяє легко обмінюватися мишею та клавіатурою між декількома комп'ютерами, де кожен комп'ютер має свій власний дисплей. Не потрібно спеціального обладнання, все, що вам потрібно, - це локальна мережа. Синергія підтримується в Windows, Mac OS X та Linux. Перенаправлення миші та клавіатури настільки ж просто, як переміщення миші з краю екрана.

Синергія


0

Наведена вище пропозиція щодо використання nc (netcat) не працює для мене.

Я можу відкрити вхідний потік за допомогою цієї команди:

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

Мені відмовляють у дозволі, навіть якщо я роблю це як судо. Цільова машина має справді стару інстальовану Linux на ній, тому, можливо, / dev / пристрої введення файли були лише для читання назад, коли.

Мені вдалося вирішити цю проблему за допомогою x2x, однак результат дуже зручний.

Вам потрібно зробити "xhost +" на цільовій машині, а також використовувати gdmsetup для ввімкнення віддалених з'єднань (це видаляє прапор -ности для X, коли наступний раз, коли gdm запустить сеанс X).

Після цього ваш xserver широко відкритий для віддалених підключень, і x2x може підключитися до нього від джерела (клавіатури) машини

x2x -to 192.168.1.3:0

Класна річ у x2x - це те, що вона дає вам невелике вікно управління на вихідній машині, а події клавіатури надсилаються до цілі лише тоді, коли це вікно зосереджено. Це дуже зручний спосіб зробити це (я зараз набираю цю відповідь з джерельної машини, і жодне бродяче натискання клавіш не досягає цільової машини, тому що у мене вікно управління де-орієнтоване). Також клацання по центру вікна керування також починає пересилати події миші, а натискання 2-клавіші закінчує надсилання подій миші. Крім того, коли ви вмикаєте переадресацію миші клацанням у вікні керування, ВСІ події клавіатури надсилаються до цілі, а жодна - до джерела. Таким чином, ALT-TAB надсилається до цілі без розфокусування вікна управління на вихідній машині.

У мене ввімкнено віртуальний робочий стіл на вихідній машині, тому я просто наклеюю вікно керування x2x на віддалений робочий стіл і заходжу туди лише тоді, коли мені потрібно керувати цільовою машиною.

Ця версія рішення знаходиться на рівні X, де вищевказана відповідь знаходиться на рівні пристрою Linux. Звичайно, це взагалі не буде працювати, якщо ви не використовуєте X як на цілі, так і на джерелі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.