Set up Guacamole on your VPS, then you can access your VPS from anywhere, all you need to access your desktops is a web browser.

Refers :
http://guacamole.incubator.apache.org/doc/gug/installing-guacamole.html
http://guacamole.incubator.apache.org/doc/0.9.1/gug/installing-guacamole.html

My VPS is ubuntu 16.04.

1. Buiding guacamole-server from source.

install required dependencies
$ sudo apt-get install libcairo2-dev libjpeg-turbo8-dev libpng12-dev libossp-uuid-dev libavcodec-dev libavutil-dev libswscale-dev libfreerdp-dev libpango1.0-dev     libssh2-1-dev     libtelnet-dev libvncserver-dev libpulse-dev  libssl-dev libvorbis-dev libwebp-dev
$ sudo apt-get install autoconf libtool

setup jdk and mav
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java8-installer
$ sudo update-java-alternatives -s java-8-oracle
$ export JAVA_HOME=/usr/lib/jvm/java-8-oracle/
$ wget http://apache.tt.co.kr/maven/maven-3/3.5.0/binaries/apache-maven-3.5.0-bin.tar.gz
$ tar xzvf apache-maven-3.5.0-bin.tar.gz
$ export PATH=~/apache-maven-3.5.0/bin:$PATH

setup tomcat too, please refer to:
http://lengerrong.blogspot.com/2017/06/how-to-setup-tomcat-on-ubuntu.html

build
$ git clone git://github.com/apache/incubator-guacamole-server.git
$ incubator-guacamole-server
$ autoreconf -fi
$ ./configure --with-init-dir=/etc/init.d
$ make
$ sudo make install
$ sudo ldconfig

At this point, everything is installed, but guacd is not running. You will need to run guacd in order to use Guacamole once the client components are installed as well.

2.Building guacamole-client from source too.
$ git clone git://github.com/apache/incubator-guacamole-client.git
$ cd incubator-guacamole-client
$ mvn package

[INFO] guacamole-common ................................... SUCCESS [ 31.031 s]
[INFO] guacamole-ext ...................................... SUCCESS [ 15.395 s]
[INFO] guacamole-common-js ................................ SUCCESS [ 19.751 s]
[INFO] guacamole .......................................... SUCCESS [02:06 min]
[INFO] guacamole-auth-cas ................................. SUCCESS [ 27.770 s]
[INFO] guacamole-auth-duo ................................. SUCCESS [ 18.470 s]
[INFO] guacamole-auth-header .............................. SUCCESS [  7.781 s]
[INFO] guacamole-auth-jdbc ................................ SUCCESS [  0.575 s]
[INFO] guacamole-auth-jdbc-base ........................... SUCCESS [ 19.919 s]
[INFO] guacamole-auth-jdbc-mysql .......................... SUCCESS [ 15.506 s]
[INFO] guacamole-auth-jdbc-postgresql ..................... SUCCESS [ 14.984 s]
[INFO] guacamole-auth-jdbc-dist ........................... SUCCESS [  6.495 s]
[INFO] guacamole-auth-ldap ................................ SUCCESS [ 13.026 s]
[INFO] guacamole-auth-noauth .............................. SUCCESS [  7.274 s]
[INFO] guacamole-example .................................. SUCCESS [  5.699 s]
[INFO] guacamole-playback-example ......................... SUCCESS [  2.777 s]
[INFO] guacamole-client ................................... SUCCESS [ 14.757 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS


By default, VNC support will be installed as a dependency of the guacamole package. If you want SSH or RDP support, you will need to install libguac-client-ssh0 or libguac-client-rdp0 manually:
# apt-get install libguac-client-ssh0 libguac-client-rdp0
 
3. Deploying Guacamole
$ sudo mkdir /etc/guacamole
$ sudo cp guacamole/doc/example/user-mapping.xml /etc/guacamole
$ cat /etc/guacamole/guacamole.properties 
# Hostname and port of guacamole proxy
guacd-hostname: localhost
guacd-port:     4822

# Auth provider class (authenticates user/pass combination, needed if using the provided login screen)
auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider
basic-user-mapping: /etc/guacamole/user-mapping.xml
$ cp guacamole/target/guacamole-0.9.12-incubating.war 
/var/lib/tomcat9/webapps/guacamole.war
$ sudo mkdir /usr/lib/tomcat9/.guacamole/
$ ln -s /etc/guacamole/guacamole.properties /usr/lib/tomcat9/.guacamole/     
$ sudo vim /etc/guacamole/user-mapping.xml 
  uncomment below content: 
    <authorize username="USERNAME" password="PASSWORD">
        <protocol>vnc</protocol>
        <param name="hostname">localhost</param>
        <param name="port">5900</param>
        <param name="password">VNCPASS</param>
    </authorize> 
 USERNAME and PASSWORD are for used for login guacamole.
 VNCPASS are the password for vncserver. 
 please modify for your case.    <authorize username="errong.leng" password="ucLinux1">
        <protocol>vnc</protocol>
        <param name="hostname">localhost</param>
        <param name="port">5901</param>
        <param name="password">ucLinux1</param>
    </authorize> 



4. Start guacd and tocmat
$ sudo /etc/init.d/guacd restart
$ sudo /var/lib/tomcat9/bin/startup.sh

OK. everything is done.
let's access via web browser.
 
 
 
 sudo apt-get install guacamole-tomcat 
by the way, since I use google cloud compute engine.
And tomcat use 8080 as default port, so we have to add a new firewall policy.
 
 
Important : You have to setup vncserver on your VPS first, since guacamole does not include it.
please refer to :
https://lengerrong.blogspot.com/2017/06/setup-your-xfce-desktop-and-vncserver.html

After you login, your desktop will show in your browser.


 




Comments

Popular posts from this blog

react-native run-android : do not build/update modified code(App.js)

react-native run-android : sun.security.provider.cert path.SunCertPathBuilderException : unable to find valid certification path to req uested target

How to fix error : no module named sendgrid when try to use sendgrid python lib in PHP.