Virtual Network Computing (VNC) funciona capturando el búfer de fotogramas de la pantalla y haciéndolo disponible a través de la red. Esta publicación le muestra cómo instalar TigerVNC y configurarlo para proporcionar a los usuarios remotos acceso a su entorno de escritorio gráfico como si estuvieran físicamente frente al sistema.
Para el ejemplo de esta publicación, usaremos un servidor CentOS 7 como servidor VNC y una computadora local con un cliente VNC para conectarse a él. Supone que el sistema remoto está ejecutando el servidor OpenSSH SSH y un entorno de escritorio gráfico como GNOME o KDE. Puede consultar la publicación "CentOS / RHEL 7:cómo instalar la GUI" para instalar el entorno gráfico antes de continuar.
Instalando el servidor VNC
1. Asegúrese de tener acceso a un repositorio yum local o remoto para instalar los paquetes necesarios.
# yum repolist
2. Instale el paquete de escritorio GUI si aún no está instalado para tener un acceso GUI al servidor VNC.
# yum groupinstall "Server with GUI"
3. En el servidor VNC, instale el paquete del servidor TigerVNC:
# yum install tigervnc-server
Configuración del servidor VNC
Copie el archivo de configuración, /lib/systemd/system/[email protected] , al directorio /etc/systemd/system/ siguiendo el nombre de 'vncserver_[username]@:[port].service '. Por ejemplo:
# cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver_root@:2.service # cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver_oracle@:3.serviceNota :Es común crear diferentes archivos de configuración para cada usuario. Como práctica recomendada, podemos agregar el nombre de usuario al archivo de configuración, ya que esto ayudará a identificar qué archivo pertenece a cada usuario. Esto no es obligatorio.
3. Modificar los archivos de configuración que se han creado para cada usuario (En este ejemplo vamos a usar root y oracle):
A. Reemplace el marcador de posición <USER> con el usuario "raíz" que aparece en [Servicio] para el archivo "vncserver_root@:2.service" y "oracle" para el archivo "vncserver_oracle@:3.service" con vi.
# vi /etc/systemd/system/vncserver_root@:2.service # vi /etc/systemd/system/vncserver_oracle@:3.service
También puede usar "sed" para realizar automáticamente el reemplazo del nombre de usuario:
# sed -i 's/<USER>/root/g' /etc/systemd/system/vncserver_root@:2.service # sed -i 's/<USER>/oracle/g' /etc/systemd/system/vncserver_oracle@:3.service
B. Agregue la geometría al archivo de configuración también para cada usuario. En este ejemplo vamos a añadir “-geometría 800×800 ” al archivo de configuración. Estará al final de la línea que comienza con "ExecStart".
# vi /etc/systemd/system/vncserver_root@:2.service # vi /etc/systemd/system/vncserver_oracle@:3.service
4. Después de realizar las modificaciones en los pasos A y B, la línea que hemos modificado en el archivo de configuración debería verse similar a estas:
Para el archivo “vncserver_root@:2.service ”
[Unit] Description=Remote desktop service (VNC) After=syslog.target network.target [Service] Type=forking User=root # Clean any existing files in /tmp/.X11-unix environment ExecStartPre=-/usr/bin/vncserver -kill %i ExecStart=/sbin/runuser -l root -c "/usr/bin/vncserver %i -geometry 800x800" PIDFile=/home/root/.vnc/%H%i.pid ExecStop=-/usr/bin/vncserver -kill %i [Install] WantedBy=multi-user.target
Para el archivo “vncserver_oracle@:3.service ”
[Unit] Description=Remote desktop service (VNC) After=syslog.target network.target [Service] Type=forking User=oracle # Clean any existing files in /tmp/.X11-unix environment ExecStartPre=-/usr/bin/vncserver -kill %i ExecStart=/sbin/runuser -l oracle -c "/usr/bin/vncserver %i -geometry 800x800" PIDFile=/home/oracle/.vnc/%H%i.pid ExecStop=-/usr/bin/vncserver -kill %i [Install] WantedBy=multi-user.target
El comando especificado en ExecStart La entrada se invoca cuando iniciamos el servidor usando systemctl start; usa runuser para ejecutar TigerVNC bajo la cuenta del usuario. El -l argumento proporciona el nombre de usuario y -c especifica el comando y sus argumentos que ejecutará runuser. El archivo PID La entrada especifica el directorio en el que el proceso en ejecución realizará un seguimiento de su ID de proceso.
Nota :A partir de RHEL7.4, las opciones de servidor admitidas para pasar a vncserver tras la invocación se han movido a un nuevo archivo llamado 'config' en el directorio ~/.vnc/. Por lo tanto, no habrá necesidad de agregar esas opciones en la línea ExecStart.Configurar cortafuegos
1. El firewall debe permitir el tráfico para el puerto correspondiente de la pantalla. La pantalla 0 usa el puerto 5900, la pantalla 1 usa el puerto 5901, la pantalla 2 usa el puerto 5902 y así sucesivamente. Si está utilizando FirewallD, el servicio de servidor vnc predefinido abre los puertos 5900-5903:
# firewall-cmd --zone=public --permanent --add-service=vnc-server
Si necesita puertos adicionales o si no necesita abrir todo el rango, puede abrir solo lo que necesita usando –add-port:
# firewall-cmd --zone=public --permanent --add-port=5901/tcp
2. Vuelva a cargar el cortafuegos para que las reglas del cortafuegos sean efectivas.
# firewall-cmd --reload
3. Vuelva a cargar la configuración:
# systemctl daemon-reload
Iniciar los Servicios y configurar la contraseña
1. Ahora habilitaremos el servicio vncserver para cada usuario en el puerto seleccionado, esto también habilitará el inicio automático en el arranque del sistema, con los siguientes comandos:
# systemctl enable vncserver_root@:2.service Created symlink from /etc/systemd/system/multi-user.target.wants/vncserver_root@:2.service to /etc/systemd/system/vncserver_root@:2.service.
# systemctl enable vncserver_oracle@:3.service Created symlink from /etc/systemd/system/multi-user.target.wants/vncserver_oracle@:3.service to /etc/systemd/system/vncserver_oracle@:3.service.
2. Vuelva a cargar la configuración de systemd para que sea consciente de los nuevos archivos de unidad:
# systemctl daemon-reload
3. Configure una contraseña para cada usuario que se utilizará con vncserver.
# vncpasswd root Password: Verify: Would you like to enter a view-only password (y/n)? n
# vncpasswd oracle Password: Verify: Would you like to enter a view-only password (y/n)? n
4. Deberá ejecutar “vncserver ” en la línea de comando mientras está conectado como usuario. Esto le pedirá automáticamente que cree una nueva contraseña para el usuario.
# vncserver You will require a password to access your desktops. Password: Verify: Would you like to enter a view-only password (y/n)? n xauth: file /root/.Xauthority does not exist New 'geeklab:1 (root)' desktop is geeklab:1 Creating default startup script /root/.vnc/xstartup Creating default config /root/.vnc/config Starting applications specified in /root/.vnc/xstartup Log file is /root/.vnc/geeklab:1.log
Acceso al servidor VNC con el visor VNC
Puede instalar cualquier software de visualización VNC en su máquina cliente para acceder al servidor VNC. Estoy usando el software realVNC en mi MAC para acceder al servidor VNC. Puede utilizar cualquiera de los siguientes softwares de visualización de VNC según el sistema operativo que esté utilizando.
1. TigreVNC :http://tigervnc.org
2. TightVNC :https://www.tightvnc.com/download.php
3. RealVNC :https://www.realvnc.com/en/connect/download/viewer
Usar la pantalla VNC :1 para conectar el servidor VNV.
¡¡¡Ahí tienes!!! Ahora está conectado al servidor VNC.
Cómo configurar el servidor VNC en CentOS/RHEL 6