Note: Our best Linux remote desktop clients round-up has been fully updated. This feature was first published in September 2010.
Seizing control of someone's computer might seem like a violating act of aggression, but sometimes it's necessary.
We've also known people to run remote desktop sessions against the machine they're actually using (it sounds crazy, but there was more than one desktop running), so don't imagine you can't find some use for it.
While real Unixers may like to sing songs about SSH and the command line, you may need to gain access with a graphical desktop, and that's where remote desktops come in.
For many people, the tried and tested method is VNC, and it features in a lot of clients in this test. But there are other protocols and types of desktop. In fact, the growing vogue among these clients is to support multiple protocols, so whatever desktop you're targeting, and whichever server it's running, there should be something suitable here.
Obviously, over the course of these tests, we sometimes weren't running exactly like for like – but that gives a fair test of the differing protocols too. For example, although NoMachine NX supports VNC connections, we tested its performance against its own NX server, which seems to make sense.
We didn't test the TightVNC client, mainly because it's very close to the TigerVNC implementation – they have a common codebase, but TigerVNC has a few more features.
How we tested
The key to a good remote desktop is getting the responsive feedback you need to use it well. It's no good if the screen looks perfect, but it takes two minutes for each keypress to register.
We tested our ability to play Armegatron remotely. This OpenGL lightcycle game requires split-second timing, as well as the display to be refreshed often. The results are somewhat subjective, but it proved a great way of demonstrating how responsive these clients were.
The clients were tested against a local PC with quad-core processor and 16GB RAM on a Gigabit LAN running Ubuntu 14.04.3, the VNC server software X11VNC Server and the official NX server for the NX clients. RDP functionality is mentioned, but wasn't tested.
The clients ran on a virtual machine with a Core i7 dual-core processor, 4GB RAM and Fedora 23.
This is a standalone program for connecting to VNC computers from the RealVNC site – once downloaded, you'll need to open a Terminal, navigate to the directory containing the program and chmod 700 it in order to let it run.
You can see it's the parent of TigerVNC, but contains even fewer options, although it does at least automatically detect VNC servers, making it easier and quicker to connect. Choose Options and you can opt to scale the window size to fit your display, run in full-screen mode and override the automatic compression settings to force it to display more than just 256 colours.
Connection is quick and easy, but performance is well below the other VNC viewers in this test, although it's still a leap forward from a few years ago. There's a noticeable lag both when browsing the desktop and when running Armagetron, and while the lag is only half-a-second, that's the difference between winning and losing.
The dither patterns make it hard to work out when glitches occur, but we did spot a few during our test. It comes across as a faithful replica of the native RealVNC client – ironically, with fewer options. The TigerVNC client is a fork of the VNC code, so more or less comprises the bits from RealVNC and TightVNC, although development has continued on these.
So, it resembles a slightly less pleasant version of TigerVNC and doesn't perform very well. If it had sound support, it would probably swear at you and tell you how rubbish you are. However, in an emergency, a portable, standalone client is a good standby.
You might not need to be able to see everything perfectly to perform a server-saving operation, so it's worth knowing about.
It isn't pretty or quick, but it works well enough to keep for emergencies.
- RealVNC Java Client v5.3.0
- Web: http://www.realvnc.com
- Rating: 4/10
Though not the officially Gnome-endorsed client, Remmina certainly looks at home on the Gnome desktop with its GTK stylings. The well-designed layout works just as well on a small notebook as a giant desktop monitor.
A minimalist main display contains a toolbar and a list of available connections. Once connected, a new window spawns showing the remote desktop. Multiple connections are managed by easy-to-navigate, named tabs.
The useful toolbar controls are visible all the time, enabling you to rescale the display quickly to fit the available space, go full-screen or even individually control the horizontal and vertical scale of the window.
Unlike some clients, you don't get very fine-grained control over the protocol options such as compression, but it does at least give you a choice of colour modes and the four-step quality control, which seems to be a reasonable way of managing bandwidth and CPU use. Managing connections and bookmarking them is intuitive, although there's no automatic discovery.
In the responsiveness stakes, Remmina managed to wow us with its performance during theArmegatron test – not only was it playable, it was barely distinguishable from running the game locally.
There are no chat or file transfer facilities for basic VNC connections, but these are available for RDP links, which are also supported by this client, along with NX (both NoMachine NX and Free NX), XDMCP and SSH, making Remmina the client with the widest range of protocol support, to top it off.
Note you'll need to download and install additional protocols – including VNC – via plugins.
Great features, great performance – we don't know how it could be better.
- Remmina v1.2.0
- Web: http://www.remmina.org/wp/
- Rating: 9/10
TeamViewer is quite a big name and the software has many major corporate clients. It's been available outside of beta for Linux machines for a while now, offering deb and rpm packages through its website, but be warned – this is effectively the Windows version running in a Wine wrapper.
The first advantage, and in some ways disadvantage, is that this client uses a proprietary protocol that enables clients to link up through a central server, which manages a connection from one site to another.
Another advantage is that, with a variety of clients on offer, you can view a remote system from practically anywhere, even on locked-down systems that wouldn't allow an SSH connection, or from behind corporate firewalls. Also, it runs on Windows and Mac, so it's an easy way to cater for all desktops.
TeamViewer has worked hard to improve performance over the years, with the latest release promising up to 15 times the speed of previous versions. This is borne out by its ability to handle Armagetron as well as Remmima, with decent quality graphics over our local connection.
There are added benefits from the proprietary protocol. It can manage audio and there's a little chat client, file transfer and even a usable VoIP service.
Connections are managed by dishing out a PIN on one machine, and the user at the other end typing it in, which isn't as secure as its authors may want you to believe – or you can set up an account and configure TeamViewer for unattended access. There's a free version for non-commercial use, something you'll be reminded about when you finish your current session.
When we first reviewed this five years ago, it was a horrific non-starter, but TeamViewer has developed into a compelling alternative to traditional VNC connections, particularly if you want to go cross-platform.
TeamViewer has come of age, and while it may jar with the FOSS crowd, it's a surprisingly powerful alternative to traditional services given the fact it's still not a native application.
- TeamViewer v11.053191-0
- Web: http://www.teamviewer.com
- Rating: 7/10
As soon as you run TigerVNC, you get a good idea of the kind of people who invented it and why. A tiny request pops up and asks for the server you want to connect to – there are no bookmarks, or lists of located servers on the network, and you'll need to know your target's IP address. If this was a wrench, it wouldn't be one with a moulded ergonomic grip.
If you click the Options tab though, you'll find there are plenty of settings – ones relating to the connection and the protocols at least. While the software will automatically select the options for you, it's possible to specify things such as colour depth and compression level if you like.
High compression will reduce the bandwidth needed for an effective desktop, at the expense of more CPU cycles being required at both ends. In use, running against the Vino and standard VNC servers, TigerVNC performed reasonably well, although it couldn't get connected unless a password had been assigned first.
Of the VNC clients, it was much faster than Vinagre, and even gave Remmina a run for its money. Historic refresh problems seem largely absent in this version – we were spared the view of seeing elements of windows shearing off occasionally, and the damaged background not being redrawn for a few seconds.
In terms of response though, it was easy to find the cursor (an option allows you to render it as a dot, even if the display cursor doesn't keep up) and the keyboard seemed fine. The display is in a single window with scroll bars if it doesn't fit the local screen – there's no scaling, other than running full-screen.
This client is capable enough, and has obviously been designed mainly for admins, but even so, some rudimentary comforts would have been appreciated. You might be a hardened network engineer, but still appreciate not having to type in IP addresses every time you want to connect to something, after all.
Plenty of options and it runs pretty fast, but there's little UI to speak of, and its lack of user-friendliness counts against it.
- TigerVNC v1.6.0
- Web: http://www.tigervnc.org
- Rating: 6/10
Although the name of this app sounds like something you'd put on a salad, you'll normally find it entitled Remote Desktop Viewer in your Gnome menus, because it's a standard part of the Gnome desktop. On running, an ordinary-looking window opens.
The panel on the right displays discovered servers and any bookmarks. The main part of the window is for the client connection to the server, which can be run full-screen or within the scrollable confines of this window.
If you open multiple sessions with different servers, the remote displays will appear in a series of tabs. The Bookmarks are okay, but can be confusing – there's little to distinguish them from discovered servers.
Like the other VNC clients on test here, it's reliant on the server and the features it supports in terms of performance issues.
We tried Vinagre with X11VNC Server and with its 'other half', Vino. The latter, like Krfb, is a GUI frontend and a VNC server, designed to make it easy to share desktops across computers. We had no trouble connecting to the remote screen, or using the options with the Vino server for features such as JPEG compression or different colour depths.
One curious problem we had was that the cursor often didn't update on the display very frequently. This doesn't seem to be an issue with the connection at all, because menus opened and other GUI elements were displayed almost instantaneously. It's a major issue though, as it's pretty important to know where the cursor is at any given time.
We were also unable to get it working properly with Armagetron, losing keyboard control shortly after the game launched, making it impossible to test its capabilities. That's a shame, as its frontend is one of the friendliest out there.
Simple to use and seems to perform well, until you lose the mouse cursor that is.
- Vinagre v3.18.2
- Web: http://projects.gnome.org/vinagre
- Rating: 4/10
Since we gave Vinagre the opportunity to work with its companion server, we thought we'd use a standard KDE desktop on the client and server side and try Krdc with the Krfb server.
Somehow, even though it's implementing the same VNC protocols that everything else does, this combination is about the worst thing after TeamViewer in terms of responsiveness. It worked much better with the standard VNC server and X11VNCServer than with Krfb.
A less than auspicious start, but wait: Krdc is actually pretty good. Once you move it away from Krfb, it's actually as responsive as the best clients when trying to survive a round of Armegatron. The responsiveness and frame rate were great, even if Krdc did still suffer the same background redraw problems as other VNC clients.
If your viewing needs change, it has an easy button to switch between full and scaled viewing modes. There are tabbed views for multiple connections, and the panel on the right, rather like Vinagre, also displays a list of bookmarks, recent connections and servers discovered on the local LAN.
There are plenty of settings for the client itself, but a disappointing set of choices for configuring the connection – you get the choice of high, medium or low-speed connections, and the software works out which features to use from there. We found this a bit annoying and limiting.
Aside from that, using Krdc was trouble-free, and it also supports the RDP protocols used for Windows remote access. If someone adds an NX plugin, it could become even more useful. If you run KDE and need an occasional VNC client, there's no compelling reason to change.
Krfb is a bust, but the client side of this pairing is a rare gem.
- Krdc v4.4.4
- Web: http://www.kde.org/applications/internet/krdc
- Rating: 6/10
NoMachine NX Client
The NoMachine philosophy is quite simple and easy to buy into. Imagine a world where a computer system has such foresight that even its very method of displaying something on the screen is split into a server-client software relationship. Now imagine that after many, many generations of this, the one true way has been lost, and it's just become a very complicated, overblown display driver.
NoMachine wants to rediscover its greatness, but too much stuff has been added without thought to the server-client relationship. That's why its approach is completely different to the standard VNC setup.
The NX protocol works over SSH. This brings security and a few other things not native to the RFB protocol used by VNC as standard. It also uses smart methods of encoding and compressing data, and makes clever use of caches to minimise the bandwidth required. And if you can save the bandwidth, you can do other cunning things with it – why not also ship over the audio feed from the host machine, for example?
An advantage of using the SSH connection is that if you have a user account on the target machine, you can just log in as normal and start a new X session. The corollary is that it's hard to 'grab' a screen that's already running, although the NX machine can do that through a standard VNC connection instead if necessary, or by launching a shadow session.
Shadow sessions work well, and depending on the setup, the remote machine may have to confirm the connection. For whatever reason, this tends to be markedly slower than spawning your own X session.
As well as VNC, it also supports RPC for Windows machines, with a similar interface, so it can be used as a general remote access tool. Although the client software makes it easy to configure connections and save them as settings, it doesn't really give that much love to the desktop users.
Somehow you end up with a whole host (intended) of software installed to do a simple job. There are no tabbed views or anything pretty, and you have to set up sessions in a different application than where you launch them from. But all that goes by the by when you see it run.
Whatever magic pixies sit in the pipes pushing the data through, they do an incredible job. NX on NX definitely gives the best user experience, and the fact it's now completely cross-platform with server support for Mac and Windows too make it an interesting choice – although some functionality is restricted to paid-for versions.
NX connection makes short work of even demanding apps, and plays sound too!
- NoMachine NX Client v5.0.63
- Web: http://www.nomachine.com
- Rating: 8/10
Leaving aside the clients that don't work that well, there's almost a war of ideology going on for the top spots here. There's no doubt that NoMachine, although it eschews standard VNC (you can still use it as a VNC client), performs excellently.
In the tests, the OpenGL game was fluid and playable. And while it was fiddly to set up, in use it was better than most. The NX protocol may well be the future, but the client software still has a lot to learn from the user experience guys.
The KDE entry, Krdc, performed well, in spite of its disastrous early start with the companion server. That could really be a problem for the Krdc people, because users will likely use them together and be disappointed with the slow performance. If you're running a KDE desktop and need a simple VNC client though, there's probably no need to search further.
TeamViewer has come a long way since we first included it in this roundup. It's now pretty nippy, responsive and simple to use. The fact it throws in extras like VoIP and chat will make it popular with those who need to communicate with people sat at the other end too. It's not open-source, however, and still not native either, which could be a deal-breaker for some.
Once again we take our hats off to Remmina. Performance was exemplary – only TigerVNC felt quicker, but that's not the full story. It had the best feedback and responsiveness of any client, and if you didn't know better, the remote desktop might have been a normal-speed local machine.
More than the performance though, this client had the best mix of features, and a sensible and well thought out interface. Although it did split into multiple windows, the controls always remain accessible.
As well as discovering clients on the network, it has a good way of storing connections, which would still work well if you had to deal with lots of desktops. Support for NX makes Remmina the all-round winner.