This topic was published by DevynCJohnson and viewed 888 times since "". The last page revision was "".
- Topics - 444
Virtual Network Computing (VNC) is a special way to remotely control a computer. Like Secure Shell (SSH), a computer user can login to a remote machine on the network and execute commands and access files on the system. However, VNC displays the remote system's desktop while SSH displays a terminal shell. It may be beneficial to learn more about VNC and similar technologies.
VNC is platform-independent and comes in client (for the local system) and server (for the remote system) forms. VNC uses the Remote FrameBuffer (RFB) protocol. This protocol transfers the remote desktop by specifying pixels in X,Y-coordinates (i.e., put pixel * at position X,Y). The remote system is not required to have a physical display, so VNC is helpful when accessing headless servers.
NOTE: A headless server is a server that lacks human-interface devices. The Raspberry Pi is often used as a headless server.
The RFB protocol is on the application layer of the OSI model (just like HTTP, FTP, X11, and others). RFB uses TCP/IP (IPv4 or IPv6). VNC is a larger system that includes RFB. RFB is a network protocol while VNC is a system offering various tools and features for displaying a remote desktop. VNC offers and manages security while raw RFB alone is insecure. However, VNC provides RFB with security.
VNC typically uses port 5900 for the server's first display. A second display would be on port 5901. On Linux systems, port 5900 links to the main or "real" display. For instance, display servers (like X11 and Wayland) can create multiple displays. Users can create virtual displays that would not be seen when connecting a monitor to the server. This provides a way to make a single computer act as multiple computers for many people. For instance, two people can make use of one computer by setting up a VNC server on the machine and then creating two virtual displays on the system. Then, two dummy terminals can be setup which provide the interface to the headless system. Since there are two virtual displays, the users will not see each other's program windows.
VNC is secure and uses password authentication and other forms of secure authentication. To access a remote system, the remote system must be configured to do so. VNC can be made more secure by tunneling VNC over SSH, VPN, or some other secure connection. SSL/TLS can be used to provide additional security. Each VNC server program has its own security features and flaws.
VNC allows users of one operating system or machine architecture to access a machine of another OS or hardware. This allows users of one system type to use services and programs of another without virtualization.
VNC Server Programs
To make a server offer the VNC services, the computer system must have a program installed that will offer the desired services. Each VNC server utility has its own advantages, disadvantages, and features.
Xvnc is a special VNC server specifically for the X11 server (http://www.hep.phy.cam.ac.uk/vnc_docs/xvnc.html). Using Xvnc, computer systems can be made to boot up a VNC client service so that the machine will boot into the remote system. In other words, the user would turn on the local machine and then immediately have access to the remote system.
X11vnc is similar to Xvnc, but has different features (http://www.karlrunge.com/x11vnc/). X11vnc offers SSL encryption, passwords, and support for virtual displays. However, Xvnc is faster than X11vnc.
NOTE: Xvfb (X virtual framebuffer) is an X11 display server (like Xorg) that creates the virtual displays mentioned in this article. To create a headless server that offers virtual displays, the server must have Xvfb installed and properly configured. Xdummy is an alternative to Xvfb.
TightVNC is another VNC server (http://tightvnc.com/).
The client (local system) needs a VNC viewer to access the VNC server. Various viewers are available for Linux and Android. Also, plugins are available to allow the web-browser to be a VNC viewer.
- Remmina is a viewer that supports RDP, NX, SSH, and XDMCP in addition to VNC (http://freerdp.github.io/Remmina/index.html).
- TigerVNC is both a client (viewer) and VNC server (http://tigervnc.org/).
- "VNC Viewer for Google Chrome" is a plugin for the Google Chrome browser (https://chrome.google.com/webstore/detail/vnc%C2%AE-viewer-for-google-ch/iabmpiboiopbgfabjmgeedhcmjenhbla?hl=en).
SSH can behave like VNC by tunneling X11. This allows the X11 server on the remote machine to display the system's desktop.
Remote Desktop Protocol (RDP) and Simple Protocol for Independent Computing Environments (SPICE) are each remote-display systems. While VNC sends data pixel by pixel, RDP and SPICE have other methods of sharing the remote system.