If you have ever needed to fix a server in another room, help a relative with their laptop, or reach a Raspberry Pi that has no monitor, you have the problem VNC was built to solve: being in front of a computer you are not in front of.
The idea in one paragraph
A program called a VNC server runs on the computer you want to reach. A program called a VNC viewer (or client) runs on the computer in your hands. The server shares an image of its screen, the framebuffer, and the viewer sends back your keyboard and mouse input. To the remote machine, your clicks look local. To you, the remote desktop is just a window.
The protocol: RFB
Every VNC tool speaks the Remote Framebuffer protocol, RFB, published as RFC 6143. RFB works at the framebuffer level, the raw pixels of the screen, which is what makes VNC platform-independent: a viewer on Windows can control a server on Linux, macOS, or a bare single-board computer, because pixels are pixels everywhere.
viewer → server open TCP connection (default port 5900) server → viewer RFB 003.008 protocol version viewer → server RFB 003.008 agree version server ↔ viewer security-type negotiation (VNC auth, ...) server → viewer framebuffer size, pixel format, desktop name viewer → server FramebufferUpdateRequest server → viewer FramebufferUpdate (only the changed rectangles)
RFB delivers framebuffer updates in rectangles of pixel data that the viewer adds to its framebuffer (RFC 6143 section 7.6.1). For more detail, read The RFB protocol explained.
The parts you will meet
| Term | What it is |
|---|---|
| VNC server | Runs on the machine being controlled. Shares the screen and applies your input. |
| VNC viewer | Runs on the machine you are sitting at. Shows the remote screen, forwards input. |
| Display number | Display :1 means port 5901 (port 5900 + display number). Server N typically listens on port 5900+N. |
| Encodings | Screen-update compression schemes include Raw, Hextile, and ZRLE, plus extensions such as Tight. |
| Password / authentication | RFB specifies VNC Authentication. In TigerVNC v1.16.2, VeNCrypt security types are added; x11vnc 0.9.17 includes a built-in -ssl mode. |
One protocol, many implementations
RealVNC Connect is a commercial VNC implementation from the team that created VNC. After the Cambridge lab closed in 2002, members of the original team founded RealVNC to continue the technology commercially.
VNC’s open-source release in 1998 also gave the technology a life beyond the lab. Today’s open-source implementations include noVNC, TigerVNC, UltraVNC and x11vnc. TightVNC offers both open-source and commercial licensing. Explore Open Source VNC for the projects, or read the history of VNC for their background.
Current implementations include:
- noVNC v1.7.0, open source under MPL-2.0, released 28 Apr 2026.
- RealVNC Connect (commercial).
- TigerVNC v1.16.2, open source under GPLv2, released 26 Mar 2026.
- TightVNC 2.8.88, dual-licensed as open source (GPLv2) or commercial, released 19 Jun 2026.
- UltraVNC 1.8.3.0, open source under GPLv3, announced 14 Sep 2026.
- x11vnc 0.9.17, open source under GPLv2, released 1 May 2025.
How VNC differs from RDP
VNC uses the Remote Framebuffer protocol, RFB, published as RFC 6143. It works at the framebuffer level: the server sends rectangles of screen pixels, and the viewer returns keyboard and pointer input. This platform-independent model lets viewers and servers run on different operating systems.
RDP is Microsoft’s remote desktop protocol. It can send drawing commands and other display information. Its Windows session model includes RD Session Host, which gives each user an isolated session on Windows Server 2025, 2022, 2019 and 2016. VNC can share an existing display or provide a virtual desktop, depending on the server implementation.
A VNC viewer connects to the listening address and port of a VNC server. RealVNC Connect offers cloud connectivity without firewall or router reconfiguration; direct connections are available on some plans; see RealVNC’s plan comparison.
Read VNC vs RDP for the display and session comparison, or The RFB protocol explained for the protocol details.
For business remote access, explore RealVNC Connect.
Is VNC secure?
During connection setup, RFB negotiates a security type (RFC 6143 section 7.1.2). Classic VNC Authentication relies on a DES-based challenge-response. The password is truncated to eight characters, or padded with nulls, to form the DES key (RFC 6143 section 7.2.2). After connection, RFB on its own does not protect against observation or tampering (RFC 6143 section 9). Read Security and remote access best practices before deploying anything.
TigerVNC’s Xvnc gives applications a separate virtual X display that they treat as a normal screen (TigerVNC v1.16.2 Xvnc manual). With TigerVNC v1.16.2, x0vncserver shares an existing X server; x11vnc 0.9.17 accepts connections to existing X11 displays (TigerVNC v1.16.2 x0vncserver manual; x11vnc 0.9.17 manual). On X11, those are two session types: a virtual display, or a share of an existing display. Whether other people can see or join the remote desktop depends on the session type; read session visibility and consent before choosing a setup.
Sources accurate as of 30 September 2026.
Open-source VNC suits personal projects and home labs. When your business depends on remote access, RealVNC Connect adds end-to-end encryption, centralised management and commercial support from the team that created VNC.