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

(참고 : Ubuntu 또는 Fedora와 같이 netcat-openbsd에서 netcat을 사용하는 경우 '-p'를 사용하지 마십시오)

내가 TTY에 있든 X.org에 있든 완벽하게 작동합니다. 그리고 지체없이 실행됩니다!

불행히도 모든 키는 원격 컴퓨터에서도 입력됩니다. nc가 실행되는 동안 일시적으로 비활성화하는 방법이 있습니까? 나는 원격 시스템에서 "cat-"를 실행하는 것과 같은 것을 생각했지만 Ctrl-C는 물론 끝날 것입니다.


2
와 함께 더 나은 행운을 가졌 nc -l 4444습니다 -p. 에 따르면 man nc, -p명시 적으로와 함께 금지됩니다 -l. 그렇지 않으면 이것은 환상적인 해결책이며 내가 필요한 것입니다 :)
Magnus Hoff

1
보안 연결 또는 로컬로 사용하는 것이 좋습니다 (실제로 안전하지는 않지만). 인증서를 가져 오면 작동 할 수있는 snetcat ( '보안 netcat')이 있습니다 (go, google it :-). 또한 귀하의 솔루션을 수락하십시오.이 질문은 여전히 ​​'개방적'입니다.
pruzinat

복사하여 붙여 넣기를 지원하면 더 커질 것입니다 !!
Chenming Zhang

놀라운 해결책! 나는 당신이 이것을 알아낼 수 있다는 것에 감동합니다. 한 시스템에서 다른 시스템을 실행하는 동안 출력을 비활성화하는 솔루션을 찾았습니까?
Cestarian

7

Synergy 는 여러 컴퓨터간에 네트워크를 통해 키보드를 공유합니다. 원하는 것을 직접 수행하지 않으면 쉽게 설정할 수있는 코드가 있다고 확신합니다.


Synergy +는 버그 수정을 위해 유지되는 시너지의 '포크'입니다. 또한 일부 데비안 패키지 리포지토리에서 빠른 시너지가 가능하며 시너지를위한 GUI 래퍼를 제공합니다.
Josiah

3
실제로 Synergy는 X 서버에 따라 다릅니다. 그래도 TTY에서 작동하는 솔루션이 필요합니다. TTY에서 키 누름을 에뮬레이트하는 방법을 알고 있다면 작은 응용 프로그램을 직접 작성하려고합니다. 불행히도 Google에서 가치있는 것을 찾을 수 없었습니다. 누군가 누군가 나에게 힌트를 줄 수 있습니까?
timn

5

Synergy를 살펴보십시오 .

Synergy는 각 컴퓨터마다 자체 디스플레이가있는 여러 컴퓨터간에 마우스와 키보드를 쉽게 공유 할 수있는 무료 및 오픈 소스 소프트웨어입니다. 특별한 하드웨어가 필요하지 않으며 LAN 만 있으면됩니다. Synergy는 Windows, Mac OS X 및 Linux에서 지원됩니다. 마우스를 키보드에서 다른 곳으로 옮기는 것만 큼 간단합니다.

시너지


0

nc (netcat) 사용에 대한 위의 제안은 효과가 없습니다.

이 명령을 사용하여 입력 스트림을 열 수 있습니다.

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

sudo로 사용하더라도 권한이 거부됩니다. 대상 시스템에는 실제로 오래된 Linux 설치가 있으므로 / dev / input 장치 파일은 읽기 전용 방식이었습니다.

그러나 x2x를 사용 하여이 문제를 해결할 수 있었으며 결과는 매우 사용자 친화적입니다.

대상 컴퓨터에서 "xhost +"를 수행하고 gdmsetup을 사용하여 원격 연결을 활성화해야합니다 (다음에 gdm이 X 세션을 시작할 때 X에 대한 -nolisten 플래그가 제거됨).

그 후, xserver는 원격 연결을 위해 넓게 열려 있으며 x2x는 소스 (키보드) 시스템에서 서버에 연결할 수 있습니다.

x2x -to 192.168.1.3:0

x2x의 멋진 점은 소스 시스템에서 약간의 제어창을 제공한다는 것입니다. 키보드 이벤트는 해당 창에 포커스가있을 때만 대상으로 전송됩니다. 이것은 매우 편리한 방법입니다 (현재 소스 컴퓨터 에서이 답변을 입력하고 있으며 제어 창에 초점이 맞지 않았기 때문에 대상 컴퓨터에 길 잃은 키 누르기가 없습니다). 또한 컨트롤 창의 중앙을 클릭하면 마우스 이벤트 전달이 시작되고 2 버튼 클릭은 마우스 이벤트 전송을 종료합니다. 또한 컨트롤 창에서 클릭 한 번으로 마우스 전달을 활성화하면 모든 키보드 이벤트가 대상으로 전송되고 소스로 전송되지 않습니다. 따라서 ALT-TAB은 소스 시스템의 제어 창에서 초점을 해제하지 않고 대상으로 전송됩니다.

소스 컴퓨터에서 가상 데스크톱을 사용하도록 설정 했으므로 x2x 제어 창을 먼 데스크톱에 고정하고 대상 컴퓨터를 제어해야 할 때만 이동합니다.

이 버전의 솔루션은 X 수준이며 위의 대답은 Linux 장치 수준입니다. 물론 대상과 소스 모두에서 X를 실행하지 않으면 전혀 작동하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.