Many people use the noVNC client to provide remote graphical user interface (GUI) access to desktops and applications through the web browser. While it is true that noVNC solves the issues for many people, it does not necessarily mean that it is the best solution for all use cases. As we are strongly engaged in the noVNC project but are also ThinLinc developers, we see that there is a need for clarifying noVNC’s and ThinLinc’s roles for certain use cases. Consequently, we write the following article and hope it helps people to choose the appropriate solution for their remote Linux GUI access through the browser.
What is noVNC?
As a technology, noVNC is a VNC client that works exclusively in the browser. It means that the user can get access to a remote desktop or application running remotely on any operating system where a VNC server is available. As an organization, noVNC is an open-source project maintained by a community of individual developers and backed by organizations, such as us, the Swedish company Cendio. For the past 8 years, Cendio has been the main contributor to the noVNC project. noVNC is the most important and popular project for getting GUI remote access to systems through the browser. To date, it has almost two thousand forks and is starred by more than nine thousand users on GitHub.
A typical VNC installation requires a server and a client, with noVNC being a part of the client. To work as a VNC client, noVNC needs to be combined with two other components. Both a web server and a WebSocket proxy are required. This combination makes up the client side of the VNC system, while a VNC server needs to be installed on the server side.
Websockify is an open-source project that combines a web server with a WebSocket proxy. It is a simple alternative for many system administrators who quickly want to set up an evaluation environment for noVNC. It reduces the complexity of placing the isolated pieces together, but still requires setup time. Despite the fact of being very popular, Websockify is not recommended for production environments due to security and scalability limitations.
What is ThinLinc?
Understanding the previous paragraph is a good beginning to make sense of ThinLinc in comparison to noVNC. As described, noVNC only works when combined with (1) a web server, and (2) a WebSocket proxy, plus an (3) installed VNC server on the server side.
ThinLinc, on the other hand, is a complete package of software for providing access to GUI Linux remotely. It brings together a combination of several parts, divided in the client and server components, which work directly out of the box.
As noVNC, ThinLinc provides remote graphical user interface access to Linux systems through a browser client, but is not limited to that. In addition to a web browser client, ThinLinc also has native clients for Windows, macOS, and Linux – the three based on TigerVNC.
On the client side, the main difference between ThinLinc and noVNC is that the ThinLinc web browser client (ThinLinc Web Access) is ready to use. ThinLinc Web Access already has (1) noVNC, (2) its web server, and (3) the WebSocket proxy assembled, not requiring any extra job for making them work together. Additionally, it is secure and designed for being used in production environments. This is a huge difference compared to self assembling your production system with noVNC and Websockify.
On the server side, ThinLinc has its own VNC server integrated, which works out of the box with all main Linux distributions. In contrast, access to a Linux remote desktop or application through noVNC requires the installation of a VNC server, which ends up being time-consuming. Consider all compatibility issues that may arise when combining different components together. Furthermore, ThinLinc also has built-in functionality for session management, and support for multiple users, which both are common limitations for generic VNC servers.
What is noVNC role inside ThinLinc?
Now that we explained what noVNC is, and what ThinLinc is, it becomes useful to clarify what noVNC’s role inside ThinLinc is. As mentioned before, ThinLinc packages different open-source and proprietary components, both on the client and on the server side.
Aside from noVNC, among the ThinLinc components one finds some of the best open-source projects available, such as TigerVNC, PulseAudio, OpenSSH, UNFS3, among others.
Specifically, in ThinLinc’s case, noVNC is the component responsible for allowing remote GUI access to the ThinLinc server securely through a web browser. One can say that ThinLinc Web Access is a complete and secure implementation of the noVNC project.
What are the benefits of using ThinLinc as an alternative to noVNC?
Below is a brief summary of the benefits of using ThinLinc instead of noVNC to get remote GUI access to Linux desktops or applications:
TIME – ThinLinc requires less installation time than noVNC
It is time-consuming to install and orchestrate the four components required for a noVNC installation, (1) noVNC + (2) web server + (3) WebSocket proxy + (4) VNC server. ThinLinc does not need that much time to be installed, the components are preconfigured and work out of the box.
COMPLEXITY – ThinLinc is less complex to maintain than noVNC
Keeping different components working together naturally further complicates the maintenance in the case of a noVNC installation. ThinLinc handles this complexity itself.
SCALABILITY – ThinLinc is built to scale, not the case of sole noVNC
The ThinLinc server is much more than a VNC server because it has built in functionalities for managing a cluster of servers, load balancing, session management, and support for multiple users. ThinLinc has no limitation on the number of users in the system, the unique limitations are the licenses and the hardware. The number of users can easily be increased with the addition of license and new hardware, as agent servers.
SUPPORT – ThinLinc has qualified professional support available
noVNC support is found mainly in forums or internet communities. While it may work for a few users and in some cases, it can be a limitation for professional or enterprise users that require a higher level of trust and security. ThinLinc offers qualified support for the people who choose to have it, for a reasonable price. The support provides direct access to the engineers who are experts in the field. ThinLinc also comes in a free version for up to 10 users per organization, for which an official community provides the support.
When does ThinLinc not replace noVNC?
ThinLinc is an alternative when the goal is to provide GUI remote access to Linux desktops and applications through the browser. However, it is important to mention that ThinLinc has limitations when compared to noVNC and can’t be a noVNC replacement in all cases. Listed below are cases when ThinLinc is not an alternative solution to noVNC.
- Connecting to machines that doesn’t run Linux
- Connecting to an existing VNC server
- Connecting to your regular workstation session