Hola a todos
En Internet, hay muchos artículos sobre cómo configurar una conexión remota a una sesión Xorg existente a través de x11vnc, pero no he encontrado en ninguna parte cómo fijar el monitor local y la entrada para que cualquiera que se siente al lado de la computadora remota no vea lo que está haciendo y no presionó botones en su sesión. Bajo cat, mi forma de hacer que x11vnc se parezca más a conectarse a Windows a través de RDP.
Entonces, digamos que ya sabe cómo usar x11vnc, si no, puede googlear o leer, por ejemplo,
aquí .
Dado: inicie x11nvc, conéctese con el cliente, todo funciona, pero la consola de la computadora local también está disponible para su visualización y entrada.
Queremos: cortar la consola local (monitor + teclado + mouse) para que no se pueda ver ni ingresar nada.
Cortamos monitores
Lo primero que se me ocurrió fue cortar el monitor a través de xrandr, por ejemplo, así:
$ xrandr --output CRT1 --off
pero al mismo tiempo, el entorno de la ventana (tengo KDE) comienza a pensar que el monitor está realmente apagado y comienza a arrojar ventanas y paneles, todo se mueve y se pone triste.
Hay una forma más interesante, que es enviar el monitor a la suspensión, puede hacer esto, por ejemplo, de esta manera:
$ xset dpms force off
Pero aquí, también, no todo va bien. El sistema activa el monitor en el primer evento. La muleta más simple en forma de ciclo ayuda a:
while : do xset dpms force off sleep .5 done
No pensé más: fue pereza, cumple su propósito, los monitores no muestran nada, incluso si presiona botones, mueve el mouse, etc.
UPD:
Gracias
amarao por otra forma de girar a cero brillo:
$ xrandr --output CRT1 --brightness 0
Cortar la entrada
Para deshabilitar la entrada, usé xinput. Cuando se inicia sin parámetros, muestra una lista de dispositivos:
$ xinput ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ Logitech USB Laser Mouse id=9 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Power Button id=7 [slave keyboard (3)] ↳ Sleep Button id=8 [slave keyboard (3)] ↳ USB 2.0 Camera: HD 720P Webcam id=10 [slave keyboard (3)] ↳ HID 041e:30d3 id=11 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=12 [slave keyboard (3)]
Los dispositivos de
núcleo virtual ... no se pueden deshabilitar: se emite un error, pero el resto se puede encender y apagar, por ejemplo, de esta manera, puede permanecer sin mouse por un minuto:
xinput disable 9; sleep 60; xinput enable 9
Solución llave en mano
Para mi caso, hice un script que se ejecuta en sesión ssh. Suprime la entrada local y eleva el servidor x11vnc, y al completar el script todo vuelve como estaba. Como resultado, resultaron tres scripts, aquí están (actualizados).
switch_local_console:
disable_local_console:
En realidad, el script principal (tengo dos monitores, levanto un servidor común y uno para cada monitor).
vnc_server:
En realidad todo. Vamos por ssh, ejecutamos
vnc_server mientras está vivo, tenemos acceso a través de vnc y la consola local se apaga.
Gracias por su atención, adiciones y mejoras son bienvenidas.