NX short form for NoMachine's X protocol is a compression technology developed by NoMachine which allows one to run complete remote desktop sessions (be it Linux or Windows) even at dial up internet connection speeds. One of the advantages of using NX technology over VNC is that NX uses SSH on port 22 for connection between the client and the server. Which means all the communication takes place encrypted through industry standard SSL public key cryptography.
FreeNX is the GPL implementation of NoMachine's NX server. To have access to a remote desktop, you need to have two software.
- The (Free)NX server installed and running on the remote machine and
- The (Free)NX client installed on the local machine from which you want to have access to the remote machine.
I tried this technology by connecting via dialup to a demo remote server run by NoMachine and I was really impressed by the speed with which I recieved the remote KDE desktop. Infact, the NoMachine demo server called TestDrive provides three choices of Gnome, KDE and a Windows desktop (through RDP / terminal server).
NX clients are available for Debian/Ubuntu in deb format, RPM for Red Hat based distros and gzipped tar file for all other Linux flavours. Why just for Linux, NX clients are available for Windows, Solaris, Mac OSX and even Sharp Zaurus and HP/Compaq iPaq (PDAs). So it is possible to access the remote Linux/Solaris desktop from all these machines.
The primary difference between NX technology and VNC is that, VNC works by grabing screenshots of the remote desktop which means the network traffic is rather heavy. Where as NX uses its in-house developed X compression technology to display the remote desktop on the local machine. Security wise too, NX scores over VNC.
Daniel.W.Amstrong has written a very nice article explaining how to install and configure a FreeNX server and client in Linux. He has used Kanotix as the test machine but I believe the steps are the same for any other Debian based distribution.