Setup FreeNX on your Linux Desktop(Centos)

A good use-case for having NX client access to a FreeNX server is fast access to your Linux Desktop.

NX is an exciting new technology for remote display. It provides near local speed application responsiveness over high latency, low bandwidth links. The core libraries for NX are provided by NoMachine under the GPL. FreeNX is a GPL implementation of the NX Server and NX Client Components.

This how-to explains setting up an FreeNX server on your Linux desktop, and then explains setting up nxclient from your home or portable computing devices

Setting up the Server(CentOS)

  • Install RPMs freenx and nx from the CentOS Extras repository that corresponds to your version of Linux
  • # yum install freenx
    It will install dependencies as well
Dependencies Resolved

 Package                            Arch                        Version                                      Repository                   Size
 freenx                             x86_64                      0.7.3-9.4.el6.centos                         extras                       97 k
Installing for dependencies:
 expect                             x86_64                                        base                        256 k
 nx                                 x86_64                      3.5.0-2.1.el6.centos                         extras                      2.7 M
 tcl                                x86_64                      1:8.5.7-6.el6                                base                        1.9 M
 xorg-x11-apps                      x86_64                      7.6-6.el6                                    base                        276 k

Transaction Summary
Install       5 Package(s)
  • The RPM installation automatically generates the necessary ssh keys - specifically the client.id_dsa.key private key that you will need on your clients. It also creates a required nx user which must be allowed in your ssh access.
  • Only in case you have restricted ssh access to your Linux desktop to a well-known set of users then you must allow user nx as well. A couple of example lines follow with differing access properties. Only one AllowedUsers line is necessary. In these examples 'yourlogin' means your login name for your desktop:
    # grep /etc/ssh/sshd_config
    ## allow yourlogin nx from Telus, elsewhere, you can define
    AllowUsers yourlogin nx@*

    In case you edit sshd_config the remember to reload the server:
    # /etc/init.d/sshd reload

Setting up the Client

  • Download and install the NoMachine NX-client for your platform
  • Start the NX Client (for linux the client is: /usr/NX/bin/nxclient). The first time through you will be taken through the new-connection wizard. Enter the following settings:
    • Session: <yoursession> (or whatever your preference)
    • Host:
    • Type of Internet Connection: ADSL
      (Use WAN for connecting from sites with high-bandwidth connections and ADSL for connecting from home)
    • Desktop: UNIX - KDE or GNOME (depending on your preference)
    • Size of Remote Desktop: Full Screen (or your preference)
    • Do NOT disable SSL encryption on all traffic!
  • Replace the default nomachine key:
    • Select the advanced configuration dialog
    • In the server section click on [Key..]
    • Replace the default DSA key with the contents of the generated client key on the server:
      /etc/nxserver/client.id_dsa.key ## must be root to read it
    • Save the key.
    • Save your connection settings, then enter your login-name and password for your desktop. The first time that you connect you will be informed that the host key is unknown. This is different than the connection key. The host-key identifies the remote-host to you and the connnection key does the reverse.

Windows users may also need to install the extra fonts from the add-on downloads section. These are only necessary for running older applications that use client-side fonts.

Special Key Sequences


Minimise (hide) the remote-session. Alternately, click in the upper right-hand corner of the screen.


Brings up a dialog from which you can choose "Suspend" to disconnect your session. The next time you login through NX, possibly from a different machine, your session will be resumed. Note that this does not suspend running programs so use with care.