Habilitar VNC para máquinas virtuales Linux

Es posible que las VM no estén configuradas para admitir Virtual Network Computing (VNC), que Citrix Hypervisor utiliza para controlar las VM de forma remota, de forma predeterminada. Antes de poder conectarse con XenCenter, asegúrese de que el servidor VNC y un administrador de pantalla X están instalados en la máquina virtual y configurados correctamente. En esta sección se describe cómo configurar VNC en cada una de las distribuciones de sistemas operativos Linux compatibles para permitir interacciones adecuadas con XenCenter.

Para las máquinas virtuales basadas en CentOS, utilice las instrucciones para las máquinas virtuales basadas en Red Hat que se indican a continuación, ya que utilizan el mismo código base para proporcionar acceso gráfico a VNC. CentOS X se basa en Red Hat Enterprise Linux X.

Habilitar una consola gráfica en VM Debian

Nota:

Antes de habilitar una consola gráfica en su VM Debian, asegúrese de haber instalado el agente invitado Linux. Para obtener más información, consulte Instalar el agente invitado de Linux.

La consola gráfica para las máquinas virtuales Debian es proporcionada por un servidor VNC que se ejecuta dentro de la máquina virtual. En la configuración recomendada, un administrador de pantalla estándar controla la consola para que se proporcione un cuadro de diálogo de inicio de sesión.

  1. Instale su invitado Debian con los paquetes del sistema de escritorio, o instale GDM (el administrador de pantallas) usando apt (siguiendo los procedimientos estándar).

  2. Instale el servidor Xvnc usandoapt-get (o similar):

    apt-get install vnc4server
    

    Nota:

    El entorno de escritorio gráfico de Debian, que utiliza el demonio Gnome Display Manager versión 3, puede tomar un tiempo considerable de CPU. Desinstale elgdm3 paquete Gnome Display Manager e instale elgdm paquete de la siguiente manera:

    apt-get install gdm
    apt-get purge gdm3
    
  3. Configure una contraseña de VNC (no tener una es un riesgo grave para la seguridad) mediante elvncpasswd comando. Pase un nombre de archivo en el que escribir la información de contraseña. Por ejemplo:

    vncpasswd /etc/vncpass
    
  4. Modifique sugdm.conf archivo (/etc/gdm/gdm.conf ) para configurar un servidor VNC para administrar la visualización0 mediante la extensión[servers] y [daemon]secciones de la siguiente manera:

        [servers]
        0=VNC
        [daemon]
        VTAllocation=false
        [server-VNC]
        name=VNC
        command=/usr/bin/Xvnc -geometry 800x600 -PasswordFile /etc/vncpass BlacklistTimeout=0
        flexible=true
    
  5. Reinicie GDM y espere a que XenCenter detecte la consola gráfica:

    /etc/init.d/gdm restart
    

Nota:

Puede comprobar que el servidor VNC se está ejecutando utilizando un comando comops ax | grep vnc.

Habilitar una consola gráfica en máquinas virtuales Red Hat, CentOS u Oracle Linux

Nota:

Antes de configurar las máquinas virtuales de Red Hat para VNC, asegúrese de haber instalado el agente invitado de Linux. Para obtener más información, consulte Instalar el agente invitado de Linux.

Para configurar VNC en máquinas virtuales de Red Hat, modifique la configuración de GDM. La configuración de GDM se mantiene en un archivo cuya ubicación varía dependiendo de la versión de Red Hat Linux que esté utilizando. Antes de modificarlo, primero determine la ubicación de este archivo de configuración. Este archivo se modifica en varios procedimientos posteriores de esta sección.

Nota:

Para obtener información sobre cómo habilitar VNC para máquinas virtuales RHEL, CentOS u OEL 6.x, consulteHabilitar VNC para máquinas virtuales RHEL, CentOS u OEL 6.

Determinar la ubicación del archivo de configuración de VNC

Si está utilizando Red Hat Linux versión 5.x, el archivo de configuración de GDM es/etc/gdm/custom.conf. Este archivo es un archivo de configuración dividido que contiene sólo valores especificados por el usuario que anulan la configuración predeterminada. Este tipo de archivo se utiliza de forma predeterminada en las versiones más recientes de GDM. Se incluye en estas versiones de Red Hat Linux.

Configurar GDM para usar VNC

  1. Como root en la CLI de texto en la VM, ejecute el comandorpm -q vnc-server gdm. Los nombres de los paquetesvnc-server ygdm aparecen, con sus números de versión especificados.

    Los nombres de paquetes que se muestran muestran los paquetes que ya están instalados. Si aparece un mensaje que indica que un paquete no está instalado, es posible que no haya seleccionado las opciones de escritorio gráfico durante la instalación. Instale estos paquetes antes de que pueda continuar. Para obtener más información sobre la instalación de más software en su máquina virtual, consulte la Guía de instalación de Red Hat Linux x86 correspondiente.

  2. Abra el archivo de configuración de GDM con su editor de texto preferido y agregue las siguientes líneas al archivo:

        [server-VNC]
        name=VNC Server
        command=/usr/bin/Xvnc -SecurityTypes None -geometry 1024x768 -depth 16 \
        -BlacklistTimeout 0
        flexible=true
    

    Con los archivos de configuración en Red Hat Linux 5.x, agregue estas líneas a la[servers] sección vacía.

  3. Modifique la configuración para que se utilice elXvnc servidor en lugar del servidor X estándar:

    • 0=Standard

      Modifíquelo para que lea:

      0=VNC

    • Si está utilizando Red Hat Linux 5.x o superior, agregue la línea anterior justo debajo de la[servers] sección y antes de la[server-VNC] sección.

  4. Guarde y cierre el archivo.

Reinicie GDM para que su cambio en la configuración surta efecto, ejecutando el comando/usr/sbin/gdm-restart.

Nota:

Red Hat Linux utiliza el nivel de ejecución 5 para el inicio gráfico. Si la instalación se inicia en el nivel de ejecución 3, cambie esta configuración para que se inicie el administrador de pantallas y obtenga acceso a una consola gráfica. Para obtener más información, consulte Comprobar niveles de ejecución.

Configuración del cortafuegos

La configuración del firewall de forma predeterminada no permite que el tráfico VNC pase. Si tiene un firewall entre la VM y XenCenter, permita el tráfico a través del puerto que utiliza la conexión VNC. De forma predeterminada, un servidor VNC escucha las conexiones de un visor VNC en el puerto TCP 5900 + n, donde n es el número de visualización (normalmente cero). Por lo tanto, una configuración del servidor VNC para Display-0 escucha en el puerto TCP5900, Display-1 esTCP-5901, y así sucesivamente. Consulte la documentación del firewall para asegurarse de que estos puertos están abiertos.

Si desea utilizar el seguimiento de la conexión IP o limitar el inicio de las conexiones a un solo lado, configure aún más el firewall.

Para configurar el firewall VMS de Red Hat-base para abrir el puerto VNC:

  1. Para Red Hat Linux 5.x, usesystem-config-securitylevel-tui.

  2. Select Personalizar y agregar5900 a la lista de otros puertos.

Alternativamente, puede deshabilitar el firewall hasta el próximo reinicio ejecutando el comandoservice iptables stopo ejecutando permanentementechkconfig iptables off. Esta configuración puede exponer servicios adicionales al mundo exterior y reducir la seguridad general de su VM.

Resolución de pantalla VNC

Después de conectarse a una máquina virtual con la consola gráfica, la resolución de pantalla a veces no coincide. Por ejemplo, la pantalla de la máquina virtual es demasiado grande para caber cómodamente en el panel de la consola gráfica. Controle este comportamiento estableciendo el parámetro geometry del servidor VNC de la siguiente manera:

  1. Abra el archivo de configuración de GDM con su editor de texto preferido. Para obtener más información, consulte Determinar la ubicación del archivo de configuración de VNC.

  2. Encuentra la[server-VNC] sección que has añadido arriba.

  3. Edite la línea de comandos para leer, por ejemplo:

    command=/usr/bin/Xvnc -SecurityTypes None -geometry 800x600
    

    El valor del parámetro geometry puede ser cualquier ancho y alto de pantalla válidos.

  4. Guarde y cierre el archivo.

Habilitar VNC para máquinas virtuales RHEL, CentOS u OEL 6

Si está utilizando Red Hat Linux versión 6.x, el archivo de configuración de GDM es/etc/gdm/custom.conf. Este archivo es un archivo de configuración dividido que contiene sólo valores especificados por el usuario que anulan la configuración predeterminada. De forma predeterminada, este tipo de archivo se utiliza en las versiones más recientes de GDM y se incluye en estas versiones de Red Hat Linux.

Durante la instalación del sistema operativo, seleccione Modo de escritorio . En la pantalla de instalación de RHEL, seleccione Escritorio > Personalizar ahora y, a continuación, haga clic en Siguiente :

Captura de pantalla de la pantalla de instalación de RHEL

Esta acción muestra la pantalla Sistema base, asegúrese de que la compatibilidad con UNIX heredado está seleccionada:

Captura de pantalla de la pantalla Sistema base

Select Escritorios > Paquetes opcionales y, a continuación, haga clic en Siguiente :

Captura de pantalla de la pantalla Escritorios

Esta acción muestra la ventana Paquetes en el escritorio , seleccione **tigervnc-server- <version_number> y, a continuación, haga clic en **Siguiente :

Captura de pantalla de la ventana Paquetes en el escritorio

Siga los siguientes pasos para continuar con la configuración de las máquinas virtuales RHEL 6.x:

  1. Abra el archivo de configuración de GDM con su editor de texto preferido y añada las siguientes líneas a las secciones correspondientes:

        [security]
        DisallowTCP=false
    
        [xdmcp]
        Enable=true
    
  2. Cree el archivo,/etc/xinetd.d/vnc-server-stream:

        service vnc-server
        {
                      id = vnc-server
                 disable = no
                    type = UNLISTED
                    port = 5900
             socket_type = stream
                    wait = no
                    user = nobody
                   group = tty
                  server = /usr/bin/Xvnc
             server_args = -inetd -once -query localhost -SecurityTypes None \
             -geometry 800x600 -depth 16
        }
    
  3. Escriba el siguiente comando para iniciar elxinetd servicio:

    # service xinetd start
    
  4. Abra el archivo/etc/sysconfig/iptables. Añada la siguiente línea por encima de la línea que dice-A INPUT -j REJECT --reject-with icmp-host-prohibited:

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 5900 -j ACCEPT
    
  5. Escriba el siguiente comando para reiniciar iptables:

    # service iptables restart
    
  6. Escriba el siguiente comando para reiniciar gdm:

        # telinit 3
        # telinit 5
    

Nota:

Red Hat Linux utiliza el nivel de ejecución 5 para el inicio gráfico. Si la instalación se inicia en el nivel de ejecución 3, cambie esta configuración para que se inicie el administrador de pantallas y obtenga acceso a una consola gráfica. Para obtener más información, consulte Comprobar niveles de ejecución.

Configurar VM basadas en SLES para VNC

Nota:

Antes de configurar las máquinas virtuales de SUSE Linux Enterprise Server para VNC, asegúrese de haber instalado el agente invitado de Linux. Consulte Instalar el agente invitado de Linux para obtener más detalles.

SLES es compatible con la habilitación de «Administración remota» como opción de configuración enYaST. Puede seleccionar habilitar la Administración remota en el momento de la instalación, disponible en la pantalla Servicios de red del instalador de SLES. Esta función le permite conectar un visor VNC externo a su invitado para permitirle ver la consola gráfica. El método para utilizar la función de administración remota de SLES es ligeramente diferente al método proporcionado por XenCenter. Sin embargo, es posible modificar los archivos de configuración de su máquina virtual SUSE Linux de modo que se integre con la función de consola gráfica.

Buscar un servidor VNC

Antes de realizar cambios en la configuración, compruebe que tiene instalado un servidor VNC. SUSE envía eltightvnc servidor de forma predeterminada. Este servidor es un servidor VNC adecuado, pero también puede utilizar la distribución RealVNC estándar.

Puede comprobar que tiene instalado eltightvnc software ejecutando el comando:

rpm -q tightvnc

Habilitar administración remota

Si la Administración remota no se habilitó durante la instalación del software SLES, puede habilitarlo de la siguiente manera:

  1. Abra una consola de texto en la VM y ejecute la utilidad YaST:

    yast
    
  2. Utilice las teclas de flecha para seleccionar Servicios de red en el menú de la izquierda. Pestaña en el menú de la derecha y utiliza las teclas de flecha para seleccionar Administración remota . Pulse Intro.

  3. En la pantalla Administración remota , ficha en la sección Configuración de administración remota . Utilice las teclas de dirección para seleccionar Permitir administración remota y presione Entrar para colocar una X en la casilla de verificación.

  4. en la sección Configuración del cortafuegos . Utilice las teclas de flecha para seleccionar Abrir puerto en Firewall y pulse Intro para colocar una X en la casilla de verificación.

  5. Hagaclic en el botón Finalizar y presione Intro .

  6. Aparece un cuadro de mensaje en el que se indica que debe reiniciar el administrador de visualización para que la configuración surta efecto. Pulse Intro para confirmar el mensaje.

  7. YaST`` Aparece el menú de nivel superior original de. Hagaclic en el botón Salir y presione Entrar .

Modificar la configuración xinetd

Después de habilitar la Administración remota, modifique un archivo de configuración si desea permitir la conexión de XenCenter. Alternativamente, utilice un cliente VNC de terceros.

  1. Abra el archivo/etc/xinetd.d/vnc en su editor de texto preferido.

  2. El archivo contiene secciones como las siguientes:

        service vnc1
        {
        socket_type = stream
        protocol    = tcp
        wait        = no
        user        = nobody
        server      = /usr/X11R6/bin/Xvnc
        server_args = :42 -inetd -once -query localhost -geometry 1024x768 -depth 16
        type        = UNLISTED
        port        = 5901
        }
    
  3. Editar laport línea para leer

    port = 5900
    
  4. Guarde y cierre el archivo.

  5. Reinicie el administrador de pantalla y el servicio xinetd con los siguientes comandos:

    /etc/init.d/xinetd restart
    rcxdm restart
    

SUSE Linux utiliza el nivel de ejecución 5 para el inicio gráfico. Si el escritorio remoto no aparece, compruebe que la máquina virtual está configurada para iniciarse en el nivel de ejecución 5. Para obtener más información, consulte Comprobar niveles de ejecución.

Configuración del cortafuegos

De forma predeterminada, la configuración del firewall no permite que el tráfico VNC pase. Si tiene un firewall entre la VM y XenCenter, permita el tráfico a través del puerto que utiliza la conexión VNC. De forma predeterminada, un servidor VNC escucha las conexiones de un visor VNC en el puerto TCP 5900 + n, donde n es el número de visualización (normalmente cero). Por lo tanto, una configuración del servidor VNC para Display-0 escucha en el puerto TCP5900, Display-1 esTCP-5901, y así sucesivamente. Consulte la documentación del firewall para asegurarse de que estos puertos están abiertos.

Si desea utilizar el seguimiento de la conexión IP o limitar el inicio de las conexiones a un solo lado, configure aún más el firewall.

Para abrir el puerto VNC en SLES 11.x VM Firewall:

  1. Abra una consola de texto en la VM y ejecute la utilidad YaST:

    yast
    
  2. Utilice las teclas de flecha para seleccionar Seguridad y Usuarios en el menú de la izquierda. Pestaña en el menú de la derecha y utiliza las teclas de flecha para seleccionar Firewall . Pulse Intro.

  3. En la pantalla Firewall, utilice las teclas de flecha para seleccionar Reglas personalizadas en el menú de la izquierda y, a continuación, presione Entrar.

  4. Haga clic en el botón **Agregar de la sección Reglas permitidas personalizadas y, a continuación, presione Entrar .**

  5. En el campo Red de origen, escriba 0/0. Seleccione el campo Puerto de destino y escriba 5900 .

  6. Hagaclic en el botón Agregar y, a continuación, presione Entrar .

  7. Hagaclic en el botón Siguiente y presione Entrar .

  8. En la pestaña de la pantalla Resumen hasta el botón Finalizar y pulse Intro .

  9. En la pestaña de laYaST pantalla de nivel superior al botón Salir y presione Entrar .

  10. Reinicie el administrador de pantalla y el servicio xinetd con los siguientes comandos:

    /etc/init.d/xinetd restart
    rcxdm restart
    

Alternativamente, puede deshabilitar el firewall hasta el próximo reinicio ejecutando el comando RCSusUseFirewall2 stop , o de forma permanente utilizandoYaST . Esta configuración puede exponer servicios adicionales al mundo exterior y reducir la seguridad general de su VM.

Resolución de pantalla VNC

Después de conectarse a una máquina virtual con la consola gráfica, la resolución de pantalla a veces no coincide. Por ejemplo, la pantalla de la máquina virtual es demasiado grande para caber cómodamente en el panel de la consola gráfica. Controle este comportamiento estableciendo el parámetro geometry del servidor VNC de la siguiente manera:

  1. Abra el/etc/xinetd.d/vnc archivo con su editor de texto preferido y busque laservice_vnc1 sección (correspondiente adisplayID 1).

  2. Edite elgeometry argumento de laserver-args línea con la resolución de visualización deseada. Por ejemplo:

    server_args  = :42 -inetd -once -query localhost -geometry 800x600 -depth 16
    

    El valor del parámetro geometry puede ser cualquier ancho y alto de pantalla válidos.

  3. Guarde y cierre el archivo.

  4. Reinicie el servidor VNC:

    /etc/init.d/xinetd restart
    rcxdm restart
    

Comprobar niveles de ejecución

Las máquinas virtuales de Red Hat y SUSE Linux utilizan el nivel de ejecución 5 para el inicio gráfico. En esta sección se describe cómo comprobar que la máquina virtual se inicia en el nivel de ejecución 5 y cómo cambiar esta configuración.

  1. Compruebe/etc/inittab para ver en qué se establece el nivel de ejecución predeterminado. Busque la línea que dice:

    id:n:initdefault:
    

    Si n no es 5, edite el archivo para hacerlo así.

  2. Puede ejecutar el comandotelinit q ; telinit 5 después de este cambio para evitar tener que reiniciar para cambiar los niveles de ejecución.