Apache Guacamole supports multiple protocols through a common, centralized gateway. The "guacd" service sits between the Guacamole web application and the remote desktops and dynamically translates between low-level remote desktop protocols and the Guacamole protocol, applying additional optimization and compression in the process.

Installing support for a protocol

Within Glyptodon Enterprise, support for each protocol is provided via separate packages. Only the packages for protocols that you will be using need be installed:

ProtocolGlyptodon Enterprise package
VNCglyptodon-libguac-client-vnc
RDPglyptodon-libguac-client-rdp
SSHglyptodon-libguac-client-ssh
Telnetglyptodon-libguac-client-telnet
Kubernetesglyptodon-libguac-client-kubernetes

When using any particular connection, the package providing support for that connection's underlying protocol must already be installed on the server running the guacd service. If support for the underlying protocol has not been installed, users attempting to use the connection will see an error message, and system administrators will see a message like the following within the systemd journal:

guacd[8]: WARNING: Support for protocol "rdp" is not installed

If a needed package was not installed and a message like that above is logged, installing the needed package will solve the problem. If using the glyptodon/guacd Docker image, all protocol support is already installed. If using the @glyptodon-guacamole package group, as described within the installation instructions, protocol support for VNC, RDP, and SSH is installed.

Before installing glyptodon-libguac-client-telnet or glyptodon-libguac-client-kubernetes on CentOS or RHEL, the EPEL repository must be enabled:

$ sudo yum install epel-release

Guacamole's telnet support depends on libtelnet, and its Kubernetes support depends on libwebsockets, neither of which is currently provided by the default repositories of any version of CentOS or RHEL.

Configuring the protocol of a connection

When using one of the supported databases, administrators can define new connections using Guacamole's web interface, selecting the protocol to be used for that connection from a dropdown menu labeled "Protocol":

If defining a connection through a mechanism which does not leverage one of the supported databases, such as via /etc/guacamole/user-mapping.xml, LDAP schema modifications, or encrypted JSON, the protocol will must be specified using the unique, internal name for that protocol:

ProtocolInternal name
VNCvnc
RDPrdp
SSHssh
Telnettelnet
Kuberneteskubernetes