15 Open-source Free VNC Client and VNC Viewers
Virtual Network Computing (VNC) is a remote display system that allows you to effortlessly view and interact with a virtual desktop environment on another computer within the same network.
With VNC, you can easily run graphical applications on a remote machine and transmit the display output to your local machine. VNC is compatible with various operating systems and architectures, serving as both a server and a client.
1- TigerVNC
TigerVNC is a high-speed version of VNC based on the RealVNC 4 and X.org code bases. It was developed as a next-generation enhancement for TightVNC on Unix and Linux platforms, with the aim of providing improved performance and functionality.
In early 2009, TigerVNC split from its parent project to allow TightVNC to concentrate on Windows platforms, while TigerVNC continued its development for Unix and Linux.
One of the notable features of TigerVNC is its support for a variant of Tight encoding, which utilizes the libjpeg-turbo JPEG codec.
This implementation significantly accelerates the encoding and decoding process, resulting in faster and more efficient data transfer during VNC sessions. By leveraging this optimized encoding technique, TigerVNC is able to deliver a smoother and more responsive remote desktop experience.
This software is distributed under the GNU General Public License as published by the Free Software Foundation.
2- SmartPuTTY
SmartPutty is a user-friendly and powerful terminal emulation application for Windows. It allows secure remote system access, seamless file transfer, and native support for VNC, making it valuable for computing professionals who need to manage remote resources and access graphical applications.
3- EfonVNC
The EfonVNC project is a powerful open-source Windows CE Toolset that offers a wide range of remote control tools based on RealVNC, along with other highly useful system helper utilities.
It is specifically designed to cater to the needs of developers and users who are working with Microsoft Windows CE 5.0 or newer versions.
4- noVNC
noVNC is both an HTML VNC client JavaScript library and an application built on top of that library. noVNC runs well in any modern browser including mobile browsers (iOS and Android).
Features
- Supports all modern browsers including mobile (iOS, Android)
- Supported authentication methods: none, classical VNC, RealVNC's RSA-AES, Tight, VeNCrypt Plain, XVP, Apple's Diffie-Hellman, UltraVNC's MSLogonII
- Supported VNC encodings: raw, copyrect, rre, hextile, tight, tightPNG, ZRLE, JPEG
- Supports scaling, clipping and resizing the desktop
- Local cursor rendering
- Clipboard copy/paste with full Unicode support
- Translations
- Touch gestures for emulating common mouse actions
- Licensed mainly under the MPL 2.0.
5- SpiritVNC - FLTK
SpiritVNC - FLTK is an FLTK-based multi-view VNC client for Unix-like systems, including Linux, macOS, and FreeBSD.
SpiritVNC features VNC-through-SSH, reverse (listening) VNC connections and timed scanning of connected viewers.
6- Docker Guacamole
Docker Guacamole is an open-source Docker Container for Apache Guacamole, a client-less remote desktop gateway.
It supports standard protocols like VNC, RDP, and SSH over HTML5.
7- Remmina
Remmina is a remote-desktop client written in GTK, to use other desktops remotely, from a tiny screen or large monitors.
Remmina supports multiple network protocols in an integrated and consistent user interface. The protocols currently supported are: X2Go, RDP (Remote Desktop Protocol), VNC (Virtual Network Computing), and SSH (Secure Shell / Open SSH).
8- RoyalVNC
RoyalVNC is a modern, high performance implementation of the VNC/RFB protocol written in Swift. The SDK (RoyalVNCKit) is compatible with Swift and Objective-C on macOS, iOS and iPadOS.
It has no external dependencies but includes some free (public domain) third party code from the libtommath and D3DES libraries (see Credits).
Security Types (Authentication Methods)
- No Authentication
- VNC Password
- Apple Remote Desktop
- UltraVNC MS-Logon II
9- UltraVNC
UltraVNC is a powerful, easy to use and free - remote pc access pieces of software - that can display the screen of another computer (via internet or network) on your own screen.
The program allows you to use your mouse and keyboard to control the other PC remotely. It means that you can work on a remote computer, as if you were sitting in front of it, right from your current location.
VNC, the Remote Frame Buffer protocol (RFB) allows a desktop to be viewed and controlled remotely over the Internet.
A VNC server must be run on the computer sharing the desktop, a VNC client must be run on the computer that will access the shared desktop.
10- MultiVNC
MultiVNC is a cross-platform Multicast-enabled VNC viewer based on LibVNCClient.
The desktop version uses wxWidgets and runs on Unix, Mac OS X and Windows. There is also an Android version.
Features (Android)
- Support for most VNC encodings including Tight.
- TLS support, i.e. AnonTLS and VeNCrypt.
- Support for SSH-Tunnelling with password- and privkey-based authentication.
- UltraVNC Repeater support.
- Discovery of VNC servers advertising themselves via ZeroConf.
- Bookmarking of connections.
- Import and export of saved connections.
- Virtual mouse button controls with haptic feedback.
- Two-finger swipe gesture recognition.
- A superfast touchpad mode for local use.
- Hardware-accelerated OpenGL drawing and zooming.
- Supports server framebuffer resize.
- Copy&paste to and from Android.
Features (Desktop)
- Support for most encodings including Tight.
- TLS support, i.e. AnonTLS and VeNCrypt.
- Discovery of VNC servers advertising themselves via ZeroConf.
- Bookmarking of connections.
- Supports server framebuffer resize.
- Several connections with one viewer using tabs.
- Listen mode (Reverse VNC). Via tabs, it's possible to listen for and serve multiple incoming connections.
- Record and replay of user input macros.
- Under X11, seamless control of the remote side by moving pointer over the (default upper) screen edge. Borrows heavily from x2vnc by Fredrik Hübinette hubbe@hubbe.net, which in turn was based on ideas from x2x and code from vncviewer.
- Simple, loggable statistics.
- MulticastVNC ;-)
11- VNSee
VNC client for the reMarkable tablet allowing you to use the device as a second screen.
VNSee brings both worlds together by allowing the tablet to connect to a remote VNC server, show the remote screen on its E-Ink display and interact with it through the pen digitizer and touchscreen.
This can effectively turn the tablet into a second screen for your computer.
Applications include reading web-based content, typing documents, drawing, or previewing LaTeX documents as you compose them.
The software is released and licensed under the GPL v3.
12- VNCViewer (macOS)
VNCViewer is a native (Cocoa-based) open-source free VNC client for macOS.
13- Remote Viewer
Remote Viewer provides a graphical viewer for the guest OS display. At this time it supports guest OS using the VNC or SPICE protocols.
Further protocols may be supported in the future as user demand dictates. The viewer can connect directly to both local and remotely hosted guest OS, optionally using SSL/TLS encryption.
14- Next Terminal
Next Terminal is an open-source Terminal app that provides access to RDP, SSH, VNC, TELNET, and other protocols without the need for plug-ins, just a browser. You can monitor and block active sessions and restrict certain commands for character protocols.
Next Terminal logs all online resources, connections, sessions, and security events in a structured audit log.
It is developed with Golang and has a lightweight design with a one-line command installation.
Features
- Easy to use and safe open source interactive audit system
- Free open source
- Multiprotocol support
- Real time monitoring
- Post audit
- We use one of the most secure encryption algorithms
15- VNC-Client library for C#
This project provides a very performant, fully managed C#-Library that implements the RFB protocol for easy integration of VNC-Client features into own applications.
It's also cross-platform and runs everywhere .NET Core (or .NET 5 and so on.) runs.
Features
- Highly configurable and extensible structure
- Flexible transport layer selection (TCP by default)
- Automatic reconnects with configurable behavior
- Supported security types:
None
,VNC Authentication
- Supported message types:
SetEncodings
,FramebufferUpdateRequest
,FramebufferUpdate
,ServerCutText
,SetDesktopSize
,ServerFence
,ClientFence
,EnableContinuousUpdates
,EndOfContinuousUpdates
,PointerEvent
,KeyEvent
,Bell
- Supported frame encoding types:
Raw
,CopyRect
,zLib
,ZRLE
,Tight
- Supported pseudo encoding types:
Fence
,ContinuousUpdates
,LastRect
,JPEG Quality Level
,JPEG Fine-Grained Quality Level
,JPEG Subsampling Level
,DesktopSize
,ExtendedDesktopSize
- Allows smooth image transmission or even video streaming (over sufficiently fast connections) thanks to a very efficient implementation
- Allows changing the JPEG quality levels
- Supports all kinds of color depths up to - theoretically - even 32bit HDR (untested, please tell me if you know a server to test this with 😀)
- Supports continuous framebuffer updates and advanced flow control
- Supports keyboard and pointer input with horizontal and vertical scrolling
- Supports clipboard sharing (currently only server to client, I'm open for PRs)
- Full support for dynamic session resizing (server-side and client-side) with all the APIs exposed for multi-monitor scenarios
- Option for visualizing received rectangles (useful for debugging or analytic purposes)
- The render target can be detached or replaced and any time and the client can even run in a fully headless mode without any rendering
- Exposes many useful connection details in an observable manner (
INotifyPropertyChanged
) - Very detailed log output for debugging/analytic purposes