Ubuntu Lucid Lynx: Remote Desktop and VNC Viewer CodeUnit 13 JUL 2010

I have two Ubuntu desktop installations, one monitor and no KVM switch at home at the moment.

Annoying, but thanks to the ridiculously simple and powerful combined Remote Desktop and VNC Viewer functionalities, controlling my second, “blind and dumb” machine is so simple that a child could do it.

So let’s get it set up then.

First, we need to enable our target machine to respond to remote desktop requests. Ubuntu Lucid Lynx comes built in with a Remote Desktop server and the functionality can be accessed by going to System -> Preferences -> Remote Desktop on your machine. This should bring up the following dialog, which you can configure to your heart’s content:

Screenshot of the Ubuntu Remote Desktop dialog

You’ll notice that I have deselected the “You must confirm each access to this machine” checkbox. If this is checked, then you would need to physically allow the remote desktop connection on the target machine, meaning it would be a bit silly applying it to my blind machine as the whole point is to use the second machine from the first without any actual physical interaction on the second box!

Close the dialog and believe it or not, you are now set to go. All that is needed now is for a client to connect to your remote desktop with.

Virtual Network Computing (VNC) is simply put, a graphical desktop sharing system that uses the RFB protocol to remotely control another computer. It transmits keyboard and mouse events from the source computer to the target computer and then relays back the graphical screen updates from the target computer to the source computer over the network. VNC itself is platform independent and there are a lot of open source client and server variants out there, with most being pretty much fully compatible with all the others.

For my particular setup, I chose to make use of RealVNC’s VNC clients for both my Windows and Ubuntu desktops and the instructions to do so are below:

To control your second Ubuntu desktop from a Windows machine (maybe your laptop in your bedroom?), you need to download a VNC client off the web – in this case I grabbed RealVNC’s free client from http://www.realvnc.com/products/free/4.1/index.html. It’s a small download and once it is down, simply double clicking on the executable will bring up a window prompting you to enter the network address of the machine you want to remotely control. If you set your machine up to request a password, you will be prompted to enter this in, and once successfully authenticated, a nice new fullscreen window should pop up allowing you to take full remote desktop control of your unlucky target machine.

For Ubuntu the process is much the same: simply install a client, for example sudo apt-get install xvnc4viewer will do the trick, and once the install is complete, run vncviewer -fullscreen to launch. You will be requested to enter a password and once done, you should be in full remote control of the target PC.

Note, that in order for Remote Desktop to work the target machine does need to have an active session running. Now while it might not be a safe idea just to leave an unattended login on your network, it might not be a bad idea to simply make use of Ubuntu’s lock screen functionality on the target machine once you finish up your remote  control session. (To do this, simply click on the top-right power button and select the first menu option, entitled “Lock Screen”).

And there you have it. A remarkably simple and very cost effective way of controlling all those extra machines of yours without necessarily purchasing monitors and keyboards for each and every one of them! :)

Related Link: http://www.realvnc.com/products/free/4.1/index.html

In computing, Virtual Network Computing (VNC) is a graphical desktop sharing system that uses the RFB protocol to remotely control another computer. It transmits the keyboard and mouse events from one computer to another, relaying the graphical screen updates back in the other direction, over a network.

VNC is platform-independent – a VNC viewer on one operating system may connect to a VNC server on the same or any other operating system. There are clients and servers for many GUI-based operating systems and for Java. Multiple clients may connect to a VNC server at the same time. Popular uses for this technology include remote technical support and accessing files on one’s work computer from one’s home computer, or vice versa.

About Craig Lotter

South African software architect and developer at Touchwork. Husband to a cupcake baker and father to two little girls. I don't have time for myself any more.

  • Ronnie

    Great guide, but what would be more useful is how to remote control a desktop before a user logs on – say straight after a remote reboot or a WoL wakeup?

  • Agreed, and when we figure out that one, I'll let you know! (So for now it is back to good old ssh for now…)