Introducción
Virtual Network Computing (VNC) es un sistema gráfico para compartir escritorio que le permite usar su teclado y mouse para controlar remotamente otra computadora.
Este artículo describe los pasos para instalar y configurar un servidor VNC en CentOS 8. También le mostraremos cómo conectarse de forma segura al servidor VNC a través de un túnel SSH.
Prerrequisitos
Para seguir esta guía, debe iniciar sesión como usuario con privilegios de sudo en su computadora CentOS remota.
Si desea instalar VNC en un servidor remoto, continúe leyendo; de lo contrario, omita el primer párrafo "Conectando al servidor" y lea el siguiente.
Conexión al servidor
Para acceder al servidor, necesita conocer la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root, escriba el siguiente comando:
ssh root@IP_DEL_SERVER
A continuación, deberá ingresar la contraseña del usuario root.
Si no está utilizando el usuario root, puede iniciar sesión con otro nombre de usuario utilizando el mismo comando, luego cambie root a su nombre de usuario:
ssh nome_utente@IP_DEL_SERVER
Luego se le pedirá que ingrese su contraseña de usuario.
El puerto estándar para conectarse a través de ssh es 22, si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p, luego escriba el siguiente comando:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Instalar el entorno de escritorio
Normalmente, los servidores no tienen un entorno de escritorio instalado. Si la computadora a la que desea conectarse no tiene una GUI, el primer paso es instalarla. De lo contrario, omita este paso.
Ejecute el siguiente comando para instalar Gnome, el entorno de escritorio predeterminado en CentOS 8 en su computadora remota:
sudo dnf groupinstall "Server with GUI"
Dependiendo de su sistema, la descarga e instalación de paquetes y dependencias de Gnome puede llevar algún tiempo.
Instale el servidor VNC
TigerVNC es un servidor VNC de código abierto de alto rendimiento que se mantiene activamente. Está disponible en los repositorios predeterminados de CentOS, para instalarlo escriba:
sudo dnf install tigervnc-server
Una vez que el servidor VNC esté instalado, ejecute el vncserver
para crear la configuración inicial y establecer la contraseña. No use sudo
cuando ejecute el siguiente comando:
vncserver
Se le pedirá que ingrese y confirme su contraseña y si desea establecerla como una contraseña de solo lectura. Si elige establecer una contraseña de solo lectura, el usuario no podrá interactuar con la instancia de VNC con el mouse y el teclado.
You will require a password to access your desktops.
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
A view-only password is not used
xauth: file /home/nome_utente/.Xauthority does not exist
New 'TEST-SERVER-1:1 (nome_utente)' desktop is TEST-SERVER-1:1
Creating default startup script /home/nome_utente/.vnc/xstartup
Creating default config /home/nome_utente/.vnc/config
Starting applications specified in /home/nome_utente/.vnc/xstartup
Log file is /home/nome_utente/.vnc/TEST-SERVER-1:1.log
La primera vez que ejecute el vncserver
, creará y almacenará el archivo de contraseña en el ~/.vnc
que se creará si no está presente.
Nota :1
después del nombre de host en la salida anterior. Indica el número de puerto de pantalla en el que se está ejecutando el servidor VNC. En nuestro caso, el servidor se ejecuta en el puerto TCP 5901
(5900 + 1). Si crea una segunda instancia, se ejecutará en el siguiente puerto libre :2
, es decir, el servidor se ejecutará en el puerto 5902
(5900 + 2).
Lo que es importante recordar es que cuando se trabaja con servidores VNC: :X
es un puerto de pantalla al que hace referencia 5900+X
Antes de continuar con el siguiente paso, primero detenga la instancia de VNC usando el vncserver
con una -kill
y el número de servidor como argumento. En nuestro caso, el servidor se está ejecutando en el puerto 5901 ( :1
), así que para detenerlo, ejecute:
vncserver -kill:1
Killing Xvnc process ID 21975
Configurar el servidor VNC
Ahora que tanto Gnome como TigerVNC están instalados en la máquina CentOS remota, el siguiente paso es configurar TigerVNC para usar Gnome. El servidor VNC usa el ~/.vnc/xstartup
para iniciar aplicaciones al crear un nuevo escritorio. Abre el archivo:
vim ~/.vnc/xstartup
Agregue las siguientes líneas de código al final del archivo:
...
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
vncconfig -iconic &
dbus-launch --exit-with-session gnome-session &
El ~/.vnc/xstartup
también debe tener permisos de ejecución. Ejecute el chmod
comando chmod para asegurarse de que los permisos sean correctos:
chmod u+x ~/.vnc/xstartup
El script anterior se ejecuta automáticamente cada vez que inicia o reinicia el servidor TigerVNC.
Si desea utilizar opciones adicionales para el servidor VNC, abra el ~/.vnc/config
y agregue una opción por línea. Las opciones más comunes se enumeran en el archivo. Descomenta y edita a tu gusto.
vim ~/.vnc/config
# securitytypes=vncauth,tlsvnc
# desktop=sandbox
geometry=1920x1080
# localhost
# alwaysshared
Cree un archivo de unidad Systemd
Los archivos de Drive le permiten iniciar, detener y reiniciar servicios fácilmente.
Abra su editor de texto y copie y pegue la siguiente configuración. Asegúrese de cambiar el nombre de usuario en la línea 7 para que coincida con su nombre de usuario.
sudo vi /etc/systemd/system/[email protected]
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=simple
User=nome_utente
PAMName=login
PIDFile=/home/%u/.vnc/%H%i.pid
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill:%i > /dev/null 2>&1