Virtual Network Computing

from Wikipedia, the free encyclopedia
Typical VNC session in a separate window

Virtual Network Computing , or VNC for short , is software that displays the screen content of a remote computer ( server ) on a local computer ( client ) and, in return, sends keyboard and mouse movements from the local computer to the remote computer. With it you can work on a remote computer as if you were sitting in front of it. VNC implements the Remote Framebuffer Protocol and, in contrast to other remote maintenance software , can be used independently of the platform .

Historical background

VNC was developed in the Olivetti Research Laboratory ( ORL ). The research laboratory was founded in 1986 with Andy Hopper as director, acquired by AT&T in 1999 and closed in 2002. The original developers of VNC founded RealVNC in 2002 . VNC's project manager was Andy Harter , and Tristan Richardson created the architecture and protocols of VNC, as well as reference implementations for Unix and Java .

VNC has been published as open source since 1998 . The original VNC is under the GNU General Public License . RealVNC published its basic Remote Framebuffer Protocol in a Request for Comments from March 2011.

There are many forks from VNC that contain various improvements and additional functions, but are largely compatible with the original version and support its network protocol as the "lowest common denominator". There are implementations for all common operating systems , so VNC is considered platform-independent .


VNC works on the client-server model . The server program offers screen outputs and input options using a mouse and keyboard, which the client program can display and use.

The term virtual in VNC comes from the fact that it can be viewed as a virtual replacement for thin clients .


With VNC it is possible, for example, for the administrator of a network to take control of an employee's computer in order to install software or to correct errors. However, VNC can also be misused as spy software . Many implementations allow it to be used inconspicuously to the user of the monitored computer. The use of VNC software can also be secured to the same extent: The Windows version of the RealVNC server shows in the task bar with a white icon that the server is running. This turns black as soon as a viewer connects to the server, so that the user of the computer on which the server is running can notice this. Many implementations also offer the option of querying passwords when establishing a connection (not provided for in the RFP standard) or obtaining a declaration of consent from the user of the computer to be monitored to establish a connection in a dialog box displayed on the computer to be monitored. Alternatively, a “read-only” mode is also possible, in which local entries in the viewer have no effect on the remote VNC server computer.

Since the remote framebuffer protocol is unencrypted, all keyboard entries of the viewer are also sent unencrypted over the network. When entering sensitive data (e.g. passwords ), as with any other network protocol, there is a risk of data being spied on. To secure the connection, there is therefore the option of SSL encryption of the transport layer, similar to HTTPS, and the VeNCrypt encryption protocol , which has been specially optimized for VNC.

Known implementations

The most popular VNC programs that have both a client and a server are:

  • RealVNC is the "official" further development of the original VNC, in its unencrypted version for private use freeware , and in its full version suitable for example for single sign-on .
  • macOS offers screen sharing through VNC as standard , since OS X 10.5 added the included server for Apple Remote Desktop with an associated VNC client.
  • TightVNC : A VNC server and client under the GPL license , available for Windows and Linux ; there is also a platform-independent implementation of the client for Java that does not have to be installed. TightVNC is an extensive further development of the VNC program; the compression options are particularly noteworthy inorder to enable VNC without problems even with narrowband connections ("tight" encoding). The program can only transmit encrypted passwords, the data transmission itself is unencrypted.
  • UltraVNC : A VNC server and client for Windows under the GPL . It offers additional functions such as file transfer , chat and mirror video driver for very short transmission intervals for broadband connections (such as DSL or local network ), as well as “tight” encoding from TightVNC. With UltraVNC, authentication is not only possible via the regular password encryption, but also via Microsoft Logon I u. II Authentication procedures that are used in the NT domain concept and Microsoft directory service. External DSM plug-in modules are used toencrypt the data flow between theUltraVNC server and client . The DSM plug-in modules enable RC4 or AES encryption up to a key length of 128 bits.
  • x11vnc - forwards X-Window real displays (physical screen , keyboard and mouse ) to any VNC client. With built-in SSL encryption and authentication, UNIX user and password support and file transfer with TightVNC and UltraVNC. Also expanded for webcams , TV tuners and embedded Linux systems. Additional Enhanced TightVNC Viewer for Unix and Windows . GPL license .
  • LibVNCServer / LibVNCClient are cross-platform C libraries that allow VNC server or VNC client functionality to be integrated into your own applications. GPL license .
  • Contiki VNC server as a CTK topic (Contiki Toolkit)
  • Krdc and Krfb - Client and Server for KDE .
  • Vino - Client and Server for Gnome .
  • CSpace - remote control for Windows computers via VNC, free of charge, open source, authentication and communication are encrypted, RSA key pairs with 2048 bits are generatedduring installationand the public key is stored on a central server.
  • DirectVNC is a VNC client for framebuffer output. It uses DirectFB and therefore does not need an X server . This makes it suitable for very low-performance Unix systems.
  • Chicken of The VNC : VNC Client for Mac OS X ( GPL )
  • JollysFastVNC : VNC client for Mac OS X
  • VineServer (formerly OSXvnc ): VNC server for Mac OS X ( GPL )
  • OS9vnc : VNC server for Mac OS 9 and Mac OS 8
  • PalmVNC : VNC client for Palm devices
  • Mocha VNC Lite : Makes VNC possible as an application for iPod touch and iPhone . Compatible with PC and Macintosh.
  • Portable VNC : VNC Viewer for the PlayStation Portable
  • mVNC : VNC server for Symbian S60 mobile phones
  • VNsea : VNC viewer for the Apple iPhone
  • TouchpadPro : VNC viewer for the Apple iPhone based on VNsea
  • TigerVNC : Split from TightVNC
  • EfonVNC : VNC server for Windows CE .NET (4.x), Windows CE 5.0 and Windows Embedded CE 6.0 . License: GPL .
  • PocketVNC : VNC Server and HTML5 Viewer for Windows Mobile, Windows CE 4.x, Windows CE 5.0 and Windows CE 6.0.
  • Android -VNC viewer : VNC viewer that clones the well-known open source program TightVNC.
  • VNC Viewer for Android by RealVNC: VNC Viewer is a free app that allows remote access and control of any computer from Android devices.
  • VMLite VNC Server : Allows remote viewing and control of Android smartphones or tablets e.g. B. from a PC.


Xvnc is software based on a normal X server . Instead of a real, physical desktop computer, Xvnc uses a virtual desktop. X applications are displayed like on a normal X server, but can only be displayed and operated via a VNC viewer.

Xvnc provides two different servers: on the one hand, the X server, in which the preset window manager (e.g. Gnome or KDE ) is started, and on the other hand, a VNC server that can be accessed by the client . Due to the technology of the Unix X server, it is possible to start several Xvnc instances on one computer.

The VNC server is usually not started directly via Xvnc, but via the supplied Perl script vncserver.

Xvnc is an integral part of almost all VNC servers running on UNIX systems.

VNC as multi-screen operation

Thanks to its enormous popularity, the VNC protocol is used to increasingly, multi-head -enabled graphics cards to simulate. For this purpose, a computer runs with special "multi-monitor software" that usually provides a virtual VNC server. From the second computer, whose monitor you would like to use as an extension to the first, a normal VNC client is sufficient to connect to the virtual VNC server. The monitor content of the other is then not displayed, but the correspondingly simulated virtual extension part.

Well-known proprietary “multi-monitor applications” are ScreenRecycler for Apple Macintosh ( shareware ) and ZoneScreen ( freeware ) and MaxiVista for Microsoft Windows .

See also

Individual evidence

  1. VNC Frequently Asked Questions. University of Cambridge , accessed June 19, 2020 .
  2. ^ An archive of AT&T Laboratories Cambridge. University of Cambridge, accessed December 30, 2014 .
  3. Executive profiles. RealVNC Limited, accessed December 30, 2014 .
  4. Remote takeover: How RealVNC conquered the world. University of Cambridge, accessed February 20, 2018 .
  5. VNC Open. RealVNC Limited, accessed December 30, 2014 .
  6. ^ The Remote Framebuffer Protocol. Internet Engineering Task Force , accessed December 30, 2014 .
  7. What is VNC? - A practical introduction. University of Cambridge, accessed December 30, 2014 .
  8. VNC, the technology behind Leopard's screen sharing. Macwelt , November 9, 2007, accessed December 30, 2014 .
  9. Read in c't 5/2007 p. 70

Web links

Commons : VNC  album with pictures, videos and audio files