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>