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.
+1 302 498-83-59
IT-GRAD NL B. V.
+1 302 498-83-59
IT-GRAD NL B. V.