I’ve been using NX technology to remotely connect to my Linux boxes for some time now, and I find it to be a great solution for remote desktop (very similar in many ways to Microsoft’s RDP — but based on a differential X compression system more closely aligned with *nix’s roots).

Like with so many Open Source projects there are multiple versions you need to consider.

Google produced a version called neatx, but it really doesn’t seem to be an active project; nor does it have the features (or stability) of FreeNX. produces a commercial and community edition they refer to as nx.  The main problem with using their product on a server is that it’s limited to the number of users — and I mean users, not active connections.  But it’s likely that you’ll download their free client for Windows, OS-X, Solaris, or even Linux.

An issue with setting up FreeNX on Ubuntu is that it’s not part of the distribution (or in the distribution repositories) so you’ll need to add the FreeNX Team PPA (I won’t go into details, if you look at the “FreeNX (on Ubuntu)” link below you can view the community documentation, which is well written and makes the task of installing FreeNX very straight forward.

With both FreeNX and nextx, occasionally the very first session to the server (after a reboot) will not establish; but launching it a second time works fine.

With neatx, after a reboot the Linux server leaves the session files (that’s not as egregious as you might think, since those sessions files allow a disconnected client to resume a session — had the machine not been restarted).  What this causes is an error in trying to establish the “same” client connection again; so you have to clear out the old session files.  I found that just adding a few lines to the rc.local file was a better solution (that way I never forgot; and yes there is a caveat — but I’m willing to deal with the possibility of deleting session files that might be resume-able).

# rc.local

# clear out any lingering nx (neatx) sessions
if [ -d /var/lib/neatx/sessions ]; then
rm -rf /var/lib/neatx/sessions/*

So I’ve told you all about installing it, and some of the pitfalls — but I haven’t really said much about it other than to wave my hands and liken it to Microsoft RDP.

Well, consider sitting at a Windows machine (or Mac, Solaris, Linux) and launching a program that puts your Linux desktop on your machine in a window — allowing you to interact with the Linux machine just like you were sitting in front of the monitor attached to it (if it had a monitor).

And just like logging in locally, you can use any display manager (gdm, kdm, xdm, etc) that you’ve got installed and configured to run — in fact, you can launch multiple sessions each with different display managers simultaneously.

Yeah, lots of people don’t install any of the graphics on a server — but I find that there really isn’t much resource hit on installing (or using) a graphical UI on a server; and I’m willing to do that to have the ability to use a GUI when I want to (you can certainly still ssh into the box; in fact, FreeNX will require that you setup ssh — which is easiest to do with tasksel; of course in 10.10 you’ll have to install that using apt-get).

Anyway, whether it’s for you or not will depend on how you use your Linux machine; for the moment I haven’t abandoned my Windows desktop (my scanner will not work under Linux); so I have the option of starting up my desktop with Ubuntu (you can use wubi for that if you want to make it virtually painless, and it makes it easy to change your mind later on); starting a virtual machine (using VirtualBox of course) running Ubuntu; or remoting into my server running Ubuntu using NX/FreeNX.


FreeNX (on Ubuntu)

NX Technology (on Wikipedia)