Guacamole is a clientless remote desktop gateway that supports standard protocols like VNC, RDP, and SSH. It allows users to access their desktops or servers from anywhere, using only a web browser. This tutorial will guide you through the installation of Guacamole on your Linux Mint Latest machine.
Before we install Guacamole itself, we need to install some dependencies. Run the following command to install them:
sudo apt-get update && sudo apt-get install -y libcairo2-dev libjpeg-turbo8-dev libpng-dev libossp-uuid-dev libavcodec-dev libavutil-dev libswscale-dev freerdp2-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libvncserver-dev libssl-dev libvorbis-dev libpulse-dev libwebp-dev tomcat8 tomcat8-admin tomcat8-common tomcat8-user mysql-server mysql-client mysql-common
Guacamole is a web application that runs on Tomcat, so we need to install it first.
sudo apt-get install -y tomcat8
The Guacamole server is implemented in Java, so we need to download the appropriate binary package from the Guacamole website. Run the commands below to download and extract it:
wget https://downloads.apache.org/guacamole/1.3.0/binary/guacamole-1.3.0.war -P /tmp
sudo mkdir /etc/guacamole
sudo cp /tmp/guacamole-1.3.0.war /etc/guacamole/guacamole.war
sudo ln -s /etc/guacamole/guacamole.war /var/lib/tomcat8/webapps/
sudo systemctl restart tomcat8
Guacamole can use extensions to add support for additional protocols. Copy the extension files to the /etc/guacamole/extensions/
directory. In this tutorial, we’ll install the VNC extension as an example:
sudo apt-get install -y wget
wget https://downloads.apache.org/guacamole/1.3.0/binary/guacamole-auth-jdbc-1.3.0.jar -P /etc/guacamole/extensions/
wget https://downloads.apache.org/guacamole/1.3.0/binary/guacamole-1.3.0.war -P /tmp
sudo cp /tmp/guacamole-1.3.0.war /etc/guacamole/guacamole.war
sudo cp /usr/share/tomcat8/lib/mysql-connector-java-8.0.26.jar /etc/guacamole/lib/
sudo systemctl restart tomcat8
To configure Guacamole, edit the guacamole.properties
file:
sudo nano /etc/guacamole/guacamole.properties
Set the values of the following properties to match your system configuration:
guacd-hostname: localhost
guacd-port: 4822
user-mapping: /etc/guacamole/user-mapping.xml
auth-provider: net.sourceforge.guacamole.net.auth.jdbc.JDBCAuthenticationProvider
mysql-hostname: localhost
mysql-port: 3306
mysql-database: guacamole_db
mysql-username: guacamole_user
mysql-password: [YOUR GUCAMOLE USER PASSWORD HERE]
Create a database user and a database for Guacamole:
sudo mysql -u root
CREATE DATABASE guacamole_db;
CREATE USER 'guacamole_user'@'localhost' IDENTIFIED BY '[YOUR GUACAMOLE USER PASSWORD HERE]';
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO 'guacamole_user'@'localhost';
quit;
Create the user-mapping.xml file in the /etc/guacamole/ directory and add a connection to the VNC server, for example:
sudo nano /etc/guacamole/user-mapping.xml
Insert the following content:
<user-mapping>
<authorize username="admin" password="[YOUR ADMIN PASSWORD HERE]">
<protocol>vnc</protocol>
<param name="hostname">localhost</param>
<param name="port">5901</param>
<param name="password">[YOUR VNC PASSWORD HERE]</param>
</authorize>
</user-mapping>
Restart Tomcat to apply the new configuration:
sudo systemctl restart tomcat8
Now you can access Guacamole on your web browser at http://localhost:8080/guacamole/. Log in using the username and password specified in the user-mapping.xml file.
Congratulations, you have successfully installed and configured Guacamole on your Linux Mint Latest machine. Enjoy using it!
If you want to self-host in an easy, hands free way, need an external IP address, or simply want your data in your own hands, give IPv6.rs a try!
Alternatively, for the best virtual desktop, try Shells!