Buscar

VMWare: ESXi consola VM por VNC

Una funcionalidad disponible desde las primeras versiones del hipervisor de VMWare es la posibilidad de acceder a la consola de una VM utilizando un cliente de VNC.

Evidentemente, no necesitaremos instalar el servidor de VNC en la VM y con este método dispondremos de una segunda posibilidad de acceder a la consola de la VM: Con VSphere Client o con un cliente de VNC.

La funcionalidad está desactivada por defecto y además, de forma predeterminada a partir de ESXi 5, las conexiones VNC contra la VM quedan bloqueadas gracias a la configuración del firewall que integra el hipervisor.

Hemos de tener en cuenta que si accedemos vía VNC a una VM, no dispondremos de las mismas opciones que si conectamos utilizando VSphere Client: por ejemplo, no podremos realizar snapshots sobre la VM.

También será necesario que la VM disponga de VMWare Tools instaladas, de lo contrario, no dispondremos de ratón.

Si queremos activar el acceso VNC a la consola de una VM, deberemos seguir los siguientes pasos:

1) Configurar el firewall del ESXi para permitir conexiones al servicio VNC del hipervisor: 

El siguiente procedimiento está probado sobre ESXi 5.1 y 5.5:

Realizamos una copia de seguridad de la configuración actual:

cp /etc/vmware/firewall/service.xml /etc/vmware/firewall/service.xml.backup

Modificamos los permisos para poder modificar el fichero de reglas:

chmod 644 /etc/vmware/firewall/service.xml

chmod +t /etc/vmware/firewall/service.xml

Realizamos un listado de las reglas existentes y su identificador:

cat /etc/vmware/firewall/service.xml|grep "service id"


Lista de IDs de las reglas


Vemos que el último identificador es el 37, por lo tanto, la regla a añadir tendrá el identificador 38.

Editamos el fichero de configuración de las reglas y añadimos el código de la regla:

vi /etc/vmware/firewall/service.xml


Código de la regla
Deberemos intercalar el código después de la regla 37:
 
Situación de la regla

Si examinamos en que consiste la regla, veremos que quedará abierto el rango de puertos TCP del 5800 al 5999.

Restablecemos los permisos sobre el fichero de reglas:

chmod 444 /etc/vmware/firewall/service.xml

Refrescamos las reglas:

esxcli network firewall refresh

Listamos las reglas en busca de la regla VNC:

esxcli network firewall ruleset list

Name                Enabled
------------------  -------
sshServer              true
sshClient             false
nfsClient              true
dhcp                   true
dns                    true
snmp                   true
ntpClient              true
CIMHttpServer          true
CIMHttpsServer         true
CIMSLP                 true
iSCSI                  true
vpxHeartbeats          true
updateManager         false
faultTolerance         true
webAccess              true
vMotion                true
vSphereClient          true
activeDirectoryAll    false
NFC                    true
HBR                    true
ftpClient             false
httpClient            false
gdbserver             false
DVFilter              false
DHCPv6                false
DVSSync                true
syslog                false
IKED                  false
WOL                    true
vSPC                  false
remoteSerialPort      false
vprobeServer          false
rdt                    true
cmmds                  true
vsanvp                 true
rabbitmqproxy          true
ipfam                  true
fdm                   false
VNC                    true

2) Editamos el fichero VMX de una VM y añadimos: 

remotedisplay.vnc.enabled = "true"

remotedisplay.vnc.port = "5900"

Para conectar basta con utilizar un cliente VNC y especificar la dirección IP del host ESXi, junto con el puerto configurado en el fichero VMX de la VM.

Según el ejemplo, el puerto 5900.

Si el host ESXi tuviera la IP: 172.17.0.201, deberíamos especificar: 172.17.0.201:5900

También es posible definir una contraseña para permitir la conexión, simplemente deberemos añadir en el fichero VMX de la VM: remoteDisplay.vnc.password = XXXXXXXX, donde XXXXXXXX será la contraseña (8 caracteres).

Si queremos habilitar el acceso VNC sobre varias VMs, definiremos un puerto distinto para cada una dentro del rango definido en el firewall ESXi (apartado anterior). Por ejemplo: 5900, 5901, etc. 
 
Vista de la consola de la VM desde VNC

No hay comentarios:

Publicar un comentario en la entrada