noVNC: HTML5 VNC Client
noVNC is a HTML5 VNC client that runs well in any modern browser including mobile browsers (iPhone/iPad and Android).
noVNC is licensed under the LGPLv3.
There are many companies/projects that have integrated noVNC into their products including: Sentry Data Systems, Ganeti Web Manager, Archipel, openQRM, OpenNode, OpenStack, Broadway (HTML5 GDK/GTK+ backend), OpenNebula, CloudSigma, Zentyal (formerly eBox), and SlapOS. See this wiki page for more info and links.
Notable commits, announcements and news are posted to @noVNC
Running in Chrome before and after connecting:
See more screenshots here.
HTML5 Canvas (with createImageData): Chrome, Firefox 3.6+, iOS Safari, Opera 11+, Internet Explorer 9+, etc.
HTML5 WebSockets: For browsers that do not have builtin WebSockets support, the project includes web-socket-js, a WebSockets emulator using Adobe Flash. iOS 4.2+ has built-in WebSocket support.
I maintain a more detailed browser compatibility list here.
Unless you are using a VNC server with support for WebSockets connections (such as x11vnc/libvncserver), you need to use a WebSockets to TCP socket proxy. There is a python proxy included ('websockify'). One advantage of using the proxy is that it has builtin support for SSL/TLS encryption (i.e. "wss://").
Use the launch script to start a mini-webserver and the WebSockets proxy (websockify). The
--vncoption is used to specify the location of a running VNC server:
./utils/launch.sh --vnc localhost:5901
Point your browser to the cut-and-paste URL that is output by the launch script. Enter a password if the VNC server has one configured. Hit the Connect button and enjoy!