Cómo instalar y configurar VNC en Ubuntu 18.04

Introducción

Índice
  1. Introducción
  • Prerrequisitos
  • Paso 1: Instalación del entorno de escritorio y del servidor VNC
  • Paso 2: Configuración del servidor VNC
  • Paso 3: Conexión segura del escritorio VNC
  • Paso 4: Ejecutar VNC como un servicio del sistema
  • Conclusión
  • Virtual Network Computing , o VNC, es un sistema de conexión que permite utilizar el teclado y el ratón para interactuar con un entorno de escritorio gráfico en un servidor remoto. Facilita la gestión de archivos, software y configuraciones en un servidor remoto a los usuarios que aún no se sienten cómodos con la línea de comandos.

    En esta guía, configurarás un servidor VNC en un servidor Ubuntu 18.04 y te conectarás a él de forma segura a través de un túnel SSH. Utilizarás TightVNC , un paquete de control remoto rápido y liviano. Esta opción garantizará que nuestra conexión VNC sea fluida y estable incluso en conexiones a Internet más lentas.

    Prerrequisitos

    Para completar este tutorial, necesitarás:

    • Un servidor Ubuntu 18.04 configurado siguiendo la guía de configuración inicial del servidor Ubuntu 18.04 , incluido un usuario sudo no root y un firewall.
    • Una computadora local con un cliente VNC instalado que admita conexiones VNC a través de túneles SSH.
      • En Windows, puedes usar TightVNC , RealVNC o UltraVNC .
      • En macOS, puedes usar el programa de uso compartido de pantalla integrado o puedes usar una aplicación multiplataforma como RealVNC .
      • En Linux, puede elegir entre muchas opciones, incluidas vinagre, krdc, RealVNC o TightVNC .

    Paso 1: Instalación del entorno de escritorio y del servidor VNC

    De manera predeterminada, un servidor Ubuntu 18.04 no viene con un entorno de escritorio gráfico ni un servidor VNC instalado, por lo que comenzaremos por instalarlos. En concreto, instalaremos paquetes para el entorno de escritorio Xfce más reciente y el paquete TightVNC disponible en el repositorio oficial de Ubuntu.

    En su servidor, actualice su lista de paquetes:

    1. sudo apt update

    Ahora instale el entorno de escritorio Xfce en su servidor:

    1. sudo apt install xfce4 xfce4-goodies

    Una vez completada la instalación, instale el servidor TightVNC:

    1. sudo apt install tightvncserver

    Para completar la configuración inicial del servidor VNC después de la instalación, utilice el vncservercomando para configurar una contraseña segura y crear los archivos de configuración inicial:

    1. vncserver

    Se le pedirá que ingrese y verifique una contraseña para acceder a su máquina de forma remota:

    OutputYou will require a password to access your desktops.Password:Verify:

    La contraseña debe tener entre seis y ocho caracteres. Las contraseñas con más de ocho caracteres se truncarán automáticamente.

    Una vez que verifique la contraseña, tendrá la opción de crear una contraseña de solo lectura. Los usuarios que inicien sesión con la contraseña de solo lectura no podrán controlar la instancia de VNC con el mouse o el teclado. Esta es una opción útil si desea demostrar algo a otras personas que usan su servidor VNC, pero no es obligatoria.

    Luego, el proceso crea los archivos de configuración predeterminados necesarios y la información de conexión para el servidor:

    OutputWould you like to enter a view-only password (y/n)? nxauth:  file /home/sammy/.Xauthority does not existNew 'X' desktop is your_hostname:1Creating default startup script /home/sammy/.vnc/xstartupStarting applications specified in /home/sammy/.vnc/xstartupLog file is /home/sammy/.vnc/your_hostname:1.log

    Ahora vamos a configurar el servidor VNC.

    Paso 2: Configuración del servidor VNC

    El servidor VNC necesita saber qué comandos ejecutar al iniciarse. En concreto, VNC necesita saber a qué escritorio gráfico debe conectarse.

    Estos comandos se encuentran en un archivo de configuración llamado xstartupen la .vnccarpeta que se encuentra debajo de su directorio de inicio. El script de inicio se creó cuando ejecutó el comando vncserveren el paso anterior, pero crearemos el nuestro para iniciar el escritorio Xfce.

    Cuando se configura VNC por primera vez, se inicia una instancia de servidor predeterminada en el puerto 5901. Este puerto se denomina puerto de pantalla y VNC lo denomina :1. VNC puede iniciar varias instancias en otros puertos de pantalla, como :2, :3, etc.

    Dado que vamos a cambiar la forma en que se configura el servidor VNC, primero detenga la instancia del servidor VNC que se ejecuta en el puerto 5901con el siguiente comando:

    1. vncserver -kill :1

    La salida debería verse así, aunque verás un PID diferente:

    OutputKilling Xtightvnc process ID 17648

    Antes de modificar el xstartuparchivo, haga una copia de seguridad del original:

    1. mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

    Ahora crea un nuevo xstartuparchivo y ábrelo en tu editor de texto:

    1. nano ~/.vnc/xstartup

    Los comandos de este archivo se ejecutan automáticamente cada vez que se inicia o reinicia el servidor VNC. Necesitamos que VNC inicie nuestro entorno de escritorio si aún no lo ha hecho. Agregue estos comandos al archivo:

    ~/.vnc/xstartup

    #!/bin/bashxrdb $HOME/.Xresourcesstartxfce4 

    El primer comando del archivo, xrdb $HOME/.Xresources, le indica al marco de la interfaz gráfica de usuario de VNC que lea el .Xresourcesarchivo del usuario del servidor. .Xresourceses donde un usuario puede realizar cambios en ciertas configuraciones del escritorio gráfico, como colores de la terminal, temas del cursor y representación de fuentes. El segundo comando le indica al servidor que inicie Xfce, que es donde encontrará todo el software gráfico que necesita para administrar cómodamente su servidor.

    Guarde y cierre el archivo.

    Para garantizar que el servidor VNC pueda usar este nuevo archivo de inicio correctamente, necesitaremos hacerlo ejecutable.

    1. sudo chmod +x ~/.vnc/xstartup

    Ahora, reinicie el servidor VNC.

    1. vncserver

    Verás un resultado similar a este:

    OutputNew 'X' desktop is your_hostname:1Starting applications specified in /home/sammy/.vnc/xstartupLog file is /home/sammy/.vnc/your_hostname:1.log

    Con la configuración establecida, conectémonos al servidor desde nuestra máquina local.

    Paso 3: Conexión segura del escritorio VNC

    VNC no utiliza protocolos seguros al conectarse. Usaremos un túnel SSH para conectarnos de forma segura a nuestro servidor y luego le indicaremos a nuestro cliente VNC que use ese túnel en lugar de realizar una conexión directa.

    Cree una conexión SSH en su computadora local que reenvíe de forma segura a la localhostconexión para VNC. Puede hacerlo a través de la terminal en Linux o macOS con el siguiente comando:

    1. ssh -L 5901:127.0.0.1:5901 -C -N -l sammy your_server_ip

    El -Lconmutador especifica las vinculaciones de puertos. En este caso, vinculamos el puerto 5901de la conexión remota al puerto 5901de su máquina local. El -Cconmutador habilita la compresión, mientras que el -Nconmutador indica sshque no queremos ejecutar un comando remoto. El -lconmutador especifica el nombre de inicio de sesión remoto.

    Recuerde reemplazar sammyy your_server_ipcon el nombre de usuario sudo no root y la dirección IP de su servidor.

    Si está utilizando un cliente SSH gráfico, como PuTTY, utilícelo your_server_ipcomo IP de conexión y configúrelo localhost:5901como un nuevo puerto reenviado en la configuración del túnel SSH del programa.

    Una vez que el túnel esté en funcionamiento, use un cliente VNC para conectarse a localhost:5901. Se le solicitará que se autentique con la contraseña que estableció en el paso 1.

    Una vez que estés conectado, verás el escritorio Xfce predeterminado. Debería verse así:

    Puede acceder a los archivos de su directorio de inicio con el administrador de archivos o desde la línea de comandos, como se ve aquí:

    Pulsa CTRL+Cen tu terminal para detener el túnel SSH y volver al mensaje de aviso. Esto también desconectará tu sesión VNC.

    A continuación, configuremos nuestro servidor VNC como un servicio.

    Paso 4: Ejecutar VNC como un servicio del sistema

    A continuación, configuraremos el servidor VNC como un servicio systemd para que podamos iniciarlo, detenerlo y reiniciarlo según sea necesario, como cualquier otro servicio. Esto también garantizará que VNC se inicie cuando se reinicie el servidor.

    Primero, crea un nuevo archivo de unidad llamado /etc/systemd/system/vncserver@.serviceusando tu editor de texto favorito:

    1. sudo nano /etc/systemd/system/vncserver@.service

    El @símbolo al final del nombre nos permitirá pasar un argumento que podemos usar en la configuración del servicio. Lo usaremos para especificar el puerto de pantalla VNC que queremos usar cuando administremos el servicio.

    Agregue las siguientes líneas al archivo. Asegúrese de cambiar el valor de User , Group , WorkingDirectory y el nombre de usuario en el valor de PIDFILE para que coincidan con su nombre de usuario:

    /etc/systemd/system/vncserver@.servicio

    [Unit]Description=Start TightVNC server at startupAfter=syslog.target network.target[Service]Type=forkingUser=sammyGroup=sammyWorkingDirectory=/home/sammyPIDFile=/home/sammy/.vnc/%H:%i.pidExecStartPre=-/usr/bin/vncserver -kill :%i  /dev/null 21ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%iExecStop=/usr/bin/vncserver -kill :%i[Install]WantedBy=multi-user.target

    El ExecStartPrecomando detiene VNC si ya se está ejecutando. El ExecStartcomando inicia VNC y establece la profundidad de color en 24 bits con una resolución de 1280×800. También puede modificar estas opciones de inicio para satisfacer sus necesidades.

    Guarde y cierre el archivo.

    A continuación, haga que el sistema conozca el nuevo archivo de unidad.

    1. sudo systemctl daemon-reload

    Habilitar el archivo de unidad.

    1. sudo systemctl enable vncserver@1.service

    El 1siguiente @signo indica en qué número de pantalla debe aparecer el servicio, en este caso el predeterminado :1como se explicó en el Paso 2…

    Detenga la instancia actual del servidor VNC si aún está en ejecución.

    1. vncserver -kill :1

    Luego inícielo como lo haría con cualquier otro servicio systemd.

    1. sudo systemctl start vncserver@1

    Puedes verificar que se inició con este comando:

    1. sudo systemctl status vncserver@1

    Si comenzó correctamente, el resultado debería verse así:

    Output● vncserver@1.service - Start TightVNC server at startup   Loaded: loaded (/etc/systemd/system/vncserver@.service; indirect; vendor preset: enabled)   Active: active (running) since Mon 2018-07-09 18:13:53 UTC; 2min 14s ago  Process: 22322 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :1 (code=exited, status=0/SUCCESS)  Process: 22316 ExecStartPre=/usr/bin/vncserver -kill :1  /dev/null 21 (code=exited, status=0/SUCCESS) Main PID: 22330 (Xtightvnc)...

    Su servidor VNC ahora estará disponible cuando reinicie la máquina.

    Inicie su túnel SSH nuevamente:

    1. ssh -L 5901:127.0.0.1:5901 -C -N -l sammy your_server_ip

    Luego, realice una nueva conexión utilizando su software de cliente VNC para localhost:5901conectarse a su máquina.

    Conclusión

    Ahora tienes un servidor VNC seguro en funcionamiento en tu servidor Ubuntu 18.04. Ahora podrás administrar tus archivos, software y configuraciones con una interfaz gráfica fácil de usar y familiar, y podrás ejecutar software gráfico como navegadores web de forma remota.

    SUSCRÍBETE A NUESTRO BOLETÍN 
    No te pierdas de nuestro contenido ni de ninguna de nuestras guías para que puedas avanzar en los juegos que más te gustan.

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Subir

    Este sitio web utiliza cookies para mejorar tu experiencia mientras navegas por él. Este sitio web utiliza cookies para mejorar tu experiencia de usuario. Al continuar navegando, aceptas su uso. Mas informacion