If you manage more than one computer, you may have wanted, at one point or another, a “remote keyboard,” a “remote mouse,” and a “remote screen” for that far-away computer, even if it is just up or down the stairs in your house.
VNC (Virtual network computing) can help here. Think about it as your screen, a keyboard, and a mouse at a remote workstation, controlled via the network and quite usable in terms of speed, even on somewhat slower connections.
A VNC setup usually consists of two or more computers, where the computers which need to be remotely controlled run a server (the VNC server) and the clients which need to connect to it (with the possibility to do so simultaneously in many cases) running a client (the VNC client(s)).
In this tutorial, you will learn:
- A list of the most prominent VNC utilities available for Linux
- Which VNC server/client utility we like the best
Software requirements and conventions used
|Category||Requirements, Conventions or Software Version Used|
|Software||Bash command line, Linux based system|
|Other||Any utility which is not included in the Bash shell by default can be installed using
|Conventions||# – requires linux-commands to be executed with root privileges either directly as a root user or by use of
$ – requires linux-commands to be executed as a regular non-privileged user
Whilst this is the only commercial solution on our list, it should be mentioned. In the past, one could buy, for a small fee (once-off; if you were experienced and did not need ongoing support), a VNC server (with a free client) for Linux, Windows, and macOS that works well. If you happen to have such an old license, congratulations, as now a monthly ongoing fee seems required. This makes looking for a solid, free, and preferably open-source alternative even more important.
When looking for any type of software, it is also always important to consider how you will use the software; if it is just for personal use, you may find that a free license is available. If it is for commercial/business use, likely a fee will apply. However, this is not the case with a lot of software packages in the Linux open-source domain. If you do not require support, often a free alternative, even for commercial use, can be found.
If you are planning to use VNC for personal use only, RealVNC may have a free option for this. It is not immediately clear from their website, though the server and client can be downloaded for free. It may be worthwhile downloading and installing it, seeing if a license is required for personal use.
For commercial use, you may like to fork out the license fee. However, it is a bit steep when the same functionality was provided in the past for a once-off fee which approximately matches the current per-year subscription fee. This sort of paid-versus-free issue has continually plagued the VNC software area for some years. There is also a bit of history when it comes to where VNC came from, who owns the software’s rights, etc. You can read up on this to learn more, if you have the time.
Another issue that plagues the VNC domain is minor incompatibilities between VNC providers, at least in the past. For example, when you try and run a VNC server from a vendor or provider X but use a VNC client from a vendor or provider Y, something may only partially work or not at all. Some vendors claim compatibility, but make sure to test this if you want to mix various solution providers.
Let’s now keep exploring.
Our first major free (including for commercial use) and open source contender to RealVNC is UltraVNC. It is definitely worth checking out, though I note that in the past (presumably for older versions), I have had more issues setting up UltraVNC than I had setting up RealVNC.
UltraVNC provides optional (and free) DSM encryption. It also supports file transfers and chats. If you run into issues, you can check the source or log an issue ticket on the UltraVNC GitHub repository.
Much like UltraVNC, TightVNC is another major free (including for commercial use) and open source contender to RealVNC. TightVNC is also cross-platform and compatible with other VNC software. If you run into issues, you can log bug tickets in their bug tracker, but start with reviewing the TightVNC Bug Reporting guidelines.
TigerVNC, another cross-platform implementation of VNC, promotes itself as being performant enough to run 3D and video applications. TigerVNC was originally based on TightVNC and you can read more about the project motivation on their homepage.
Something else: noVNC
As a different, but interesting, concept you may consider noVNC, a WebSocket and browser-based client-only VNC solution, mostly licensed under the Mozilla Public License 2.0 (ref noVNC license).
To use noVNC, you will still require a VNC server, or an emulator, to be running on the remote system. Look at the next item for some options, or consider the ones above.
Other options and ideas
There are some other interesting VNC and other options to explore: x11vnc/libvncserver, QEMU (more of an open source emulator/virtualizer), and MobileVNC.
There is also a set of VNC softwares for Windows (and/or macOS) only; EchoVNC, VNCRobot, mRemoteNG, TurboVNC.
And, if you would like to find even more VNC software, see this huge list of remote desktop software on Wikipedia!
In this article, we reviewed a list of the most prominent Linux-supporting VNC solutions available. You may also find additional VNC solutions, such as GitHub or Wikipedia (see link above). As you can see, there are many different solutions and options, and various solutions will have various pros, and con’s and some of them may have significant compatibility or usage issues.
The VNC software domain is a bit haphazard, and this is likely due to the history of VNC since it was created. Still, using VNC can provide great benefits, and a day or two researching what works best for you is likely going to pay off in the long run if you will use this functionality a lot. If you find any other solutions, or found a great working setup, leave us a comment.
If you enjoyed reading our article, have a look at How To Mirror Your android Mobile Screen To Linux and Using Gnu Screen with Examples. Enjoy!