I run Guacamole on my home network as an RDP client to my Windows and Linux boxes. It's a fantastic piece of software. It beats VMC widely in terms of speed, and RDP narrowly when used across the internet. I run guacd on my home server and use that to access my interior network from any computer. It's stable, consumes low memory, and works nicely over HTTPS with apache reverse-proxying the Java webapp. A+ amaze your friends type of software. I am a huge guacamole fanboy.
Edit: I used a Linux VM on my home windows box over guacamole from a Chromebook as my primary mobile computer for 6 months. Browsing in Firefox on my remote VM was always faster than browsing the web locally on the Chromebook. If only it worked well on tablets...
I don't suppose[1] it supports RDP 8's new ability to play video on a remote desktop by streaming the media across and decoding it locally (works in the Win/Mac official clients).
I was amazed and dumbfounded the first time a YouTube video played in a remote session with perfectly in-sync audio and video and instant response to mouse clicks and now find it hard to go back...
[1]: Can't test this myself until I get back to a desktop computer (this is from a phone).
There already have been a few nice VNC web clients around for a few years, like NoVNC (http://kanaka.github.io/noVNC/, python server-side, used in Openstack and others). Unfortunately, there's no magic: you need your VNC/RDP server, then your "clientless server" (proxy socket<->websocket or alike), then your web server to host the "clientless" client.
It's becoming to be interesting when your VNC/RDP client directly supports websocket, eliminating the need of a proxy and only use a STATIC web server to host client. Wait, it's built-in for qemu since 1.4! http://git.qemu.org/?p=qemu.git;a=commit;h=0057a0d59006d00c2...
Guacamole and NoVNC are very different conceptually. NoVNC is a client for the VNC protocol that runs in your browser, and a dumb TCP-to-Websockets proxy script that you run on your server if your VNC software doesn't already support Websockets in addition to TCP. Your browser and the server still communicate using the VNC protocol, and you'll get performance no better than TCP VNC (bad performance over the internet, in my opinion).
Guacamole has much better performance. Your browser and the guacamole server communicate using a custom, better-performing protocol (http://guac-dev.org/doc/gug/protocol-reference.html). While guacamole can still connect to your server with VNC, it also supports RDP, which is also faster. Even when using Guacamole as a proxy for VNC if your guacd and VNC servers are on LAN together, because the guacamole protocol works much better over high latency connections than VNC does.
Edit: also, Guacamole doesn't use Websockets, which makes it much easier to proxy with your standard HTTP proxy software like apache, which didn't get a Websockets proxy module until 2.4 (Ubuntu 12.04 is 2.2).
I've found remote desktop setup immensely frustrating in the past. Every six months or so I'll think "Wouldn't it be cool if it I could have an Ubuntu AMI on EC2 I could boot and remote desktop into?" Then it's hours of googling and config settings editing. Hopefully someone will point me to the easy way I've been missing?
Unfortunately RDP server on Linux is a bit tricky to set up, and involved some amount of compiling for me. On the other hand, I think `x11vnc` is pretty easy to get started with. I followed this guide, and it worked for me no problem:
http://askubuntu.com/questions/229989/how-to-setup-x11vnc-to...
My guacamole server then connects to x11vnc so I still get RDP-like performance across the internet.
Edit: you'll also want to make an Upstart job for x11vnc so that it starts on boot, and restarts if (when) it dies. You can just copy any of the basic upstart jobs in /etc/init.d/*.conf and investigate. You also may want to make x11vnc start after your X server: http://upstart.ubuntu.com/cookbook/#run-a-job-before-another...
Chrome remote desktop works with linux/mac/win now. Not sure if there is some headless way to set it up on EC2 and/or linux but I've got it running on my box at home and it works great.
It's "clientless" as in you don't have to install any software on the machine you want to connect from. No need to fiddle with RDP software on your parent's computers, or worry about access control restrictions from a locked-down corporate network. As far as permissions go, if you can browse the internet on a computer, you can remote control your servers with Guacamole.
I have used Guacamole as a solution to supporting remote desktop when the client location's firewall(s) allow nothing except port 80 and 443. Worked perfectly allowing users to connect to multiple desktops with no installation what so ever. Simply the perfect tool for what we needed and setup is a breeze once you familiarize yourself with the documentation.
Looks promising! Could be use to control bittorrent server from work. Maybe call it pluginless instead? Clientless kinda makes me imagine it's pure js/html5 app but actually it uses a server as client.
That sort of setup need to be handled by your VNC or RDP server itself. Guacamole will play nice with whatever your target server is doing in that regard.
I wonder if this can be used to set up a multi-headed workstation environment, where each user has their own desktop (Linux) on the same large, megalithic server? I have a machine with 128gigs of RAM and 1TB of SSD .. this seems like the perfect situation where I can give a desktop to 3 or 4 users on the same machine. Anyone know how well that works with Guacamole yet?
Mmph, have done this with XenServer (can just self-built OSS) and just standard RDP clients for the short while I had access to a machine about that powerful. That worked beautifully and gave me (yes, just me :P) a bunch of very practical isolated environments on which I concurrently ran various heavy workloads (and one as my 'standard desktop' on which I watched YouTube videos whilst waiting for things :P).
I only use Linux/OSX for local machines, but RDP was substantially more responsive than any VNC server I could get my hands on (including RealVNC Enterprise).
Layering Guacamole shouldn't cause any real trouble beyond that - the dashboard needs to run on a separate Unix machine and so can be pointed at all those desktops just fine once you set up the network interfaces.
It doesn't seem like a particularly elegant solution, but with that much memory, you could almost certainly carve out 4 VMs, each running a separate guac instance, right? Getting to them might be trickier, though...
Guacamole is a Java program. It's basically a proxy between RDP/VLC and HTML5. Guacd (the java bits) connect to an RDP or VNC server on your behalf, and then you interact with the remote machine through guacd. Here's a simple text diagram
[Windows RDP server] <--RDP protocol--> [linux Guacamole server] <--HTTP or Websockets--> [HTML5 client in your browser]
> guacamole-client is used to build the subprojects that make up Guacamole, and
> to provide a common central repository. Each project contained here is
> completely independent of guacamole-client and can be built separately, though
> the others may have to be built first. If all projects are built using
> guacamole-client, Maven will take care of the proper build order.
My reading of this is that the client repo also contains the server, which is written in java
I use TeamViewer for that, AND Chrome Remote Desktop. I've found that I need both so that if TeamViewer doesn't work for some reason I've still got Chrome available to go in and fix it...
Hardly the best setup but at least it's free. Will be checking this out to see if it fits my reqs.
https://github.com/glyptodon/guacamole-client/search?q=video...
By looking in the code I think they use Canvas, streaming video would be interesting.
Looking at guacamole-common-js/src/main/webapp/modules/Tunnel.js I think they use WebSockets with a XMLHttpRequest fallback?
I'm thinking of the implication of something awesome like this. Hopefully in the long-run it will boost the likes of light LTE-enabled Chromebooks, at least for tech professionals. That of course requires high-speed LTE infrastructure and ISP backbones.
Eh, Chrome Remote Desktop and Fusionlabs' Chrome RDP both already allow Chromebooks to be used for remote desktops (the latter speaking actual RDP), although both are closed-source.
I see that there are a number of folks around with Docker containers for Guacamole, but it seems there might be nice for there to be an 'official' container for this project.
This was my thinking as well. Or to allow formerly plugin-requiring apps to run on the server. Any ideas for how to lock this down on the server side so that it can only run ONE application?
[+] [-] jitl|11 years ago|reply
Edit: I used a Linux VM on my home windows box over guacamole from a Chromebook as my primary mobile computer for 6 months. Browsing in Firefox on my remote VM was always faster than browsing the web locally on the Chromebook. If only it worked well on tablets...
[+] [-] tekacs|11 years ago|reply
I don't suppose[1] it supports RDP 8's new ability to play video on a remote desktop by streaming the media across and decoding it locally (works in the Win/Mac official clients).
I was amazed and dumbfounded the first time a YouTube video played in a remote session with perfectly in-sync audio and video and instant response to mouse clicks and now find it hard to go back...
[1]: Can't test this myself until I get back to a desktop computer (this is from a phone).
[+] [-] Thaxll|11 years ago|reply
[+] [-] desaintmartin|11 years ago|reply
It's becoming to be interesting when your VNC/RDP client directly supports websocket, eliminating the need of a proxy and only use a STATIC web server to host client. Wait, it's built-in for qemu since 1.4! http://git.qemu.org/?p=qemu.git;a=commit;h=0057a0d59006d00c2...
[+] [-] jitl|11 years ago|reply
Guacamole has much better performance. Your browser and the guacamole server communicate using a custom, better-performing protocol (http://guac-dev.org/doc/gug/protocol-reference.html). While guacamole can still connect to your server with VNC, it also supports RDP, which is also faster. Even when using Guacamole as a proxy for VNC if your guacd and VNC servers are on LAN together, because the guacamole protocol works much better over high latency connections than VNC does.
Edit: also, Guacamole doesn't use Websockets, which makes it much easier to proxy with your standard HTTP proxy software like apache, which didn't get a Websockets proxy module until 2.4 (Ubuntu 12.04 is 2.2).
[+] [-] renang|11 years ago|reply
I am still waiting better support for Clipboard on QEMU. :/
Currently using NoVNC as a client. Works really well. Keyboard needs more love.
[+] [-] jackweirdy|11 years ago|reply
[+] [-] makmanalp|11 years ago|reply
I do love that this is open source though. Someone will probably add NX support soon. Sound support also looks pretty impressive.
[+] [-] iandanforth|11 years ago|reply
[+] [-] jitl|11 years ago|reply
My guacamole server then connects to x11vnc so I still get RDP-like performance across the internet.
Edit: you'll also want to make an Upstart job for x11vnc so that it starts on boot, and restarts if (when) it dies. You can just copy any of the basic upstart jobs in /etc/init.d/*.conf and investigate. You also may want to make x11vnc start after your X server: http://upstart.ubuntu.com/cookbook/#run-a-job-before-another...
There is a lot of fiddly business :/
[+] [-] skizm|11 years ago|reply
[+] [-] yohanatan|11 years ago|reply
[+] [-] egeozcan|11 years ago|reply
[+] [-] jitl|11 years ago|reply
[+] [-] fulafel|11 years ago|reply
[+] [-] Fastidious|11 years ago|reply
[+] [-] _random_|11 years ago|reply
[+] [-] joeperks|11 years ago|reply
Definitely keeping this in my mental toolbox!
[+] [-] leishulang|11 years ago|reply
[+] [-] nemo1618|11 years ago|reply
[+] [-] maho|11 years ago|reply
[+] [-] jitl|11 years ago|reply
[+] [-] ibisum|11 years ago|reply
[+] [-] tekacs|11 years ago|reply
I only use Linux/OSX for local machines, but RDP was substantially more responsive than any VNC server I could get my hands on (including RealVNC Enterprise).
Layering Guacamole shouldn't cause any real trouble beyond that - the dashboard needs to run on a separate Unix machine and so can be pointed at all those desktops just fine once you set up the network interfaces.
[+] [-] rev_bird|11 years ago|reply
[+] [-] codezero|11 years ago|reply
[+] [-] jitl|11 years ago|reply
[+] [-] sequence7|11 years ago|reply
[+] [-] unknown|11 years ago|reply
[deleted]
[+] [-] hueving|11 years ago|reply
[+] [-] ivansavz|11 years ago|reply
I would like to have remote/shared access to Xcode + iOS dev stack... Or is there some other way to get that?
[+] [-] philbarr|11 years ago|reply
Hardly the best setup but at least it's free. Will be checking this out to see if it fits my reqs.
[+] [-] annnnd|11 years ago|reply
[+] [-] bwblabs|11 years ago|reply
[+] [-] blutoot|11 years ago|reply
[+] [-] cbhl|11 years ago|reply
[+] [-] jimmcslim|11 years ago|reply
[+] [-] Yardlink|11 years ago|reply
[+] [-] chromaton|11 years ago|reply
[+] [-] xorcist|11 years ago|reply
[+] [-] vnz|11 years ago|reply
[+] [-] unicornporn|11 years ago|reply