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.