En esta guía, explicaremos cómo instalar y configurar Acceso Remoto VNC en CentOS 7/8 y RHEL 9/8/7 edición de escritorio mediante el programa tigervnc-server para acceder a máquinas de escritorio remoto.
VNC (Computación de Red Virtual) es un protocolo servidor-cliente que permite a las cuentas de usuario conectarse de forma remota y controlar un sistema remoto utilizando los recursos proporcionados por la Interfaz Gráfica de Usuario.
A diferencia de otros servidores VNC disponibles que se conectan directamente a la sesión de 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
- Instalación de CentOS 8 con Capturas de Pantalla
- Procedimiento de Instalación de CentOS 7
- Cómo Instalar RHEL 9 de Forma Gratuita
- Cómo instalar RHEL 8 de forma gratuita
- Procedimiento de instalación de RHEL 7
Paso 1: Instalar y configurar VNC en CentOS
1. Tigervnc-server es un programa que ejecuta un servidor Xvnc y inicia sesiones paralelas de Gnome o otros entornos de escritorio en el escritorio VNC.
A started VNC user session can be accessed by the same user from multiple VNC clients. In order to install the TigerVNC server in CentOS/RHEL, open a terminal session and issue the following yum command with root privileges.
$ sudo yum install tigervnc-server

2. Después de instalar el programa, inicie sesión con el usuario con el que desea ejecutar el programa VNC e introduzca el siguiente comando en el terminal para configurar una contraseña para el servidor VNC. Tenga en cuenta que la contraseña debe tener al menos seis caracteres.
$ su - your_user $ vncpasswd

3. A continuación, agregue un archivo de configuración de servicio VNC para su usuario a través de un archivo de configuración de demonio ubicado en el árbol de directorio systemd. Para copiar el archivo de plantilla VNC debe ejecutar el siguiente comando cp con privilegios de root.
Si su usuario no tiene permisos de sudo otorgados, cambie directamente a la cuenta raíz o ejecute el comando desde una cuenta con privilegios de raíz.
# cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service
4. En el siguiente paso, edite el archivo de configuración de plantilla VNC copiado desde el directorio /etc/systemd/system/ y reemplace los siguientes valores para reflejar su usuario como se muestra en el ejemplo a continuación.
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
Agregue las siguientes líneas al archivo vncserver@:1.service.
[Unit] Description=Remote desktop service (VNC) After=syslog.target network.target [Service] Type=forking User=tecmint Group=tecmint WorkingDirectory=/home/tecmint ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' ExecStart=/usr/bin/vncserver %i -geometry 1280x1024 PIDFile=/home/tecmint/.vnc/%H%i.pid ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' [Install] WantedBy=multi-user.target

5. Después de realizar los cambios adecuados al archivo de servicio VNC, recargue el programa de inicialización del sistema systemd para recoger el nuevo archivo de configuración de vnc y inicie el servidor TigerVNC.
Además, verifique el estado del servicio VNC y habilite el demonio de VNC en todo el sistema emitiendo los comandos a continuación.
# systemctl daemon-reload # systemctl start vncserver@:1 # systemctl status vncserver@:1 # systemctl enable vncserver@:1

6. Para listar los puertos abiertos en estado de escucha pertenecientes al servidor VNC, ejecute el comando ss, que se utiliza para mostrar sockets de red. Como solo ha iniciado una instancia del servidor VNC, el primer puerto abierto es 5901/TCP.
Nuevamente, 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

7. Para permitir que los clientes VNC externos se conecten al servidor VNC, debes asegurarte de que los puertos VNC abiertos adecuados puedan pasar a través de tu firewall.
En caso de que solo se inicie una instancia del servidor VNC, solo necesitas abrir el primer puerto VNC asignado: 5901/TCP al emitir 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: Conectarse al Escritorio de CentOS a través de Cliente VNC
8. Siendo un protocolo independiente de la plataforma, las conexiones remotas Interfaz Gráfica de Usuario VNC gráficas se pueden realizar desde casi cualquier sistema operativo con GUI y un cliente VNC especializado.
A popular VNC client used in Microsoft-based operating systems, fully compatible with Linux TigerVNC server, is the RealVNC VNC Viewer.
Para conectarse de forma remota a CentOS Desktop desde un sistema operativo de Microsoft mediante el protocolo VNC, abra el programa VNC Viewer, agregue la dirección IP y el número de puerto del servidor VNC de CentOS, y presione la tecla [enter].
Después de establecer la conexión VNC, se mostrará una advertencia indicando que la conexión no está encriptada en la pantalla, como se ilustra en las capturas de pantalla a continuación.


9. Para omitir la advertencia, presione el botón Continue, agregue la contraseña configurada para el servidor VNC en el punto 2 y debería estar conectado de forma remota al CentOS Desktop con el usuario configurado para ejecutar la instancia del servidor VNC.


10. En caso de que aparezca un mensaje de Autenticación en la pantalla y su usuario no tenga privilegios de root, simplemente presione el botón Cancel para continuar al CentOS Desktop, como se muestra en la captura de pantalla a continuación.

Tenga en cuenta que la comunicación VNC establecida entre el servidor y el cliente, y cualquier dato intercambiado (excepto la contraseña), se realiza a través de un canal no encriptado. Para encriptar y asegurar la transferencia de datos VPN, primero debe configurar un túnel SSH seguro y ejecutar cualquier tráfico VPN sobre el túnel SSH.
11. Para conectarse de forma remota a CentOS Desktop mediante el protocolo VNC desde otros CentOS Desktop, 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, dirígete a Aplicaciones -> Utilidades -> Visor de Escritorio Remoto tal como se muestra en la captura de pantalla a continuación.

13. Para conectarse de forma remota a un Escritorio CentOS, haz clic en el botón Conectar, selecciona el protocolo VNC de la lista y agrega la dirección IP y el puerto (5900+número de pantalla) del servidor VNC remoto. Además, proporciona la contraseña configurada para el usuario VNC como se ilustra en las siguientes capturas de pantalla.



14. Otro cliente VNC popular para plataformas basadas en Linux es Remmina, un cliente de escritorio remoto que se utiliza especialmente en distribuciones basadas en Debian que ejecutan el entorno de escritorio GNOME.
Para instalar el cliente Remmina Remote Desktop en distribuciones basadas en Debian, ejecuta el siguiente comando.
$ sudo apt-get install remmina
Paso 3: Configurar Múltiples Sesiones VNC en CentOS
15. En caso de que necesites ejecutar una nueva sesión VNC paralela bajo el mismo usuario, abre una consola de Terminal, inicia sesión con el usuario con el que deseas iniciar la nueva sesión VNC y ejecuta el siguiente comando.
Cuando inicies el servidor por primera vez, se te pedirá que proporciones una nueva contraseña para esta sesión. Sin embargo, ten en cuenta de que esta sesión se ejecuta con los permisos del usuario que has iniciado sesión y de manera independiente a la sesión del servidor VNC systemd iniciada.
$ vncserver

16. Las nuevas sesiones de VNC se abrirán en los próximos puertos basados en VNC disponibles (5900+3 se muestra en este ejemplo). Para mostrar los puertos abiertos, ejecute el comando ss sin privilegios de root como se ilustra en el siguiente extracto. Listará solo las sesiones de VNC iniciadas por su usuario.
$ ss -tlpn| grep Xvnc

17. Ahora, conecte de forma remota al escritorio de CentOS usando esta nueva sesión de VNC y proporcione la combinación IP:puerto (192.168.1.23:5903) en el cliente VNC como se ilustra en la siguiente imagen.

Para detener las instancias del servidor VNC iniciadas con los permisos de usuario conectado, emita el siguiente comando sin ningún privilegio de root. Este comando destruirá todas las instancias de VNC iniciadas solo por el usuario que las inició.
$ su - your_user $ killall Xvnc
¡Eso es todo! Ahora puedes acceder a tu sistema CentOS y realizar tareas administrativas utilizando la interfaz gráfica de usuario proporcionada por el sistema operativo.
Source:
https://www.tecmint.com/install-and-configure-vnc-server-in-centos-7/