GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo iniciar un servidor vnc para la visualización real (raspado) con TigerVNC

VNC es una aplicación para compartir escritorio (Computación de red virtual) para conectar y controlar el escritorio de una computadora (remota o local) a través de una conexión de red.

Sin embargo, en los sistemas Linux, muchas aplicaciones de servidor VNC solo permiten conectarse a un escritorio virtual y no al real. Este howto le ofrece una solución para conectarse a través del servidor TigerVNC a la sesión activa real en su escritorio Linux.

Requisitos

  • Un entorno de escritorio Linux totalmente funcional
  • privilegio de raíz (para instalar el servidor TigerVNC)
  • conocimiento básico del shell de Linux

Para obtener los paquetes más recientes, es posible que desee actualizar.

[email protected]:~$ sudo apt-get update

Este tutorial se probó en Debian/GNU Linux 9.5 (stretch) y Ubuntu 18.04

Instalar TigerVNC

Primero, debe instalar el servidor TigerVNC.

[email protected]:~$ sudo apt-get install tigervnc-scraping-server

Tenga en cuenta que en la mayoría de los sistemas basados ​​en Debian, hay un pequeño paquete llamado tigervnc-scraping-server, que debe instalar. No tiene que instalar el servidor TigerVNC principal (nombre del paquete:tigervnc-standalone-server) para tener la funcionalidad de conectarse a la sesión de escritorio en ejecución, solo si prefiere conectarse también a un escritorio virtual.

El servidor TigerVNC proporciona una aplicación más pequeña (x0vncserver) para otorgar acceso a la sesión activa.

Luego, crea un directorio .vnc en tu hogar:

[correo electrónico protegido]:~$ mkdir -p ~/.vnc

Cree una contraseña para su sesión de vnc:

[email protected]:~$ vncpasswd
Contraseña:
Verificar:
¿Le gustaría ingresar una contraseña de solo lectura (sí/no)? n

Iniciando el servidor VNC

Una breve descripción del servidor x0vnc:

x0tigervncserver es un servidor TigerVNC que hace que cualquier pantalla X sea accesible de forma remota a través de VNC, TigerVNC o visores compatibles. A diferencia de Xvnc(1), no crea una pantalla virtual. En su lugar, solo comparte un servidor X existente (normalmente, el que está conectado a la pantalla física).

Ahora que instaló con éxito el servidor TigerVNC en su computadora, creó una contraseña con el comando vncpasswd, podemos comenzar a iniciar nuestro servidor vnc. Asegúrese de estar en la sesión activa y escriba (como usuario):

[email protected]:~$ x0vncserver -passwordfile ~/.vnc/passwd -display :0

Mié 10 oct 22:17:16 2018
Geometría:la geometría del escritorio está configurada a 1920x1080+0+0
Principal:Extensión XTest presente - versión 2.2
Principal:Escuchando en el puerto 5900

La opción -archivo de contraseñas ~/.vnc/passwd lee el archivo de contraseña creado anteriormente con vncpasswd dominio. La segunda opción -display :0 significa que desea conectarse a la sesión en la pantalla :0, que suele ser la sesión activa.

Ahora puede acceder a su escritorio real con cualquier aplicación de visor vnc en el puerto vnc predeterminado 5900.

Puede detener este proceso cuando lo desee presionando Ctrl-c.

Si desea ejecutarlo en segundo plano, escriba:

[correo electrónico protegido]:~$ x0vncserver -passwordfile ~/.vnc/passwd -display :0>/dev/null 2>&1 &

Ahora todos los errores y la salida estándar de salida se redirigen a /dev/null y con &al final, se ejecutará en segundo plano. Sin embargo, ya no podrá detener el servidor vnc presionando Ctrl-c, en su lugar, debe eliminar su ID de proceso (consulte la sección a continuación "Detener el servidor vnc").

Para obtener más opciones y sintaxis, consulte el manual de x0vncserver.

Deteniendo el servidor VNC

Si su servidor vnc se ejecuta en segundo plano, debe conocer la identificación del proceso para detenerlo.

[correo electrónico protegido]:~$ ps -fu usuario | grep [x]0vncserver
usuario    1328    1   0 23:11 pts/2    0:00:00    /usr/bin/x0vncserver -display :0 -passwordfile /home/user/.vnc/passwd -rfbport 5900

La salida será así, así que observe el pid 1328. Para detener el servidor vnc, tenemos que "matar" este proceso.

[correo electrónico protegido]:~$ matar -9 1328

La opción -9 para el comando kill enviará la señal KILL a la identificación del proceso para asegurarse de que se detenga.

Script para ejecutar el servidor VNC

Hay un script para iniciar y detener la aplicación x0vncserver en github. Para fines de prueba, también descarga el paquete pmisc:

[correo electrónico protegido]:~$ sudo apt-get install git psmisc

Luego, descargue el script startvnc usando el comando git:

[email protected]:~$ git clone https://github.com/sebestyenistvan/runvncserver
Clonando en 'runvncserver'...
remoto:enumerando objetos:77, listo.
remoto:Contar objetos:100 % (77/77), listo.
remoto:Comprimir objetos:100 % (57/57), listo.
remoto:Total 77 (delta 25), reutilizado 60 (delta 18), paquete-reutilizado 0
Desembalaje de objetos:100 % (77/77), listo.

Su salida se verá como la de arriba.

Copie el script startvnc del directorio runvncserver a su hogar:

[correo electrónico protegido]:~$ cp ~/runvncserver/startvnc ~

Cambie los permisos a ejecutable para ejecutar el script:

[correo electrónico protegido]:~$ chmod +x ~/startvnc

Luego, ejecute el script.

[email protected]:~$ ./startvnc

Uso:./startvnc start|stop|restart|status

Este script solo funcionará si tiene un directorio .vnc en su hogar y creó un vncpasswd (verifica el archivo ~/.vnc/passwd). Ya creamos el directorio .vnc y la contraseña anteriormente.

Para iniciar el servidor vnc en la pantalla real, simplemente escriba:

[email protected]:~$ ./startvnc start
Iniciando servidor VNC en pantalla :0 [ok]

Puede probar si su servidor vnc se está ejecutando con la opción:

[email protected]:~$ ./startvnc status
Estado del servidor VNC:[en ejecución] (pid:1328)

Algunos ejemplos:

O verificando el puerto TCP 5900 en su sistema con el comando fuser (del paquete pmisc):

[email protected]:~$ fuser -vn tcp 5900
                  USER      PID     ACCESS      COMMAND
5900/tcp:         user      1328    F....       x0vnc/server><

Obtendrá un resultado como este si el servidor vnc se ejecuta en el puerto 5900.

Puede encontrar más instrucciones para este script en el archivo Léame:

[correo electrónico protegido]:~$ menos runvncserver/README.md

El script creará un archivo de registro, donde se almacena la salida. Si algo sale mal o no puede iniciar o detener el servidor x0vnc, consulte el archivo de registro en ~/.vnc/logfile

Iniciar el servidor VNC automáticamente

Si desea acceder a la sesión de escritorio activa automáticamente, debe editar el archivo .xsessionrc en su directorio de inicio.

[email protected]:~$ echo "/home/user/startvnc start>/dev/null 2>&1">> ~/.xsessionrc

Reemplace usuario por su nombre de usuario y se ejecutará automáticamente al iniciar la sesión X. El script registra su actividad en ~/.vnc/logfile, si algo sale mal, puede consultar el archivo de registro allí.

Notas

Este tutorial no trata sobre la configuración de un escritorio virtual VNC.

Seguridad

Tenga en cuenta que x0vncserver no usa cifrado de forma predeterminada, así que utilícelo con cuidado en Internet. Si desea usarlo de forma remota, puede tunelizarlo a través de ssh. Sin embargo, existen otros procedimientos en los que puede encontrar una solución para cifrar su sesión de VNC.

O puede echar un vistazo al paquete ssvnc.

visores VNC

Si está buscando visores VNC, hay muchos, por ejemplo:

  • visor gvnc
  • tigervnc-visor
  • xtightvncviewer
  • visor xvnc4

Geometría

El servidor x0vnc en la pantalla real utilizará la misma geometría que el escritorio en ejecución en la pantalla :0. Entonces, si configura la opción -geometry en un tamaño más bajo, no se escalará, solo verá una fracción del tamaño del escritorio.

Comentarios

Siéntase libre de escribir comentarios. Si probó este tutorial o incluso el script en otro sistema.


Linux
  1. ¿Cómo iniciar el servidor Vnc en el arranque?

  2. Cómo cambiar la resolución del servidor VNC en Linux

  3. ¿Cómo hago para que mi servidor web Golang se ejecute en segundo plano?

  4. ¿Cómo especifico el archivo clave para sshfs?

  5. ¿Cómo instalar PhantomJS para usar con Python Selenium en Raspberry Pi?

Cómo alojar múltiples sitios de WordPress en el mismo servidor con Docker

Cómo implementar el servidor de conferencias Jitsi Meet con Ubuntu 22.04

Cómo cambiar el nombre de host del servidor en Ubuntu

¿Cómo cambiar la zona horaria en Ubuntu 18.04 Server?

Cómo proteger SSH con Fail2Ban

Cómo instalar y configurar el cortafuegos CSF para Linux