Wednesday, April 27, 2016

Guacamole: centralized server for remote to servers in the networks using vnc, rdp or ssh

Guacamole is an HTML5 web application/servlet that we can run on apache tomcat. we can access to our desktop or server using remote desktop protocols, vnc or ssh.  it act as a centralized server and provide tunnel and
proxy, that allow access to multiple desktops and server through a web browser. it does not require any other plugins. The client requires nothing more than a web browser supporting HTML5 and AJAX.

1- install guacamole and other require package to our linux server (ubuntu/debian)
$ sudo apt-get install libguac-client-rdp0 libguac-client-ssh0 libguac-client-vnc0 guacamole-tomcat guacamole

2- (skip if use ubuntu) if you use ubuntu guacamole servlet is install to tomcat automatically, but if your distro does not do that, make soft link of guacamole to tomcat directory as below
$ sudo ln -s /etc/guacamole/ /usr/share/tomcat8/lib/
$ sudo ln -s /var/lib/guacamole/guacamole.war /var/lib/tomcat8/webapps/

3- edit the user mapping file to add a user/password and the connection to other server or desktop in file /etc/guacamole/user-mapping.xml as bellow

 <authorize username="user1" password="pass1">
    <connection name="server 1">
        <param name="hostname"></param>
        <param name="port">5900</param>
        <param name="password">vncpass</param>
    <connection name="server 2">
        <param name="hostname">localhost</param>
        <param name="port">5900</param>
        <param name="password">vncpass</param>
    <connection name="windows 1">
        <param name="hostname"></param>
        <param name="port">3389</param>

so we user user1/pass1 to access guacamole and we have 3 connection to system, 2 vnc connections and 1 remote desktop connection

4- restart tomcat service in order to make guacamole configuration take affect
$ sudo /etc/init.d/tomcat8 restart

5- now we can access guacamole with url (replace the ip with your server ip) and use user1/pass1

***note for enable remote desktop or vnc***
+ vnc server
- install x11vnc
$ sudo apt-get install x11vnc
- run vnc server
$ x11vnc --passwd vncpass --loop

+ remote desktop protocol rdp
computer property --> remote --> allow users to connect remotely

and don't forget to allow port 3389 on firewall or completely disable the firewall.


  1. Thanks for sharing this great article! That is very interesting I love reading and I am always searching for informative information like this.
    Visit here:-dmca free vps

  2. Thank you very much!! You have shared very good information with us. I will also tell about it to my friends also in fact all the people known to me. Buy RDP USA RDP