La mayor parte del tiempo, como administrador del sistema Linux, administra sus servidores a través de la red. Es muy raro que necesite tener acceso físico a cualquiera de sus servidores administrados. En la mayoría de los casos, todo lo que necesita es SSH de forma remota para realizar sus tareas de administración. En este artículo configuraremos una GUI alternativa a un acceso remoto a su servidor RHEL, que es VNC. VNC le permite abrir una sesión de GUI remota en su servidor y, por lo tanto, le brinda una interfaz gráfica completa accesible desde cualquier ubicación remota.
En este tutorial aprenderás:
- Cómo instalar los paquetes VNC requeridos
- Cómo configurar e iniciar el servidor VNC en RHEL
- Cómo conectarse a una sesión gráfica de forma remota
- Cómo ejecutar programas gráficos en la sesión xterm
Conexión VNC a RHEL
Requisitos de software y convenciones de línea de comandos de Linux Categoría | Requisitos, convenciones o versión de software utilizada |
Sistema | Red Hat Enterprise Linux |
Software | TigerVNC |
Otro | Acceso privilegiado a su sistema Linux como root o a través de sudo comando. |
Convenciones | # – requiere que los comandos de Linux dados se ejecuten con privilegios de root, ya sea directamente como usuario root o mediante el uso de sudo comando $ – requiere que los comandos de Linux dados se ejecuten como un usuario normal sin privilegios |
Instalación y configuración del servidor VNC
Hay muchos administradores de ventanas que podemos usar con el servidor VNC, pero para el propósito de este tutorial configuraremos una sesión simple de xterm, como xterm
está en los repositorios base de Red Hat Enterprise Linux. Sin embargo, mostraremos que este simple punto de partida brinda una funcionalidad completa con un simple truco. También tenga en cuenta que existen administradores de ventanas mucho más sofisticados, como xfce
, pero eso está fuera del alcance de este tutorial.
- Primero, necesitamos instalar los paquetes necesarios para la aplicación del servidor:
# dnf install tigervnc-server xterm
- A continuación, debemos abrir el firewall para el servicio. Para verificar qué servicios están permitidos actualmente, enumeramos los servicios habilitados:
# firewall-cmd --list-services
cockpit dhcpv6-client ssh
Abra el vnc-server
servicio:
# firewall-cmd --permanent --zone=public --add-service vnc-server
success
Aplicar el cambio de configuración:
# firewall-cmd --reload
Y vuelva a enumerar los servicios para verificar:
# firewall-cmd --list-services
cockpit dhcpv6-client ssh vnc-server
ADVERTENCIA
¡No abra el servicio VNC de su computadora al público! La regla de firewall anterior se ejecuta en un entorno confinado y solo tiene fines de demostración. Asegúrese de comprender los riesgos antes de abrir cualquier cosa en un servidor con acceso a Internet, o incluso en un escritorio.
- Necesitamos configurar el entorno donde se ejecutará el servidor. En este ejemplo, nuestro objetivo es ejecutar el servidor con un usuario específico
testuser
quien no tiene root
privilegios Tenga en cuenta que este paso se realiza con el usuario que ejecutará el servidor, no root
. Configuramos una contraseña que permitirá la conexión (que no tiene nada que ver con la contraseña del usuario utilizada con ssh
):$ vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
No necesitamos tener inicios de sesión de solo lectura en este ejemplo. Luego editamos el /home/testuser/.vnc/xstartup
archivo de texto con un editor de texto como nano
. El archivo debe estar vacío después de la instalación, y agregaremos solo un contenido mínimo para iniciar xterm
sesión sobre la conexión. Agregamos la siguiente línea al archivo vacío:
xterm -geometry 1044x810+10+10 &
Ajuste los parámetros de geometría para que se ajusten a su pantalla. Ahora podemos iniciar el servidor:
$ vncserver
New 'rhel8beta.lab:1 (testuser)' desktop is rhel8beta.home.hu:1
Starting applications specified in /home/testuser/.vnc/xstartup
Log file is /home/testuser/.vnc/rhel8beta.lab:1.log
Como sugiere el resultado, podemos seguir los registros proporcionados por el servidor en los archivos de registro en
/home/<username>/.vnc/<hostname>:1.log
, este nombre de archivo cambiará si se están ejecutando más de un servidor VNC (al igual que el puerto que necesita para conectarse). El archivo de registro también indica en qué puerto está escuchando el servidor:
vncext: Listening for VNC connections on all interface(s), port 5901
Cuál es el puerto VNC predeterminado.
- Podemos usar muchos clientes VNC para conectarnos al servidor ahora iniciado.
Remmina
es un cliente que se envía con los escritorios Gnome recientes de forma predeterminada y puede manejar sesiones SSH, RDP y VNC. Necesitamos proporcionar el nombre de host o la dirección IP del host que ejecuta el servidor VNC, así como el puerto. El siguiente ejemplo usa 192.168.1.14
como dirección y el puerto predeterminado 5901
que encontramos en el archivo de registro del servidor en el paso anterior. Necesitamos seleccionar "VNC" como protocolo al lado del campo de dirección y escribir la contraseña que especificamos con vncpasswd
más temprano.
Conexión a tigervnc con Remmina
Si todo funciona como se esperaba, estamos conectados al servidor VNC y ejecutando xterm
, aceptando y proporcionando contenido del portapapeles, protegido contra fallas en la red. El top
El siguiente ejemplo se ejecutará sin interrupciones si nos desconectamos de la sesión y nos volvemos a conectar más tarde.
Ejecutando top ininterrumpidamente de forma remota
- Si bien estos pasos básicamente muestran cómo configurar el servidor VNC y conectarse a él, no tiene mucho sentido ejecutar
top
en un xterm
remoto sesión, como podríamos hacerlo con mucho menos esfuerzo con ssh, y un servidor de sesión como screen
. Para ver el poder de una configuración de xterm tan simple, simplemente escriba gedit
en la consola xterm remota (suponiendo que esté instalado un escritorio Gnome).
Ejecutar programas gráficos dentro de xterm
Aparece un documento vacío en gedit, tal como lo haría cualquier programa gráfico cuando se inicia desde la línea de comandos. Tenga en cuenta que el documento que se está editando de forma remota y el programa que lo mantiene abierto también están protegidos por la sesión de VNC. Una interrupción de la red no lo afectará, simplemente podemos volver a conectarnos y continuar trabajando en el texto, incluso si nuestra máquina cliente experimenta un error irrecuperable y olvidamos guardar nuestro trabajo durante las últimas horas. Naturalmente, el servidor VNC no protegerá de la falla de la máquina en la que se está ejecutando.
Resolución de problemas
Si obtiene un error de "conexión rechazada", lo más probable es que sea un problema con la configuración de su firewall. Asegúrese de haber configurado el acceso para VNC con los siguientes comandos:
# firewall-cmd --permanent --zone=public --add-service vnc-server
# firewall-cmd --reload
De lo contrario, podría ser un dispositivo entre los dos sistemas el que está bloqueando la conexión, o simplemente un problema de enrutamiento con la red.
Si intenta conectarse al servidor VNC y termina con solo una pantalla negra, es probable que no haya un administrador de ventanas para VNC. En las instrucciones anteriores, mostramos cómo configurar xterm
para este propósito. También puede usar un administrador de ventanas con todas las funciones como GNOME o XFCE, pero debe configurar algo. Asegúrese de que xterm esté configurado como administrador de ventanas VNC según las instrucciones anteriores.