[TriLUG] Opinion Seeking: Remote Linux Desktops

brian mullan via TriLUG trilug at trilug.org
Mon Feb 22 12:42:07 EST 2016


I've spent alot of time over the past 6 years working with various linux
remote desktop solutions.

Someone already mentioned x2go (www.x2go.org) which is probably the best of
all that I've tried in terms of performance, features & capabilities.

x2go has native clients for linux, mac & windows as well as a python client
called PyHoca.

x2go is dead simple to install for both the client & the server side.

On the a debian/ubuntu or any debian based linux its basically 3 commands

sudo add-apt-repository ppa:x2go/stable
sudo apt-get update
sudo apt-get install x2goserver x2goserver-xsession

that's it.

On the client again for debian/ubuntu etc there's only 2 commands

sudo add-apt-repository ppa:x2go/stable
sudo apt-get update
sudo apt-get install x2goclient

I do know people install & run x2go on other non-debian distro's as well
such as centos etc.

The x2go wiki will tell you how to install for Mac & Windows
http://wiki.x2go.org/doku.php

I've also spent alot of time with Guacamole (www.guac-dev.org).

Guacamole is a clientless Remote Desktop Gateway & supports VNC, RDP & SSH.

Its called clientless because all you need is an HTML5 web browser to
access your remote desktop. Guacamole requires no browser plugins or any
other "client-side" software to be installed.

Guacamole can be a little more work to install on the server because at a
minimum you have Tomcat to install with the Guacamole proxy daemon (guacd)
etc.

A basic install though is not hard.   If you want something more suitable
to an organizations use though you'd want to also install Guacamole with
mysql, nginx (if you want HTTPS instead of HTTP).

I use both x2go & guacamole for both local and remote desktop (on AWS &
Digital Ocean clouds) work.

Because Guacamole supports RDP you can use a browser to connect & present a
Windows RDP desktop just like you can from any other windows to windows
server machine connection except you only need a browser.

IF you want to use Guacamole to connect to a Linux Server (this is what I
do most often) then on the linux server you also need to install xrdp which
is a linux RDP server in addition to what I mentioned above for installing
Guacamole.

One benefit of Guacamole is its great web based management interface.   In
it you define "connections" which are basically the various "servers" you
want to remote desktop to.   You can define as many as you like giving each
unique names, whether you want to connect to them with SSH, VNC or RDP and
various other options such as language, screen resolution etc.

In the Guacamole Web management screen you also configure "users".   Each
UserID you create is given a password.    This is usually separate from
that UserID's password on the "server' that user connects to but doesn't
have to be.

Also, for each user you define other options such as what Guacamole
privileges they have such as "can they change their own Guacamole password"
etc.

Finally, you specify for each UserID you create ... what "Connections" they
are permitted to access (ie what Servers can they connect to).

The Guacamole "server" can be a VM or a Container and it can also be
installed on the same server as one of the Servers providing a Remote
Desktop to the UserID.

Me, I usually install everything on a single server instance for my
personal use.

Logging in to Guacamole is as simple as pointing your Browser to:

http://ip-of-your-guacamole-server:80/guacamole

There are many people that have published scripts to auto-install guacamole
on both debian/ubuntu or Centos systems.

Some scripts install more or less sophisticated setups so it depends on
what you need.

I have built my own script that installs Guacamole, tomcat, mysql, nginx,
xrdp, and the Ubuntu-Mint desktop all onto an Ubuntu "server".    I've
installed it here locally on a KVM Virtual Machine but as I'd mentioned
I've also installed it on AWS & Digitial Ocean cloud servers.

After a reboot the desktop is available via guacamole.

Guacamole vs X2go??

Guacamole pluses
- only requires a HTML5 browser to access any server Guacamole has been
configured to "connect' to.

*Guacamole minuses*
- configuring sound/printing/clipboard is "automatic" if you connect to a
Windows Server
but...  if you connect to a Linux server "Desktop" there is additional work
involved (pulseaudio, CUPS etc).

*X2go pluses *
- super fast performance
- audio, printing, file-share, clipboard all "just work"
- simple setup on clients & server side

*X2go minus...*
- the only real minus is there is not a Browser x2go client (their is a
reference to their old one but I'd not recommend its use today).

Note:  I've also used NoMachine's NX,  ThinLinc,  and a 1/2 dozen other
applications.

Maybe the best is NoMachine's NX but.... it is no longer Open Source & its
not that cheap.

X2Go provides nearly everything NoMachine's NX provides including
comparable performance.

If anyone would like a presentation & demo of the above I'd be glad to just
let me know.

I extensively use LXC containers and often setup Desktops in them which I
access usually with X2go because it takes less than 5 minutes to set it up.

Brian


More information about the TriLUG mailing list