Tuesday, February 9, 2010

Remote Desktop: nomachine

I know, nomachine is not exactly open source (they release lots of their stuff as open source and there are open source packages based on their open source released libraries), but hey, it's a great tool that works great out of the box. I use it to connect to my home box from work and it runs just great, this despite my home internet connection sends data only at about 30KB. I love it.
So recently I needed to connect to a second home machine, through the same router, and since ssh server port 22 was already in use, I had to configure the whole thing to work on a different port. It's really very easy, but you do it once and a few months later you can't remember how. So, here it is for a Debian(like) system:
A) client side:
1. download from the nxclient package
2. install it simply (as root or sudo su) with dpkg -i *.deb
that's it (it doesn't get installed in your default path, so you have to run /usr/NX/bin/nxclient from a terminal or, more easy, from the application launcher menu, usually in the 'internet' section)

B) server side:
1. download de nxnode, nxserver and the nxclient from the link above (according to the nomachine site install instructions, they're all needed)
2. install them in the this order: nxclient, nxnode, nxserver
3. now check that the nxserver is running with the command:
/usr/NX/bin/nxserver --status
and you should see something like:
NX> 900 Connecting to server ...
NX> 110 NX Server is running.
NX> 999 Bye.
(Hint: it should be running, but if it's not, try /usr/NX/bin/nxserver --start or --restart and check again)

Note: don't forget to configure your router, if you have one, to forward the ssh port to this new machine so you can connect at all!

The server is up and running and it should just work now, but here are some extra tweaks that could be useful:
1. Run the server on a different port:
- edit (on the server) the file /usr/NX/etc/server.cfg and search for SSHDPort; uncomment it with the port you want (careful: there're 2 entries with SSHDPort: one for the server daemon and another one for authentication)
- and, I don't know if this is necessary, but I also edited the /usr/NX/etc/node.cfg file, and uncommented the SSHDPort port entry to change it with my non-standard ssh server port

2. Run your nxclient with a different desktop environment: let's say lxde (which is really very light)
- in the session configuration window, go to 'General' tab -> section 'Desktop' and choose 'Unix' and 'Custom'; now click on 'Settings', mark 'Run the follwing command' and write 'startlxde' (of course you must have all necessary lxde packages installed).

Enjoy nomachine, it's really fast.