This article has been updated and reformatted - it was originally provided to TechRadar by Linux Format, the number one magazine to boost your knowledge on Linux, open source developments, distro releases and much more. It appeared in issue 220, published February 2017. Subscribe to the print or digital version of Linux Format here.
There are times when you need to remotely access the complete desktop session rather than just a single application. You may want to guide the person on the other end through installing software or want to tweak settings on a Windows machine from the comfort of your Linux desktop yourself.
This is where remote desktop software comes in handy. Using these nifty little applications you can remotely access and operate a computer over the network from all sorts of devices. There are various protocols, and a lot of people are probably familiar with SSH.
While the clients we’ll cover in this article support multiple ones, we’ll focus on Virtual Network Computing (VNC) which is amongst the most popular. VNC isn’t the only protocol in town for accessing the remote desktop and you can use a few applications in this feature to connect to other ones.
- 5 of the most popular Linux gaming distros
- What's the best Linux distro for beginners?
- 10 of the most popular lightweight Linux distros
- 8 best Linux distros
If transferring files is imperative to your remote access, then there’s no better option than VNC Connect. The client performs decently with other servers but works best when paired with its own. We recommend it for remotely accessing all kinds of graphical work on the Pi, especially if you use Raspbian, as the server software now comes preinstalled.
You’ll have to define a new connection before connecting with the VNC Connect client by manually entering the IP address of your VNC server. You can then either use the default settings or tweak them from the New Connection window.
The General and Options tabs list common parameters while the Expert tab lets experienced campaigners modify the default values of various parameters. You can access these options during an active connection either by using the hidden menu at the top of the connection window or by pressing the F8 key.
By default, the VNC Connect client also saves screenshots for connections. During an active connection the client also gives you the option to transfer files to and from the remote server and exchange instant messages. However, these options will only work when connected to a VNC Connect server.
The client also allows multiple sessions and can run sessions full-screen and scale the remote display to fit the current window on the client computer. It can also remember remote access credentials so you don’t have to enter them each time which is a definite plus, especially if you need to remotely manage a handful of machines. Simply double click on a machine from the VNC Connect window to connect automatically.
You can easily scroll through PDFs and perform regular desktop tasks with VNC Connect. You can get more mileage from your Pi using the experimental hardware acceleration mode which allows you to run applications such as Minecraft Pi, and watch videos with the built-in omxplayer, without any issues.
VNC Connect allows you to change several aspects of the viewer. You can share the printer on your local machine as the default printer on the remote VNC server which is a very useful feature.
Security conscious users will also appreciate the privacy options where you can set a master password for the viewer to protect it from unauthorized use. The Preferences window in VNC Connect also gives you access to the Expert parameters to tweak the server’s behavior.
VNC Connect enables you to tweak some connection options via a dedicated window. Like some of its peers, VNC Connect uses a panel for accessing features such as the file transfer and chat which hides itself when not in use. Alternatively, you can press the F8 key to display these options. Expert users can alter aspects of the VNC connection by going to the Expert tab.
Remmina scores decently in the performance department and gives you the flexibility to change connection quality settings on the fly. The client supports the widest range of protocols and will connect to all kinds of remote desktop servers.
Remmina doesn’t have its own server software, but you can use it for all sorts of remote connections to all kinds of servers. Sadly, Remmina lacks some extra functionality that you get with other clients.
Remmina houses default remote connection settings under its Preferences window. Here you’ll find options to tweak some auto-save settings for the connections, and define custom hotkeys for common tasks. You can also alter a few aspects of the client’s behaviour and define a list of resolutions for the remote desktop.
Before you can establish a connection, Remmina asks you to create a profile to define parameters for the connection. At the very least, you’ll have to select a protocol from a drop-down list and enter the server’s IP address.
Optionally, you can define other parameters that vary depending on the protocol being used, e.g. for VNC connections, you can optionally choose the colour depth and quality of the connection as well as encryption. You also get checkboxes to toggle some quick settings like starting a simple View Only session and disabling encryption etc.
With Remmina you can manually tweak the quality of the connection to make good use of the available bandwidth. Best of all Remmina lets you alter the colour depth of the remote desktop on the fly. The application encrypts VNC connections with the AES256 algorithm and also offers a button to send all keyboard commands to the remote server.
Remmina has a tabbed interface for managing multiple remote sessions from a single window. When connected, there are buttons for common tasks, such as switching to full-screen or scaled mode. You can also change the quality of the connection on the fly and send keyboard commands to the remote desktop.
In addition to VNC, Remmina supports other common protocols for accessing remote desktops including SSH, RDP, XDMCP and NX. It too doesn’t have a server of its own, nor any clients for mobile platforms.
You can also manage multiple remote desktop sessions from a single window. There are a bunch of buttons for common tasks such as switching to full-screen mode or to the scaled mode in case the remote desktop doesn’t fit.
Remmina’s website lists the features of the main client along with those that are added via plugins. There’s also a handful of screenshots, a barebones FAQ, and a slightly more extensive Wiki which all answer some of the commonly asked questions on usage.
TigerVNC has a rather straightforward interface. However, unlike some of the other clients in this feature, it lacks the ability to automatically sniff VNC servers on the network and you’ll have to manually enter the IP address of the remote VNC server to establish a connection. While the default options work for most users, various connection parameters can be customized.
Besides the options to choose the encoding, color and compression levels for the connection, you can also elect to only view the remote computer screen. Furthermore, TigerVNC enables you to share the clipboard with the remote VNC server and the application also makes it possible to choose the remote session screen size.
TigerVNC uses TLS encryption by default. While the application encrypts traffic, it cannot verify the identity of the server. However, TigerVNC supports various other encryption schemes, such as X509Vnc, that do allow this.
Furthermore, TigerVNC offers users controls to manually tweak the encoding and color level and a couple of other parameters depending on the available bandwidth. You can also use it to create view-only sessions and run a full-screen session on the guest.
TigerVNC enables you to save configuration information for individual connections into separate files that can be loaded on subsequent connection, or from a different client computer.
As with VNC Connect, you can press the F8 key in an active session in TigerVNC to bring up a menu for viewing connection data and toggling the Ctrl and Alt special keys. You can also change the colour level and encoding of the connection and convert the session into a view-only one.
The client performs well irrespective of what type of VNC server is at the other end. Its only downside is a lack of mobile clients and the fact it doesn’t allow you to copy files. This said, ferrying files and instant messages aren’t the primary functions of a VNC.
TigerVNC’s open source credentials, intuitive interface, and exemplary performance during an active connection make it a very capable VNC client for all kinds of remote desktop tasks.
Vinagre has a minimal interface that’s very much like Remmina. However, there aren’t nearly as many advanced options behind Remmina’s simple GUI. To connect all you need to do is pick a protocol from the pull-down list and enter the IP address of the remote VNC server. What makes Vinagre more intuitive and user friendly than Remmina is the very helpful Find button that hunts for active servers on the local network.
Also much like Remmina, you get optional checkboxes to start a full-screen session, a view-only or a scaled window. You also have the ability to select a color depth from 24-bit true color to 3-bit ultra-low color, plus you can also enable JPEG compression if you have the resources to bear the processing overhead. On the downside, you can’t change the quality settings of an active connection.
Vinagre can sniff and discover a VNC server running on the network and can tunnel VNC connections through SSH and enables you to easily take screenshots of the remote machines.
Vinagre can also connect using the SPICE, RDP and SSH protocols as well as VNC. The client doesn’t run on any other platform besides the Linux desktop and neither does it have any clients for mobile platforms. It also has no server component of its own but works best when paired with the default VNC server for Gnome, Vino.
During an active remote desktop session, you can ask Vinagre to stop sending keyboard and mouse input to the remote desktop to turn it into a view-only session. Vinagre’s interface also includes a keyboard shortcut to send (Ctrl+Alt+Del) and another to take a screenshot. You can also bookmark an active connection for quick access on subsequent connections, but you can’t alter the colour depth during an active connection.
You can also use Vinagre to enable JPEG compression if the VNC server supports it. The application also enables you to specify the color depth to be used for the connection.
Vinagre just gets the job done without much ado and performs surprisingly well. However, the client doesn’t offer the same flexibility as the others during an active session which is a shame.
TightVNC offers pretty much the same features as TigerVNC, but some distinguishing features like the ability to transfer files are available only to Windows users.
If you’re a fan of using multimedia on your remote desktop, we suggest you give TightVNC a miss. Using the default settings you can perform simple actions like viewing PDFs but videos are barely watchable and games which rely on rapid keyboard presses such as snake4 performed horribly, with a delay of over two seconds.
However, TightVNC is the only software in this feature to use a Java viewer. It also uses a simple textbox interface similar to TigerVNC’s. You’ll have to manually enter the IP address of the remote VNC server since the client cannot detect VNC servers running on the network. Again, you can either connect with the default option or customise any of the available settings. However, TightVNC lists all of the available options in one window unlike TigerVNC’s tabbed interface.
The differences between the two continue once a connection has been established: While TigerVNC uses a hidden menu, the TightVNC viewer lists a row of buttons at the top of the interface, and you can use these to customise any of the parameters for the connections – as well as sending various special keys to the remote VNC server.
TightVNC won’t be much help if you’re new to VNC. The website has a single PDF guide on getting started for Windows users. It's easy to see from this – and the handful of screenshots – that this is a product mainly aimed at Windows users. If you need dedicated tech support, you can also pay for an annual subscription.
The TightVNC interface makes passing VNC connections via SSH tunnels very straightforward. TightVNC includes a toolbar at the top of the window with buttons to send keys such as Alt and Ctrl to the remote server. You can also disable clipboard transfer and alter how the mouse cursor is traced, and the shape of the local cursor.
- Read our full TightVNC review.
Also consider these remote desktop options for Linux
There are several other remote desktop clients and solutions that you can use besides those we've discussed. While we’ve only covered the most popular and actively developed VNC clients, there are other alternatives:
TeamViewer is an all-in-one remote desktop software platform that allows multiple users to access multiple devices. The result is the ability to share devices, transfer documents, and even have meetings. There's a free version available for personal use and a paid-for business version available.
NoMachine is a fast, secure, and easy-to use remote desktop software, that uses the NX protocol rather than VNC but is worth including in the expanded list because of its extensive use. This is especially due to it being fast and easy to use, allowing just a few clicks to access any remote device.
Chrome Remote Desktop is a free tool from Google that because it runs through the Chrome browser means it can be used regardless of your operating system, making it very accessible. The client allows for any remote support, as well as file access or even online meetings.
- Work from home safely and productively with a remote access VPN.