Go to content Go to navigation Go to search

Tread lightly on the things of earth

Mike’s weblog about computing, politics, and faith (a progressive view)

Tags: , , , , , , From the mailbag: FreeNX (remote desktops for Unix)

I explore FreeNX, the GPL implementation of NX, “an exciting new technology for remote display … that provides near local speed application responsiveness over high latency, low bandwidth links.” Result is a usable Ubuntu desktop, running on a home PC, displayed on a PowerBook screen in the hands of a travelin’ dude.

The following entry is an experiment in recyclable blogging.

My friend Theophilus travels a lot, needs to access his home Linux box from hotel rooms across the country, and greatly prefers graphical tools to the command line. FreeNX, the GPL implementation of NX — “an exciting new technology for remote display … that provides near local speed application responsiveness over high latency, low bandwidth links” — was news to me, presented as preferable in some situations to my old workhorse friend, TightVNC.

In the days following these messages, we got FreeNX working with splendid results on a desktop PC running Ubuntu talking to a PowerBook G3 Lombard. Getting server-side and client-side permissions just right required more fiddling than I’d anticipated, however.


Date: Mon, 13 Jun 2005 04:36:17 +0000
From: Mike
To: Theophilus
Subject: URL: FreeNX, super-fast Unix desktops over network

Hi, Theophilus —

Consider our ongoing topic of old machines (like [your daughter’s] laptop) accessing apps-plus-desktop on main Linux box:

There’s a new player in town called FreeNX; its performance is said to beat TightVNC, the performance champ to date. FreeNX purports to allow usable graphical desktops even at dialup connection speed. In a nutshell, it’s a super-streamlined X11 protocol.

I just tried it, showing an Ubuntu desktop [from your home machine] on my PowerBook screen. Very, very nice. I still aim to compare/contrast a TightVNC desktop window alongside a FreeNX desktop window, but I’ll bet FreeNX wins. Until I saw this, I thought TightVNC was really nice. ;-)

If you’re interested, read this FreeNX intro article —

Linux Journal:
Linux in Government: Major Breakthrough in Linux Technology
http://www.linuxjournal.com/article/8342
(despite title, it’s completely about FreeNX)

If you want to try accessing [your home Linux box’s] Ubuntu desktop from your PowerBook via FreeNX, as I’m doing, download this OSX client and I can walk you thru its simple installation:

NX Client for MacOS/X (free)
http://www.nomachine.com/download.php

Then it’s no more complicated than to copy the [home Linux box] nxserver public key file from [the home Linux box] to the PowerBook, launch the client app on the PowerBook, and connect to [the home Linux box]. In a few seconds your Ubuntu desktop is on your screen.

Presumably FreeNX could work well for [your daughter’s] laptop, too, set-uppable in only a few minutes. Benefit is all resources are on the server side; client can be little more than a dumb terminal.

Mike

P.S. FreeNX is the open-source free subset of NoMachine’s commercial NX product. The free subset offers much of the commercial product’s functionality, more than enough for most personal uses.

Upside is FreeNX’s great speed; downside is it only serves Unix desktops, not Windows, although you can run its client on Windows. VNC is available to serve Windows desktops as well as Unix ones.


Date: Wed, 29 Jun 2005 23:43:01 +0000
From: Mike
To: Theophilus
Subject: REF: FreeNX setup on [Ubuntu host], OSX client

FreeNX observations on successful connect from TiBook at work to [Ubuntu box] at home. And now successful connect from TiBook at work to [Ubuntu box] at [Theophilus’] house!

http://www.linuxjournal.com/article/8342

Server-side setup

(1) Uncomment ENABLE_SSH_AUTHENTICATION=”1” in /etc/nxserver/node.conf

(2) Correct permissions (600->640) on misinstalled keys file:

sudo chmod 640 /var/lib/nxserver/home/.ssh/authorized_keys2

resulting in

--- /var/lib/nxserver/home/.ssh/ -----------------------------
-rw-r----- 1 nx root 688 Jun 29 11:22 authorized_keys2
-rw------- 1 nx root 668 Jun 29 11:22 client.id_dsa.key
-rw-r--r-- 1 nx root 233 Jun 29 11:22 known_hosts
-rw------- 1 nx root 603 Jun 29 11:22 server.id_dsa.pub.key
--------------------------------------------------------------

(3) Create server-side user with

sudo nxserver --adduser username
sudo nxserver --passwd username

which adds public key to /home/username/.ssh/authorized_keys2

(4) Copy server key to client:

while logged in to server:

sudo cp /var/lib/nxserver/home/.ssh/client.id_dsa.key ~/
sudo chown username client.id_dsa.key

while logged in to client:

scp server:~/client.id_dsa.key ~/
sudo mv ~/client.id_dsa.key /usr/NX/share/client.id_dsa.key_server
sudo chown root:wheel /usr/NX/share/client.id_dsa.key_server
sudo chmod 644 /usr/NX/share/client.id_dsa.key_server
sudo ln -s /usr/NX/share/client.id_dsa.key_server /usr/NX/share/client.id_dsa.key


NoMachine’s OSX FreeNX client setup
http://www.nomachine.com/download.php

settings that work from TiBook at work connecting to [Ubuntu box] at [Theophilus’ house] (only package installed on Ubuntu box was freenx plus its dependencies)

GENERAL
Server
Host <hostname for Theophilus’ Ubuntu box via DynDNS> Port 22

Desktop
Unix GNOME
.................X.........
WAN

Display
800x600 W 800 H 600
X Use default image encoding

ADVANCED
X Enable SSL encryption of all traffic

Cache
In memory 32MB On disk 64MB

Keyboard
X Keep current keyboard settings

SERVICES
<untouched>

ENVIRONMENT
<untouched>