On my post about XDMCP I mentioned that there was a better way to open a X session on a remote computer.
After reading this post you'll see why I left it at the end of this blog therad: NX uses elements and concepts explained on the previous posts (SSH, X forwarding, XDMCP, VNC)
Nomachine, creators of the NX protocol, have a closed source implementation of the protocol, with free (no-cost) versions for both the client, server and nodes and also paid support plans.
They've open sourced the compression algorithm and protocol and provided very detailed documentation.
The open source implementation is FreeNX
Although the server must run on an Linux/Solaris/BSD system and natively provides support for the X protocol, the server can also work as a gateway to access RDP (Windows Terminal server) or VNC connections to other Operating systems.
The client can work on Linux, Windows, Mac
It can start a full session similar to XDMCP or a single application, similar to SSH X forwarding.
The implementations work over SSH
Here is a diagram of NX in a nutshell.
To use NX you must install the server on the remote computer and the client on the local computer.
Note: The server must have a properly configured SSH server. The client must be able to SSH to the server. i.e. the port must be open and security properly set up.
The installation for the non-open source version is clearly explained on the Nomachine website
But it is basically Download and execute the installers.
To set up the open source version search for instructions for your distribution. For example:
Once the server has been set up, and the client installed, creating a new session is quite easy. Just start the client, and define the server address, desktop environment and geometry.
Here is a snapshot of QtNX, Although comparative to the no-machine closed source version this client provides less functionality, it is still quite usable.
RDP and VNC
To connect to a Windows server through Remote desktop or to any OS through VNC, you must have a Linux server on the same side of the network as the server you want to access.
If you are connecting to Remote desktop, the Linux server must have rdesktop installed
If you are connecting to a VNC server, the Linux server must have tight VNC installed
The client connects to the Linux server which in turn uses rdesktop or the VNC viewer to connect to the destination server. (See diagram above)
This means that when configuring the session you must define both the Linux server address and the address of the destination server as seen by the Linux server.
For more detailed information
The Nomachine website is full of information on both the closed source and the open source implementation
The FreeNX website has information on the open source implementation