# Connection Protocols

![](/files/mAK2dTXqFVnN3BRmHrHj)

Keeper Connection Manager and Apache Guacamole support 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 <a href="#id-.supportedprotocolsv2.x-installingsupportforaprotocol" id="id-.supportedprotocolsv2.x-installingsupportforaprotocol"></a>

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

| Protocol                                                                                                            | Keeper Connection Manager package |
| ------------------------------------------------------------------------------------------------------------------- | --------------------------------- |
| [HTTP/HTTPS (Remote Browser Isolation)](/keeper-connection-manager/supported-protocols/remote-browser-isolation.md) | `kcm-libguac-client-http`         |
| [VNC](/keeper-connection-manager/supported-protocols/vnc.md)                                                        | `kcm-libguac-client-vnc`          |
| [RDP](/keeper-connection-manager/supported-protocols/rdp.md)                                                        | `kcm-libguac-client-rdp`          |
| [SSH](/keeper-connection-manager/supported-protocols/ssh.md)                                                        | `kcm-libguac-client-ssh`          |
| [Telnet](/keeper-connection-manager/supported-protocols/telnet.md)                                                  | `kcm-libguac-client-telnet`       |
| [Kubernetes](/keeper-connection-manager/supported-protocols/kubernetes.md)                                          | `kcm-libguac-client-kubernetes`   |
| [MySQL](/keeper-connection-manager/supported-protocols/mysql.md)                                                    | `kcm-libguac-client-mysql`        |
| [PostgreSQL](/keeper-connection-manager/supported-protocols/postgresql.md)                                          | `kcm-libguac-client-postgres`     |
| [Microsoft SQL Server](/keeper-connection-manager/supported-protocols/microsoft-sql-server.md)                      | `kcm-libguac-client-sql-server`   |

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 keeper/guacd Docker image](/keeper-connection-manager/installation/docker-compose-install/keeper-guacd.md), all protocol support is already installed. If using the `@kcm-guacamole` package group, as described within [the installation instructions](/keeper-connection-manager/installation.md), protocol support for HTTPS, VNC, RDP, and SSH is installed.

### Configuring the protocol of a connection <a href="#id-.supportedprotocolsv2.x-configuringtheprotocolofaconnection" id="id-.supportedprotocolsv2.x-configuringtheprotocolofaconnection"></a>

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":

<figure><img src="/files/SMysR7GzaclcCNJvNrDz" alt=""><figcaption><p>Protocol Selection</p></figcaption></figure>

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](/keeper-connection-manager/authentication/authenticating-users-with-ldap/storing-connection-data-within-ldap.md), or[ encrypted JSON](/keeper-connection-manager/using-keeper-connection-manager/dynamic-connections.md), the protocol will must be specified using the unique, internal name for that protocol:

| Protocol                                                                                       | Internal name |
| ---------------------------------------------------------------------------------------------- | ------------- |
| [HTTP/HTTPS](/keeper-connection-manager/supported-protocols/remote-browser-isolation.md)       | `http`        |
| [VNC](/keeper-connection-manager/supported-protocols/vnc.md)                                   | `vnc`         |
| [RDP](/keeper-connection-manager/supported-protocols/rdp.md)                                   | `rdp`         |
| [SSH](/keeper-connection-manager/supported-protocols/ssh.md)                                   | `ssh`         |
| [Telnet](/keeper-connection-manager/supported-protocols/telnet.md)                             | `telnet`      |
| [Kubernetes](/keeper-connection-manager/supported-protocols/kubernetes.md)                     | `kubernetes`  |
| [MySQL](/keeper-connection-manager/supported-protocols/mysql.md)                               | `mysql`       |
| [PostgreSQL](/keeper-connection-manager/supported-protocols/postgresql.md)                     | `postgresql`  |
| [Microsoft SQL Server](/keeper-connection-manager/supported-protocols/microsoft-sql-server.md) | `sql-server`  |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.keeper.io/keeper-connection-manager/supported-protocols.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
