回答:
自分で見つけました。
まず、両方のマシンに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を押すともちろん終了します。
Synergyは、複数のマシン間のネットワークでキーボードを共有します。それがあなたが望むことを直接やらないなら、私はあなたが簡単にセットアップできるようにするコードがそこにあると確信しています。
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を実行していない場合、これはまったく機能しません。
nc -l 4444
た-p
。によるとman nc
、-p
との組み合わせで明示的に禁止されてい-l
ます。そうでなければ、これは素晴らしいソリューションであり、私は必要なものだけ:)