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:
|Protocol||Glyptodon Enterprise package|
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:
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.
glyptodon-libguac-client-kubernetes on CentOS or RHEL, the EPEL repository must be enabled:
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: