Maybaygiare.org

Blog Network

Instalación y configuración de un servidor VNC en CentOS 7

13.07.2020

En esta guía, veremos cómo instalar y configurar un servidor VNC en CentOS 7.sistema operativo x para permitir conexiones remotas desde cualquier cliente VNC, como TightVNC, RealVNC y otros. En particular, lo haremos utilizando el software Servidor TigerVNC, una herramienta gratuita que permite usar un escritorio virtual independiente.

Introducción

VNC (Virtual Network Computing) es un protocolo cliente-servidor que permite a un equipo cliente (que ejecuta un cliente VNC) conectar y controlar un equipo remoto (que se ejecuta en un servidor VNC). El software fue desarrollado por Olivetti & Oracle research lab en Cambridge, Reino Unido, y su código fuente aún está actualizado y disponible bajo la Licencia Pública General (GNU).

Dependiendo del software del servidor, el cliente VNC se conectará al escritorio activo (por ejemplo, como programas de TeamViewer o AnyDesk) o a un escritorio virtual independiente (como el protocolo de escritorio remoto RDP de Windows). Este último, quizás más potente y seguro, especialmente si necesita administrar el equipo servidor porque cada sesión será un entorno único, configurado con los permisos y derechos del usuario conectado. Es por eso que elegimos TigerVNC, que ejecuta sesiones paralelas del entorno de escritorio del equipo (GNOME, KDE u otra interfaz gráfica de usuario): esto significa que se creará un escritorio virtual para cada conexión, esto es exactamente lo que queremos.

Instalando TigerVNC

Ahora veamos cómo podemos instalar y configurar TigerVNC en CentOS. Lo primero que debe hacer es instalar el programa Servidor TigerVNC abriendo una sesión de terminal e introduciendo el siguiente comando con privilegios de root:

$ sudo yum install tigervnc-server

Inmediatamente después de eso, debe crear un usuario VNC separado desde el que se realizará la conexión (con una contraseña dedicada). Para hacer esto, ingrese lo siguiente:

$ sudo adduser vncuser
$ sudo passwd vncuser

Importante: nunca haga esto como usuario root, esto representará una grave amenaza para la seguridad de su sistema. La mejor solución sería dejar al usuario root sin acceso a VNC y configurar una cuenta dedicada con derechos limitados.

Después de crear vncuser y establecer una contraseña para iniciar la sesión, también es necesario establecer una única contraseña VNC para este usuario. El comando para hacer esto es:

$ su - vncuser
$ vncpasswd

(la primera línea puede omitirse si ya hemos iniciado sesión como vncuser de antemano).

La próxima cosa a hacer es crear un archivo de configuración de VNC para vncuser. La forma más rápida de hacerlo es copiar el archivo de plantilla VNC compartido ubicado en la carpeta /lib/systemd/system/, y luego cambiarlo:

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

El número 1 que agregamos al nuevo nombre de archivo es el número de pantalla que se utilizará para esta instancia particular del servicio. Es importante saber esto porque también determinará el puerto TCP que utilizará nuestro servidor VNC, igual al número de pantalla 5900+. El primero será 5901, luego 5902 y así sucesivamente.

Inmediatamente después de copiar, debe editar el nuevo archivo utilizando Vi, Nano u otro editor de texto, y reemplazarlo con el nombre del usuario creado recientemente (en nuestro caso, vncuser). Así es como debe verse el archivo después de la actualización (excepto la parte larga comentada al principio):


Description=Remote desktop service (VNC)
After=syslog.target network.target
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/sbin/runuser -l vncuser -c "/usr/bin/vncserver %i -geometry 1280x720"
PIDFile=/home/vncuser/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

WantedBy=multi-user.target

Una vez hecho esto, puede recargar el demonio VNC y ejecutar vncserver @ 1 con los siguientes comandos:

$ systemctl daemon-reload
$ systemctl start vncserver@:1

Antes de continuar, compruebe que el servicio se está ejecutando por entrar en el systemctl status comando:

$ systemctl status vncserver@:1

y crear un enlace simbólico para que siempre se ejecuta al inicio del sistema con el siguiente comando:

$ systemctl enable vncserver@:1

Otra prueba que se puede realizar antes de intentar conectarse al servidor es buscar en la red activa sockets con thesscommand: si todo funciona correctamente, debería ver que el servidor VNC está funcionando y utiliza el puerto TCP 5901. Ejecutar el comando:

$ ss -tulpn| grep vnc

El resultado debería ser el siguiente:

tcp LISTEN 0 5 *:5901 *:* users:(("Xvnc",pid=38344,fd=9))
tcp LISTEN 0 128 *:6001 *:* users:(("Xvnc",pid=38344,fd=6))
tcp LISTEN 0 5 :::5901 :::* users:(("Xvnc",pid=38344,fd=10))
tcp LISTEN 0 128 :::6001 :::* users:(("Xvnc",pid=38344,fd=5))

Si usted ve esto, después de todo está configurado correctamente.

Configuración del cortafuegos

Dado que nuestro servicio VNC está escuchando en el puerto TCP 5901, debe asegurarse de que dicho puerto esté abierto y accesible para clientes externos. Por lo tanto, si tiene instalado un firewall, debe crear una regla adecuada que permita la conexión de clientes VNC.

La cantidad de puertos a abrir dependerá de la cantidad de instancias de servidor VNC que necesite. En nuestro escenario, solo hicimos 1, por lo que solo necesita abrir el primer puerto VNC dedicado: TCP 5901, como ya dijimos. El comando para abrir este puerto en Firewalld:

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

No será superfluo mencionar que también puede restringir este puerto a ciertos grupos, direcciones IP, tarjetas de red u otras reglas de firewall simples o complejas.

Instalación de la interfaz gráfica de usuario (GUI)

Si ya tiene GNOME, KDE u otros entornos de escritorio instalados, puede omitir este paso. De lo contrario, debe instalar uno de ellos: el servidor TigerVNC iniciará una instancia paralela de este entorno de escritorio para cada sesión de inicio de sesión, lo que significa que debemos tener al menos una interfaz gráfica de usuario.

GNOME

Si desea una interfaz GNOME excelente, pero pesada, ingrese lo siguiente:

$ sudo yum groupinstall "GNOME Desktop"

Xfce

Si necesita una alternativa ligera, podemos ofrecer Xfce, un entorno de código abierto gratuito para plataformas tipo Unix que funciona muy bien con TigerVNC. GNOME también funciona muy bien, pero consume muchos recursos: si desea ahorrar recursos en su máquina servidor, Xfce podría ser la mejor opción. Para instalarlo, introduzca lo siguiente:

$ yum install epel-release
$ yum groupinstall xfce

Ajustes adicionales para Xfce

Si decide utilizar Xfce, también deberá modificar el archivo que se ejecutó cuando se inició la sesión de VNC. Para ello, edite el archivo /home/<usuario>/.vnc/xstartup y cambie la entrada exec (generalmente la línea 4) de etc/X11/xinit/xinitrc a startxfce4, como se muestra a continuación:

#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4
vncserver -kill $DISPLAY

Conexión de cliente VNC

Ahora que todo está configurado, podemos intentar conectarnos a nuestro servicio VNC utilizando un cliente VNC, como TightVNC, UltraVNC o RealVNC, y ver qué pasa. Recuerde especificar el puerto TCP 5901 (si ha seguido nuestra guía).

Posibles problemas

Si su cliente no puede establecer una conexión VNC que funcione, debe comprobar lo siguiente:

1. Problemas de conexión-Configuración del cortafuegos: si ve errores emergentes de que el cliente no puede conectarse al host remoto, debe verificar la configuración de la red y del cortafuegos para asegurarse de que no haya problemas de bloqueo que puedan impedir que el cliente se conecte al puerto 5901 del servidor TCP.

2. Pantalla en negro con el ratón: actualización de YUM o reinstalación de la interfaz gráfica de usuario: si ve una pantalla en negro con el cursor del ratón funcionando, probablemente significa que su conexión VNC está funcionando bien, pero hay algo que impide que la interfaz gráfica de usuario se inicie correctamente en el escritorio. Para la corrección:

  • Ejecute yum update para instalar las últimas versiones de TigerVNC y la propia interfaz gráfica de usuario. Asegúrese de realizar un seguimiento de cualquier problema que ocurra durante la fase de instalación.
  • Desinstale y vuelva a instalar la interfaz gráfica de usuario con el comando yum remove / yum group remove y yum groupinstall de nuevo. Si todavía nada funciona, puede intentar instalar una interfaz gráfica de usuario diferente.
19703 Claymont 2093 Philadelphia Pike #2345, USA

+1 302 498-83-59

700 300

IT-GRAD NL B. V.

19703 Claymont 2093 Philadelphia Pike #2345, USA

+1 302 498-83-59

700 300

IT-GRAD NL B. V.

Deja una respuesta

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