Login Graphically to A Computer in a Remote Location

The ability to login graphically into any computer from a remote location has a number of uses. In my case it allows me to create a setup where students in my school can easily login graphically into the universities computer lab and use many of the applications which are installed there (like Matlab which is only licensed to run on our lab computers) It also allows me to log into my work computer from home. To create this setup we would need a tool called Freenx.

FreeNX is a system that allows you to access your desktop from another machine over the Internet. You can use this to login graphically to your desktop from a remote location.

Advantages of FreeNX
One advantage of FreeNX is that it is based on the SSH Protocol so your packets are transferred over an encrypted channel which in human language means nasty people can’t see what you are doing and potentially compromise your computer


Installation FreeNX is in Two Phrase the server and the client

Server Installation

The server version is installed on the remote system you want to login to. To install the server version you need to add the following repository to your sources.list

Hardy Heron
deb http://ppa.launchpad.net/freenx-team/ubuntu hardy main
deb-src http://ppa.launchpad.net/freenx-team/ubuntu hardy main

Intrepid Ibex
deb http://ppa.launchpad.net/freenx-team/ubuntu intrepid main
deb-src http://ppa.launchpad.net/freenx-team/ubuntu intrepid main

Jaunty Jackalope
deb http://ppa.launchpad.net/freenx-team/ubuntu jaunty main
deb-src http://ppa.launchpad.net/freenx-team/ubuntu jaunty main

Now we add the public Key for the FreeNX PPA with:
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 2a8e3034d018a4ce

and we install with:
sudo apt-get update ; sudo apt-get install freenx

That is all that is needed for the installation of freenx server on our remote machine.

Client Installation

The client is installed on the machine you want to login from.

There are Two type of FreeNX clients available the non free and open source version (and freedom hating version 🙂 ) and the free and open source version

The Non-free version
This is the official NX version and can not be installed from the Ubuntu repository but can be deb version for ubuntu can be downloaded from here
Double click to install.
Once installed you find it at Application-Internet-NX Client for Linux

The Free and Open Source version can be downloaded from the Ubuntu repository by running:
sudo apt-get install qtnx
Once installed you find it at Application-Internet-QTNX

What i really love about FreeNX is its usage, its very easy to use and all your do is launch the client which once installed can be found under /Application/Internet/Nx Client for LInux


Once you start the Program it displays a wizard which would guide you through the configuration process


=Session: First Thing you do is create a session which is like a profile of the remote machine you want to connect to. You can have many sessions of different remote machines which allows you to easily choose a session and login to the machine configure to the session.
Host: The IP address of the remote machine you want to login to
Select you Internet Type: Here is were you also get to indicate what type of internet connection you are running, NX compresses your data over the network so the slower your internet connection the higher the compression rate of your data (or so it seems) then you also put in the . Leave the port as 22 since that is the default that ssh uses (unless you have ssh using another port on the remote machine)

General Config


Desktop: Here you get you choose the platform the remote machine is running windows? *nix ? and also what graphical enviroment? kde, gnome ?

Display You are allowed to set how big you want the resolution of the remote machine to be on your current machine once you arte logged in.

Advanced Configuration

advance config

Here you have the ability to use a network proxy if you are behind a firewall, There are also option that allows you to disable encryption ( why would you ever want to do that) which is not advisable for security reasons.


Here you can enable services like samba share or cups printing between the remote machine and your current machine, in case you want to share files or print something from the remote machine. pretty neat hey 🙂

Once all the settings are configured to your taste. Its time to run your connection to the remote machine.

The end result is something similar to this


The remote machine will be running within a windows which can be minimized or resized, or moved to another work space while you continue work on your local machine.

Overall I find Freenx to be very useful and comes in very handy in my day to day work as a system administrator. Its cross platform which means you can even login to a windows machine from your linux box and vice versa.

Hope someone finds this useful

34 comments on “Login Graphically to A Computer in a Remote Location

  1. If you use KDE you just need the desktop sharing software. It’s built in and easier to configure. Then you can use any OS to connect to that machine since it’s VNC.

  2. I think the main advantage of VNC is that it’s already there in many linux distro’s. Then again Microsoft’s software is “already there” in any windows pc 🙂 Oh, and VNC gives the opportunity to 2 or more users to login remotely at the same time and collaborate on the remote pc, I’m not sure if freenx does that.

  3. ssh -X usename@hostname my friends is the easiest way.
    All you have to do is in the sshd_config make sure “X11Forwarding” is turned on.
    This way is even better than VNC since it puts a lot less load on the remote machine and runs exactly what you want not the whole KDE or GNOME what have you.

  4. Try x session on slow (<1mb/s) networks.
    The main benefit of the NX is very smart compression mechanism. You can run comfortably remote gui applications on slow networks.

  5. Wow! This technology has been around for decades and you’re ranting about it like it is the greatest thing since slice bread! Typical Gen-Y noob!

  6. DON’T use ssh -x unless you absolutely trust the machine you’re connecting to. It puts a token the connected machine which someone can then use to log into your machine and do as they please.

    VNC/FreeNX is the way to go.

  7. Wow! NicknTime berating a blogger giving instructions on a software he happens to already know about! Typical blog-commenting-douchebag!

  8. I had no idea there was a better alternative to VNC / TightVNC, this is really a superior way to do it and I’m glad I stumbled across this article.

    Thanks man 🙂

  9. For those that don’t understand why this is any better than VNC, I suggest you give it a try. I have found the responsiveness to be much better than TightVNC as well as the session management to be more useful.

    My only complaint is that the NoMachine client static compiles the GUI libraries and I find that the setup dialogs are suffer as a result (fonts are too large, elements don’t line up).

  10. For those who have only tried VNC (even tight VNC), you’ll be amazed at the responsiveness and difference that the NX protocol has to offer. The only negative, other than a more complex setup (it can be a bit tricky at times), is that the initial “handshake” portion takes longer than VNC. Once you get the connection going, however, the responsiveness is truly amazing. Even over relatively low-speed connections, the responsiveness and feeling like you are logged on locally is awesome.

  11. Thanks for this post. I find it very helpful and informative. I have always thought that VNC was the only tool out there for remotely connecting to computers graphically until I saw this post.

    I shall check it out later, however, I’ve blogrolled your site 🙂

  12. freenx have a good compression mechanism and security.whether the differences with its comercial nx, who have never tried?

Leave a Reply

Your email address will not be published. Required fields are marked *