What is it?

NXserver and NXclient allow X Windows sessions to be run over a network. Of course that’s the whole point of the native X Windows protocol, but NX is actually much more efficient. This makes using graphical applications over the wire somewhat plausible.

The NX suite is proprietary but the protocol used is, apparently, open. There is a free project trying to duplicate the NoMachine’s, but it doesn’t quite seem production ready. Worth keeping in mind though.

Server

This describes how to set up the server to provide the NX service.

Installation

This is what I downloaded and installed from NoMachine’s website.

sudo rpm -ivh /pro/nx/nxclient-3.5.0-6.x86_64.rpm
sudo rpm -ivh /pro/nx/nxnode-3.5.0-3.x86_64.rpm
sudo rpm -ivh /pro/nx/nxserver-3.5.0-4.x86_64.rpm
Note
Looks like order is important for this.

Usage

Is it running? Here’s how to check:

cd /usr/NX/bin
sudo ./nxserver --status

This is obviously helpful:

sudo ./nxserver --help

There’s also:

sudo ./nxserver --start
sudo ./nxserver --restart
sudo ./nxserver --stop # Prevent new sessions.
sudo ./nxserver --shutdown

NXclient

This describes how to set up NoMachine’s NXclient on your own computer so that you can use it to run graphical Linux environments.

Note
Keep in mind that while the NX protocol is much faster and more efficient than a native networked X Windows session, you still must understand that you’re transmitting every aspect of the graphical interface back and forth. This is much more resource intensive than simply running things remotely using SSH and simply should not be used without a compelling reason.

Installation and Use

First you need to get the client for your system. Look for the "NX Client Products" section on the NoMachine download page.

Note
The following details are based on a Windows client. Other systems should be similar.

Download it and run it.

Next comes the login screen. You should use your account name and password for the cluster. For session, put in "nx-ablab" and then select "Configure".

There are lots of options here but you really only need to put in the host. Everything else generally works fine. For the host enter the host where the server is running. The "Desktop" setting should be "Unix" and "GNOME" by default; unless you know what you’re doing, you should make sure they are set that way.

Then you say "Ok" and then "Login" and it should warn you that it is suspicious of this remote host. Click "Yes" for the first time connection attempt.

And if all goes well, you should be good to go.

Note
Apparently there is a limitation on how many users can use the free version of NXserver so if you don’t really need to use this, (i.e. could ordinary ssh work just fine?) don’t! Also, as a courtesy to others, don’t stay logged in to this while idle.

Other Options

FreeNX

This is a thing.

sudo yum install nxagent

However this appears to have been dropped.

sudo yum install freenx

x2go

sudo yum install x2goserver x2goserver-xsession

Other packages that might be relevant.

cups-x2go.noarch : CUPS backend for printing from X2Go
python-x2go.noarch : Python module providing X2Go client API
python-x2go-doc.noarch : Python X2Go client API documentation
x2goagent.x86_64 : X2Go Agent
x2goclient.x86_64 : X2Go Client application (Qt4)
x2godesktopsharing.x86_64 : Share X11 desktops with other users via
X2Go
x2goplugin.x86_64 : X2Go Client (Qt4) as browser plugin
x2goplugin-provider.x86_64 : Provide X2Go Plugin via Apache webserver
x2goserver.x86_64 : X2Go Server
x2goserver-fmbindings.x86_64 : X2Go Server file manager bindings
x2goserver-printing.x86_64 : X2Go Server printing support
x2goserver-xsession.x86_64 : X2Go Server Xsession runner
pyhoca-cli.noarch : Command line X2Go client written in Python
pyhoca-gui.noarch : Graphical X2Go client written in (wx)Python