XenServer

VNC console session limits

This section provides an overview of the controls that limit and manage VNC console sessions for virtual machines (VMs) and the control domain (Dom0) in XenServer.

Background

By default, XenServer does not limit the number of concurrent VNC console sessions per VM or host. In environments with strict access controls, this can create security and operational risks. When session limiting is enabled without a timeout, an active session can remain connected indefinitely. In that case, other administrators cannot access the console if the session limit is set to 1.

Feature overview

This release adds two pool-level settings for VNC console connections.

Connection limiting

  • Setting: pool.limit_console_sessions
  • Type: boolean
  • Default: false
  • Behavior: When enabled, only one user can connect to a VM or host console at a time. Additional connection attempts are rejected with an error that identifies the user currently connected.

Idle timeout

  • Setting: pool.vm_console_idle_timeout
  • Type: seconds
  • Default: 0 (no timeout)
  • Behavior: Disconnects idle VM console sessions after the specified number of seconds.

Note:

A separate setting, host.console_idle_timeout, controls idle timeout for control domain (Dom0) consoles.

Benefits

  • Improves security by preventing multiple concurrent VNC console sessions per VM or host.
  • Reduces the risk of session takeovers by allowing administrators to enforce single-session access and idle timeouts.

How to enable this feature using the CLI

  • Limit console sessions

    xe pool-param-set uuid=<pool-uuid> limit-console-sessions=true

    The default value is false, which means there’s no limitation on concurrent VNC console access.

    When enabled, only one user can connect to each VM/host console in the pool at a time. The value can be checked through the following command:

    xe pool-param-get uuid=<pool-uuid> param-name=limit-console-sessions

  • Console idle timeout

    Note:

    There is an existing console_idle_timeout introduced in SSH timeout feature which is for dom0/host only.

    Reuse this field to set idle timeout for dom0, and in the VNC console session feature, a new field vm_console_idle_timeout is introduced to set idle timeout for domU within a pool.

  • For dom0:

    xe pool-param-set uuid=<pool-uuid> console_idle_timeout=<seconds>

  • For domU:

    xe pool-param-set uuid=<pool-uuid> vm_console_idle_timeout=<seconds>

    By default, the value is 0 which means no timeout. When setting it to a non-zero value (in second), the idle console sessions will automatically be disconnected after the specified time.

VNC console session limits