Cómo instalar y configurar el servidor VNC en CentOS 7

En esta guía explicaremos cómo instalar y configurar el acceso remoto VNC en la última versión de CentOS 7 y en la edición de escritorio de RHEL 7 a través del programa tigervnc-server.

VNC (Virtual Network Computing) es un protocolo servidor-cliente que permite a las cuentas de usuario conectarse de forma remota y controlar un sistema distante utilizando los recursos proporcionados por la interfaz gráfica de usuario.

A diferencia de otros servidores VNC disponibles que se conectan directamente al escritorio en tiempo de ejecución, como VNC X o Vino, tigervnc-vncserver utiliza un mecanismo diferente que configura un escritorio virtual independiente para cada usuario.

Requisitos

  1. Procedimiento de instalación de CentOS 7
  2. Procedimiento de instalación de RHEL 7

Paso 1: Instalar y configurar VNC en CentOS 7

1. Tigervnc-server es un programa que ejecuta un servidor Xvnc e inicia sesiones paralelas de Gnome u otro entorno de escritorio en el escritorio VNC.

Una sesión de usuario VNC iniciada puede ser accedida por el mismo usuario desde múltiples clientes VNC. Para instalar el servidor TigerVNC en CentOS 7, abra una sesión de Terminal y emita el siguiente comando con privilegios de root.

$ sudo yum install tigervnc-server

2. Una vez que haya instalado el programa, inicie sesión con el usuario que desea ejecutar el programa VNC y emita el siguiente comando en terminal para configurar una contraseña para el servidor VNC.

Tenga en cuenta que la contraseña debe tener al menos seis caracteres de longitud.

$ su - your_user # If you want to configure VNC server to run under this user directly from CLI without switching users from GUI$ vncpasswd

3. A continuación, añada un archivo de configuración del servicio VNC para su usuario a través de un archivo de configuración de demonio colocado en el árbol de directorios systemd. Para copiar el archivo de plantilla VNC necesita ejecutar el siguiente comando con privilegios de root.

Si su usuario no tiene privilegios sudo, cambie directamente a la cuenta de root o ejecute el comando desde una cuenta con privilegios de root.

# cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service

4. En el siguiente paso edite el archivo de configuración de la plantilla VNC copiado del directorio /etc/systemd/system/ y sustituya los valores de para reflejar su usuario como se muestra en el siguiente ejemplo.

El valor de 1 después del signo @ representa el número de pantalla (puerto 5900+pantalla). Además, para cada servidor VNC iniciado, el puerto 5900 se incrementará en 1.

# vi /etc/systemd/system/vncserver@\:1.service

Añada las siguientes líneas al archivo vncserver@:1.service.

Description=Remote desktop service (VNC)After=syslog.target network.targetType=forkingExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'ExecStart=/sbin/runuser -l my_user -c "/usr/bin/vncserver %i -geometry 1280x1024"PIDFile=/home/my_user/.vnc/%H%i.pidExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'WantedBy=multi-user.target

5. Después de haber hecho los cambios apropiados en el archivo de servicio VNC, vuelva a cargar el programa de inicialización del sistema systemd para recoger el nuevo archivo de configuración vnc e iniciar el servidor TigerVNC.

Además, compruebe el estado del servicio VNC y habilite el demonio VNC en todo el sistema emitiendo los siguientes comandos.

# systemctl daemon-reload# systemctl start vncserver@:1# systemctl status vncserver@:1# systemctl enable vncserver@:1
Iniciar el servicio VNC

6. Para listar los puertos abiertos en estado de escucha que posee el servidor VNC, ejecute el comando ss, que se utiliza en CentOS 7 para mostrar los sockets de red. Como sólo ha iniciado una instancia del servidor VNC, el primer puerto abierto es 5901/TCP.

De nuevo, el comando ss debe ejecutarse con privilegios de root. En caso de que inicies otras instancias de VNC en paralelo para diferentes usuarios, el valor del puerto será 5902 para el segundo, 5903 para el tercero y así sucesivamente. Los puertos 6000+ se utilizan para permitir que las aplicaciones X se conecten al servidor VNC.

# ss -tulpn| grep vnc
Verifique los puertos de escucha VNC

7. Con el fin de permitir que los clientes VNC externos se conecten al servidor VNC en CentOS, debe asegurarse de que los puertos abiertos VNC adecuados tengan permiso para pasar a través de su firewall.

En caso de que sólo se inicie una instancia del servidor VNC, sólo necesita abrir el primer puerto VNC asignado: 5901/TCP mediante la emisión de los siguientes comandos para aplicar la configuración del firewall en tiempo de ejecución.

# firewall-cmd --add-port=5901/tcp# firewall-cmd --add-port=5901/tcp --permanent

Paso 2: Conexión a CentOS Desktop a través de VNC Client

8. Al ser un protocolo independiente de la plataforma, las conexiones VNC remotas de interfaz gráfica de usuario pueden realizarse desde casi cualquier sistema operativo con una interfaz gráfica de usuario y un cliente VNC especializado.

Un popular cliente VNC utilizado en los sistemas operativos basados en Microsoft, totalmente compatible con el servidor Linux TigerVNC, es el RealVNC VNC Viewer.

Para conectarse remotamente al escritorio CentOS desde un sistema operativo Microsoft a través del protocolo VNC, abra el programa VNC Viewer, añada la dirección IP y el número de puerto del servidor VNC de CentOS y pulse la tecla.

Una vez establecida la conexión VNC, debería aparecer en su pantalla una advertencia diciendo que la conexión no está encriptada, como se ilustra en las siguientes capturas de pantalla.

Cliente VNC Viewer
Conexión del Cliente VNC Viewer

9. Para saltarse la advertencia, pulse el botón Continuar, añada la contraseña configurada para el servidor VNC en el punto 2 y ya debería estar conectado remotamente al Escritorio CentOS con el usuario configurado para ejecutar la instancia del servidor VNC.

Contraseña del usuario del servidor VNC
Escritorio CentOS remoto VNC

10. En caso de que aparezca un nuevo mensaje de autenticación en su pantalla y su usuario no tenga privilegios de root, sólo tiene que pulsar el botón Cancelar para continuar con el Escritorio CentOS, como se muestra en la siguiente captura de pantalla.

Advertencia de autenticación del servidor VNC

Tenga en cuenta que la comunicación VNC establecida entre el servidor y el cliente y cualquier dato intercambiado (excepto la contraseña) se ejecutan a través de un canal no cifrado. Para cifrar y asegurar la transferencia de datos de la VPN, primero debe configurar un túnel SSH seguro y ejecutar cualquier tráfico VPN subsiguiente sobre el túnel SSH.

11. Para conectarse remotamente al escritorio CentOS a través del protocolo VNC desde otro escritorio CentOS, primero asegúrese de que el paquete vinagre está instalado en su sistema emitiendo el siguiente comando.

$ sudo yum install vinagre

12. Para abrir la utilidad vinagre, vaya a Aplicaciones -> Utilidades -> Visor de Escritorio Remoto como se muestra en la siguiente captura de pantalla.

Abrir Herramienta Vinagre

13. Para conectarse remotamente a un escritorio CentOS, pulse el botón Conectar, seleccione el protocolo VNC de la lista y añada la dirección IP y el puerto (5900+número de pantalla) del servidor VNC remoto. Además, proporcione la configuración de la contraseña para el usuario VNC como se ilustra en las siguientes capturas de pantalla.

Seleccione el protocolo de escritorio remoto
Introduzca los detalles de VNC remoto
Descritorio VNC remoto de CentOS

14. Otro cliente VNC popular para las plataformas basadas en Linux es Remmina, es un cliente de escritorio remoto se utiliza especialmente en las distribuciones basadas en Debian que ejecutan el entorno de escritorio GNOME.

Para instalar el cliente de escritorio remoto Remmina en las distros basadas en Debian emita el siguiente comando.

$ sudo apt-get install remmina

Paso 3: Configurar múltiples sesiones VNC en CentOS 7

15. En caso de que necesite ejecutar una nueva sesión VNC paralela bajo el mismo usuario, abra una consola de Terminal, inicie sesión con el usuario que desea iniciar la nueva sesión VNC y ejecute el siguiente comando.

Cuando inicie el servidor por primera vez, se le pedirá que proporcione una nueva contraseña para esta sesión. Sin embargo, tenga en cuenta que esta sesión se ejecuta con sus permisos de usuario conectado e independientemente de la sesión iniciada del servidor VNC systemd.

$ vncserver
Iniciar nueva sesión VNC

16. Las nuevas sesiones VNC abrirán los siguientes puertos disponibles basados en VNC (5900+3 pantalla en este ejemplo). Para mostrar los puertos abiertos, ejecute el comando ss sin privilegios de root como se ilustra en el siguiente extracto. Se listarán sólo las sesiones VNC iniciadas que debe su usuario.

$ ss -tlpn| grep Xvnc
List VNC Open Ports

17. Ahora, conéctese remotamente al Escritorio CentOS utilizando esta nueva sesión VNC, suministrando la combinación IP:puerto (192.168.1.23:5903) en el cliente VNC como se ilustra en la siguiente imagen.

Conéctese al Escritorio Remoto VNC

Para detener las instancias del servidor VNC iniciadas con los permisos de este usuario registrado, emita el siguiente comando sin privilegios de root. Este comando destruirá todas las instancias de VNC iniciadas que sean propiedad del usuario que las declaró.

$ su - your_user$ killall Xvnc

Lea también: Instalar remotamente CentOS 7 o RHEL 7 usando el modo VNC

¡Eso es todo! Ahora puede acceder a su sistema CentOS 7 y realizar tareas administrativas utilizando la interfaz gráfica de usuario proporcionada por el sistema operativo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.