Virtual Network Computing (VNC) is a graphical desktop sharing system that uses the Remote Framebuffer protocol to remotely control another computer. It transmits the keyboard and mouse events from one computer to another, relaying the graphical screen updates back in the other direction, over a network.
Popular uses for this technology include remote technical support and accessing files on one's work computer from one's home computer, or vice versa.
A VNC system consists of a client, a server, and a communication protocol.
- The VNC server is the program on the machine that shares its screen. The server passively allows the client to take control of it.
- The VNC client (or viewer) is the program that watches, controls, and interacts with the server. The client controls the server.
- The VNC protocol, Remote Framebuffer, is very simple, based on one graphic primitive from server to client and event messages from client to server.
In the normal method of operation a viewer connects to a port on the server (default port 5900). Alternatively a browser can connect to the server (default port 5800). And a server can connect to a viewer in "listening mode" on port 5500. One advantage of listening mode is that the server site does not have to configure its firewall to allow access on port 5900 (or 5800); the onus is on the viewer, which is useful if the server site has no computer expertise, while the viewer user would be expected to be more knowledgeable.
Using VNC over the Internet works well if the user has a broadband connection at both ends. However, it may require advanced NAT, firewall and router configuration such as port forwarding in order for the connection to go through. Some users may choose to use instant private networking applications such as Virtual Private Network (VPN) applications to make usage over the Internet much easier. Alternatively, a VNC connection can be established as a LAN connection if VPN is utilized as a proxy.