Skip to content
Search

FreeNX

lastmod 2018-08-17created 2016-04-283 edits

NX technology is a computer program that handles remote X Window System connections, and attempts to greatly improve on the performance of the native X display protocol to the point that it can be usable over a slow link such as a dial-up modem. It wraps remote connections in SSH sessions for encryption.

Remote X Displays with FreeNX

Imagine an X server technology that uses compression to deliver very fast response in a GNOME or KDE session, even over a modem with SSH-encrypted communication. FreeNX has arrived in the remote desktop product family with astonishing performance. A thin client should use little bandwidth even when running audio, video, printing, and other heavy applications, and should offer session suspension instead of session termination. If you want to use Linux, you should use FreeNX, which provides true virtual KVM switching without hardware.

(Translator's note: KVM switch is short for keyboard, video cable, mouse; a KVM switch is the device that shares a keyboard, mouse, and video cable among machines)

FreeNX differs from Windows Remote Desktop Protocol (RDP) or VNC because it makes Linux the source of the applications people use. If you install a Linux server and want to deliver OpenOffice.org or the Firefox web browser to remote users with minimal hardware, you can use FreeNX. Also, even with clients such as Windows 98 or Mac OS X, you can get a free client from NoMachine NX that lets you connect to and run programs on the Linux server.

Using a FreeNX server on Linux provides a secure environment for remote computing as well. The client can run on Linux, and FreeNX lets you create X client sessions on various operating systems such as Windows or Macintosh without installing X. At the time of writing, some of the available clients run on the PlayStation 2, iPAQ, and Zaurus 5XXX.

System administrators will also welcome FreeNX because they can control the features and content available to users. Also, without a hardware switch that swaps the keyboard, mouse, and video cable, you can view and operate each Linux server in a data center connected to a single keyboard, video console, and mouse. You can display multiple windows on one desktop and monitor several servers at the same time. A KVM switch cannot offer this, because it can show only one server at a time.

Gian Filippo Pinzari developed NX by taking the bloated, insecure X client/server protocol and slimming it down with an original compression scheme. His company, NoMachine.com, released this code under the GPL license in 2003. NX limits the number of sessions that can be used at once to 2, and FreeNX is what removes this restriction.

FreeNX Server

This section explains how to start a FreeNX server on Linux. The description below is based on Fedora 17.

Check with rpm whether FreeNX is installed.

$ rpm -qa | grep freenx

If it is not installed, install FreeNX with yum.

$ yum install freenx

If it installed correctly, check the installed file information with rpm.

$ rpm -ql freenx-server

It will probably look like the following.

/etc/logrotate.d/freenx-server
/etc/nxserver
/etc/nxserver/client.id_dsa.key
/etc/nxserver/node.conf
/etc/nxserver/passwords
...
/usr/sbin/nxkeygen
/usr/sbin/nxsetup
...
/var/lib/nxserver
...
/var/lib/nxserver/home/.ssh/authorized_keys
/var/lib/nxserver/home/.ssh/authorized_keys.disabled
/var/lib/nxserver/home/.ssh/client.id_dsa.key
/var/lib/nxserver/home/.ssh/known_hosts
/var/lib/nxserver/home/.ssh/server.id_dsa.pub.key
/var/log/nx

Of these, the important files are as follows.

  • /usr/sbin/nxsetup: setup file for installation.
  • /etc/nxserver/node.conf: configuration file.
  • /var/lib/nxserver/home/.ssh/client.id_dsa.key: client SSH authentication key.

Edit the configuration file. (If only the /etc/nxserver/node.conf.sample file exists on first installation, copy it to /etc/nxserver/node.conf.)

$ vi /etc/nxserver/node.conf

Copy the authentication key to use for the client. However, you must copy /var/lib/nxserver/home/.ssh/client.id_dsa.key, not /usr/NX/share/client.id_dsa.key. (For exact usage, refer to the warning message log, etc.)

See also

Favorite site