What is NX?

NoMachine NX is an enterprise-class solution for secure remote access, desktop virtualization, and hosted desktop deployment built around the self-designed and self-developed NX suite of components. Thanks to its outstanding compression, session resilience and resource management and its integration with the powerful audio, printing and resource sharing capabilities of the Unix world, NX makes it possible to run any graphical application on any operating system across any network connection. Via NX accessing remote desktops, servers and applications, whatever their location, is just as fast, easy and secure as if you were sitting in front of them. Together with easy-to-use management, deployment, and monitoring tools, NoMachine NX makes it possible to transform any traditional desktop computing environment into a centrally managed, globally accessible, virtual desktop infrastructure.

In short, it’s like VNC, but much more powerful and versatile. The data compression between the client and server is excellent, allowing the users to connect over flaky connections. eg 3G. The users can also resume their previous login session and continue their work where they left off. NX works on SSH, there’s no oddball firewall adjustments. Whatever machine that allows SSH will work with NX.

NX server is a commercial software. There’s a community version available for free, but it can only support 2 concurrent users. So, the natural alternative is FreeNX.

There are 2 ways to get FreeNX installed on RHEL 6.

1. Install the readily compiled packages from ATRPM

2. Get the source rpms from ATRPM and rebuild them.

Option 1 is the way to go for most people. It’s painless and fast.

In my environment however, I can’t add external repositories into my servers because there’s no direct internet connection for all the machines. So I’m going on Option 2. I have a mixture of RHEL5 and RHEL6 machine in my network, so I opt to maintain my own repositories for certain software to maintain consistency. And why ATRPM? Simply because I can’t find any repositories that has freeNX rpms.

So here’s the quick and dirty guide to get FreeNX running.

1. Get all the neccesary source rpms

wget http://dl.atrpms.net/all/nx-3.3.0-38.src.rpm wget http://dl.atrpms.net/all/freenx-server-0.7.3-18.src.rpm

2. Rebuild the source rpms.

rpmbuild –rebuild nx-3.3.0-38.src.rpm rpmbuild –rebuild freenx-server-0.7.3-18.src.rpm

3. Install the built rpms in the following order

yum -y localinstall /root/rpmbuild/RPMS/x86_64/nx-3.3.0-38.el6.x86_64.rpm yum -y localinstall /root/rpmbuild/RPMS/x86_64/freenx-server-0.7.3-18.el6.x86_64.rpm

4. Initialize NX. Choose ‘No’ when the script prompts for custom keypair.

root# /usr/libexec/nx/nxsetup –install ——> It is recommended that you use the NoMachine key for easier setup. If you answer “y”, FreeNX creates a custom KeyPair and expects you to setup your clients manually. “N” is default and uses the NoMachine key for installation. Do you want to use your own custom KeyPair? [y/N] N Setting up /etc/nxserver …done

That’s it! FreeNX setup is done. This will work on all Red Hat like distros like CentOS, Fedora.

On the client side, download the NX client from http://www.nomachine.com/download.php.

The rest of the steps are straightforward and can be found from the NX website.