Tuesday, 6 November 2012

Remote Desktop in Ubuntu 12.04

This is the first post in a three part series exploring Ubuntu-based remote desktop options. See posts two and three for further exploration and conclusions.

In my opinion, both of the mainstream remote desktop/windowing approaches in Linux do not compare with the ease of use, and the speed of Windows remote desktop. VNC is inherently insecure, and setting up VNC over an SSH tunnel isn't the most user friendly of experiences. X forwarding over SSH is better, but in my experience there's simply too much latency when using it outside a LAN. Enter NX, or NoMachine - the only Linux remote desktop solution I've come across used that isn't a pain to get up and running, and is more than fast enough to be useable.

Here's what you need to do to get going with NoMachine. Below, target machine refers to the machine you want to connect to, and client machine refers to the machine you are connecting from.

On the target machine:

If it's not already installed, add openssh server to your machine:
 sudo apt-get install openssh-server  

Add the FreeNX repository to your system using:
 sudo add-apt-repository ppa:freenx-team  

Then install FreeNX with:
 sudo apt-get update  
 sudo apt-get install freenx  

As Unity3D is too heavy to use over a WAN connection, allow fallback to a gnome session:
 sudo apt-get install gnome-session-fallback  

On the client machine:
Use the NX client of your choice - personally I used Remmina, with the Remmina NX plugin: Update: While Remmina works well, the offical NX client gives a lot more options - see below for more.
 sudo apt-get install remmina
 sudo apt-get install remmina-plugin-nx

Start Remmina, and create a new connection. You should now be able to choose to connect using the NX protocol, as seen below.

Enter the target machine's IP address into the server field, and the username and password of the user account you wish to connect to. Hit connect and after a few moments your remote desktop will open.

You can also use the official NX client, and if you're connecting from Windows or Mac, that's probably easiest. For Linux, the official client download and install instructions are currently here.

I've not yet had the chance to experiment, but it may be possible to run the NX client from a different desktop on the target machine - if so, then this would make NX a complete, drop in replacement for Windows remote desktop, as far as I can see. Which is no bad thing, as other than the obvious proprietary graphics issues Linux can suffer from, a decent RDP implementation was the only only key feature I've noticeably missed since moving to Linux full-time (yes, there's X forwarding over SSH, but even with compression there's still too much lag to be usable over my connections). Update: It looks like the official NX client has a shadowing mode - again, I've not yet tested it, but it may be useful for the above.

Update Nov-16-2012: As noted in the comments, Cendio also offer a Linux remote desktop solution - after testing and comparing, my thoughts can be found in post two.


  1. There are alternatives to NoMachine NX, like our ThinLinc. It's free for up to 10 users, so just download it of our website and you're good to go:


    Pierre (One of the developers)

    1. Hi Pierre,

      Thanks for making me aware of ThinLinc - I hadn't come across your product before. I've updated the post to include a link to your site, and will endeavour to write up a full review at some point in the near future.


  2. What is the procedure of remote desktop in windows 8.?


Please leave a comment if you find this blog helpful or interesting! I'd love to hear from you!