Citrix Hypervisor

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 usa 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 pantallas 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 máquinas virtuales basadas en CentOS, use las instrucciones para las máquinas virtuales basadas en Red Hat a continuación, ya que usan 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 las VM de Debian

Nota:

Antes de habilitar una consola gráfica en su máquina virtual de Debian, asegúrese de haber instalado Citrix VM Tools para Linux. Para obtener más información, consulte Instalar Citrix VM Tools para Linux.

La consola gráfica para las máquinas virtuales de Debian la proporciona un servidor VNC que se ejecuta dentro de la VM. 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 huésped Debian con los paquetes del sistema de escritorio, o instale GDM (el administrador de visualización) usando apt (siguiendo los procedimientos estándar).

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

    apt-get install vnc4server
    <!--NeedCopy-->
    

    Nota:

    El entorno gráfico de escritorio de Debian, que utiliza el demonio Gnome Display Manager versión 3, puede llevar mucho tiempo de CPU. Desinstale el paquete gdm3 Gnome Display Manager e instale el paquete gdm de la siguiente manera:

    apt-get install gdm
    apt-get purge gdm3
    <!--NeedCopy-->
    
  3. Configure una contraseña de VNC (no tenerla supone un grave riesgo de seguridad) mediante el comando vncpasswd. Pase un nombre de archivo en el que escribir la información de la contraseña. Por ejemplo:

    vncpasswd /etc/vncpass
    <!--NeedCopy-->
    
  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
    <!--NeedCopy-->
    
  5. Reinicie GDM y espere a que XenCenter detecte la consola gráfica:

    /etc/init.d/gdm restart
    <!--NeedCopy-->
    

Nota:

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

Habilite una consola gráfica en VM de Red Hat, CentOS u Oracle Linux

Nota:

Antes de configurar sus máquinas virtuales de Red Hat para VNC, asegúrese de haber instalado Citrix VM Tools para Linux. Para obtener más información, consulte Instalar Citrix VM Tools para Linux.

Para configurar VNC en las VM de Red Hat, modifique la configuración de GDM. La configuración de GDM se mantiene en un archivo cuya ubicación varía según 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.

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

Si utiliza Red Hat Linux, el archivo de configuración de GDM es /etc/gdm/custom.conf. Este archivo es un archivo de configuración dividido que contiene solo valores especificados por el usuario que anulan la configuración predeterminada. Este tipo de archivo se usa 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 de la VM, ejecute el comando rpm -q vnc-server gdm. Los nombres de los paquetes vnc-server y gdm aparecen, con sus números de versión especificados.

    Los nombres de paquetes que se muestran indican los paquetes que ya están instalados. Si ve 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 poder continuar. Para obtener detalles sobre la instalación de más software en su VM, consulte la Guía de instalación de Red Hat Linux x86 apropiada.

  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
    <!--NeedCopy-->
    

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

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

    • 0=Standard

      Modifíquelo para que diga:

      0=VNC

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

  4. Guarde el archivo y ciérrelo.

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

Nota:

Red Hat Linux usa 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 pantalla y obtenga acceso a una consola gráfica. Para obtener más información, consulte Comprobar niveles de ejecución.

Parámetros de firewall

La configuración del firewall de forma predeterminada no permite el paso del tráfico de VNC. Si tiene un firewall entre la máquina virtual y XenCenter, permita el tráfico a través del puerto que usa 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 de servidor VNC para Display-0 escucha en el puerto TCP 5900, Display-1 TCP-5901, y así sucesivamente. Consulte la documentación del firewall para asegurarse de que estos puertos estén abiertos.

Si quiere 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 basado en Red Hat para abrir el puerto VNC:

  1. Para Red Hat Linux, utilice system-config-securitylevel-tui.

  2. Seleccione Personalizar y agregue 5900 a la lista de otros puertos.

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

Resolución de pantalla VNC

Después de conectarse a una VM con la consola gráfica, la resolución de la pantalla a veces no coincide. Por ejemplo, la pantalla de la VM es demasiado grande para caber cómodamente en el panel de la consola gráfica. Para controlar este comportamiento, configure 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. Encuentre la sección [server-VNC] que agregó antes.

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

    command=/usr/bin/Xvnc -SecurityTypes None -geometry 800x600
    <!--NeedCopy-->
    

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

  4. Guarde el archivo y ciérrelo.

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

Si utiliza Red Hat Linux, el archivo de configuración de GDM es /etc/gdm/custom.conf. Este archivo es un archivo de configuración dividido que contiene solo valores especificados por el usuario que anulan la configuración predeterminada. De forma predeterminada, este tipo de archivo se usa 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 el modo 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

Seleccione Escritorios > Paquetes opcionalesy haga clic en Siguiente:

Captura de pantalla de escritorios

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

Captura de pantalla de la ventana Paquetes en el escritorio

Realice los siguientes pasos para continuar con la configuración de sus máquinas virtuales de RHEL:

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

        [security]
        DisallowTCP=false
    
        [xdmcp]
        Enable=true
    <!--NeedCopy-->
    
  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
        }
    <!--NeedCopy-->
    
  3. Escriba el siguiente comando para iniciar el servicio xinetd:

    # service xinetd start
    <!--NeedCopy-->
    
  4. Abra el archivo /etc/sysconfig/iptables. Agregue 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
    <!--NeedCopy-->
    
  5. Escriba el siguiente comando para reiniciar iptables:

    # service iptables restart
    <!--NeedCopy-->
    
  6. Escriba el siguiente comando para reiniciar gdm:

        # telinit 3
        # telinit 5
    <!--NeedCopy-->
    

Nota:

Red Hat Linux usa 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 pantalla y obtenga acceso a una consola gráfica. Para obtener más información, consulte Comprobar los niveles de ejecución.

Configurar máquinas virtuales 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 Citrix VM Tools para Linux. Consulte Instalar Citrix VM Tools para Linux para obtener más información.

SLES es compatible con la habilitación de “Administración remota” como opción de configuración en YaST. 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 que pueda ver la consola gráfica. El método para usar la función de administración remota de SLES es ligeramente diferente del método que proporciona XenCenter. Sin embargo, es posible modificar los archivos de configuración en la máquina virtual SUSE Linux para que se integre con la función de consola gráfica.

Comprobar si hay un servidor VNC

Antes de realizar cambios en la configuración, compruebe que tiene un servidor VNC instalado. SUSE envía el servidor tightvnc 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 el software tightvnc mediante el comando:

rpm -q tightvnc
<!--NeedCopy-->

Habilitar la administración remota

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

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

    yast
    <!--NeedCopy-->
    
  2. Use las teclas de flecha para seleccionar Servicios de red en el menú de la izquierda. Haga clic en el menú de la derecha y utilice las teclas de flecha para seleccionar Administración remota. Presiona Entrar.

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

  4. Vaya a la sección Configuración del firewall. Utilice las teclas de flecha para seleccionar Abrir puerto en el firewall y presione Entrar para colocar una X en la casilla de verificación.

  5. Vaya al botón Finalizar y presione Entrar.

  6. Se muestra un cuadro de mensaje que le indica que reinicie el administrador de pantalla para que la configuración surta efecto. Presione Entrar para confirmar el mensaje.

  7. YaST aparece el menú original de nivel superior de. Presione la tecla Tab hasta llegar a Salir y presione Entrar.

Modificar la configuración xinetd

Después de habilitar la Administración remota, modifique un archivo de configuración si quiere permitir la conexión de XenCenter. Como alternativa, use 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
        }
    <!--NeedCopy-->
    
  3. Modificar la línea port para leerla

    port = 5900
    <!--NeedCopy-->
    
  4. Guarde el archivo y ciérrelo.

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

    /etc/init.d/xinetd restart
    rcxdm restart
    <!--NeedCopy-->
    

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.

Parámetros de firewall

De forma predeterminada, la configuración del firewall no permite el paso del tráfico de VNC. Si tiene un firewall entre la máquina virtual y XenCenter, permita el tráfico a través del puerto que usa 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 de servidor VNC para Display-0 escucha en el puerto TCP 5900, Display-1 TCP-5901, y así sucesivamente. Consulte la documentación del firewall para asegurarse de que estos puertos estén abiertos.

Si quiere 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 el firewall de VM de SLES 11.x:

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

    yast
    <!--NeedCopy-->
    
  2. Use las teclas de flecha para seleccionar Seguridad y Usuarios en el menú de la izquierda. Haga clic en el menú de la derecha y utilice las teclas de flecha para seleccionar Firewall. Presiona Entrar.

  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. Vaya al botón Agregar en la sección Reglas permitidas personalizadas y, a continuación, presione Entrar.

  5. En el campo Red de origen, escriba 0/0. Vaya al campo Puerto de destino e introduzca 5900.

  6. Vaya al botón Agregar y, a continuación, presione Entrar.

  7. Presione la teclaTab hasta el botón Siguiente y presione Entrar.

  8. En la pantalla Resumen, vaya al botón Finalizar y presione Entrar.

  9. En la pantalla YaST de nivel superior Ficha, vaya 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
    <!--NeedCopy-->
    

Alternativamente, puede inhabilitar el firewall hasta el próximo reinicio ejecutando el comando rcSuSEfirewall2 stop, o de forma permanente mediante YaST. Esta configuración puede exponer los 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 la pantalla a veces no coincide. Por ejemplo, la pantalla de la VM es demasiado grande para caber cómodamente en el panel de la consola gráfica. Para controlar este comportamiento, configure el parámetro geometry del servidor VNC de la siguiente manera:

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

  2. Modifique el argumento geometry de la línea server-args con la resolución de visualización deseada. Por ejemplo:

    server_args  = :42 -inetd -once -query localhost -geometry 800x600 -depth 16
    <!--NeedCopy-->
    

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

  3. Guarde el archivo y ciérrelo.

  4. Reinicie el servidor VNC:

    /etc/init.d/xinetd restart
    rcxdm restart
    <!--NeedCopy-->
    

Comprobar niveles de ejecución

Las VM de Red Hat y SUSE Linux usan el nivel de ejecución 5 para el inicio gráfico. En esta sección se describe cómo verificar que la VM se inicia en el nivel de ejecución 5 y cómo cambiar esta configuración.

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

    id:n:initdefault:
    <!--NeedCopy-->
    

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

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

Habilitar VNC para máquinas virtuales Linux