http://www.karlrunge.com/x11vnc/ssvnc.html
Feature List:
Wrapper scripts and a tcl/tk GUI were written to create these features for Unix, Mac OS X, and Windows:
- SSL support for connections using the bundled stunnel program.
- Automatic SSH connections from the GUI (system ssh is used on Unix and MacOS X; bundled plink is used on Windows)
- Ability to Save and Load VNC profiles for different hosts.
- You can also use your own VNC Viewer, e.g. UltraVNC or RealVNC, with the SSVNC encryption GUI front-end if you prefer.
- Create or Import SSL Certificates and Private Keys.
- Reverse (viewer listening) VNC connections via SSL and SSH.
- VeNCrypt SSL/TLS VNC encryption support (used by VeNCrypt, QEMU, ggi, libvirt/virt-manager/xen, vinagre/gvncviewer/gtk-vnc)
- ANONTLS SSL/TLS VNC encryption support (used by Vino)
- VeNCrypt and ANONTLS are also enabled for any 3rd party VNC Viewer (e.g. RealVNC, TightVNC, UltraVNC ...) on Unix, MacOSX, and Windows via the provided SSVNC VeNCrypt Viewer Bridge tool (use 'Change VNC Viewer' to select the one you want.)
- Support for Web Proxies, SOCKS Proxies, and the UltraVNC repeater proxy (e.g. repeater://host:port+ID:1234). Multiple proxies may be chained together (3 max).
- Support for SSH Gateway connections and non-standard SSH ports.
- Automatic Service tunnelling via SSH for CUPS and SMB Printing, ESD/ARTSD Audio, and SMB (Windows/Samba) filesystem mounting.
- Sets up any additional SSH port redirections that you want.
- Zeroconf (aka Bonjour) is used on Unix and Mac OS X to find VNC servers on your local network if the avahi-browse or dns-sd program is available and in your PATH.
- Port Knocking for "closed port" SSH/SSL connections. In addition to a simple fixed port sequence and one-time-pad implementation, a hook is also provided to run any port knocking client before connecting.
- Support for native MacOS X usage with bundled Chicken of the VNC viewer (the Unix X11 viewer is also provided for MacOS X, and is better IMHO. It is now the default on MacOS X.)
- Dynamic VNC Server Port determination and redirection (using ssh's builtin SOCKS proxy, ssh -D) for servers like x11vnc that print out PORT= at startup.
- Unix Username and Password entry for use with "x11vnc -unixpw" type login dialogs.
- Simplified mode launched by command "sshvnc" that is SSH Only.
- Simplified mode launched by command "tsvnc" that provides a VNC "Terminal Services" mode (uses x11vnc on the remote side).
Patches to TightVNC 1.3.9 vnc_unixsrc tree were created for Unix TightVNC Viewer improvements (these only apply to the Unix VNC viewer, including MacOSX XQuartz): - rfbNewFBSize VNC support (dynamic screen resizing)
- Client-side Scaling of the Desktop in the viewer.
- ZRLE VNC encoding support (RealVNC's encoding)
- Support for the ZYWRLE encoding, a wavelet based extension to ZRLE to improve compression of motion video and photo regions.
- TurboVNC support (VirtualGL's modified TightVNC encoding; requires TurboJPEG library)
- Pipelined Updates of the framebuffer as in TurboVNC (asks for the next update before the current one has finished downloading; this gives some speedup on high latency connections.)
- Cursor alphablending with x11vnc at 32bpp (-alpha option)
- Option "-unixpw ..." for use with "x11vnc -unixpw" type login dialogs.
- Support for UltraVNC extensions: 1/n Server side scaling, Text Chat, Single Window, Disable Server-side Input. Both UltraVNC and x11vnc servers support these extensions.
- UltraVNC File Transfer via an auxiliary Java helper program (java must be in $PATH). Note that the x11vnc server also supports UltraVNC file transfer.]/b]
- Connection support for the UltraVNC repeater proxy (-repeater option).
- Support for UltraVNC Single Click operation. (both unencrypted: SC I, and SSL encrypted: SC III)
- Support for UltraVNC DSM Encryption Plugin symmetric encryption mode. (ARC4, AESV2, MSRC4, and SecureVNC)
- Support for UltraVNC MS-Logon authentication (NOTE: the UltraVNC MS-Logon key exchange implementation is very weak; an eavesdropper on the network can recover your Windows password easily in a few seconds; you need to use an additional encrypted tunnel with MS-Logon.)
- Support for symmetric encryption (including blowfish and 3des ciphers) to Non-UltraVNC Servers. Any server using the same encryption method will work, e.g.: x11vnc -enc blowfish:./my.key
- Instead of hostname:display one can also supply "exec=command args..." to connect the viewer to the stdio of an external command (e.g. stunnel or socat) rather than using a TCP/IP socket. Unix domain sockets, e.g. /path/to/unix/socket, and a previously opened file descriptor fd=0, work too.
- Local Port Protections for STUNNEL and SSH: avoid having for long periods of time a listening port on the the local (VNC viewer) side that redirects to the remote side.
- Reverse (viewer listening) VNC connections can show a Popup dialog asking whether to accept the connection or not (-acceptpopup.) The extra info provided by UltraVNC Single Click reverse connections is also supported (-acceptpopupsc)
- Extremely low color modes: 64 and 8 colors in 8bpp (-use64/-bgr222, -use8/-bgr111)
- Medium color mode: 16bpp mode on a 32bpp Viewer display (-16bpp/-bgr565)
- For use with x11vnc's client-side caching -ncache method use the cropping option -ycrop n. This will "hide" the large pixel buffer cache below the actual display. Set to the actual height or use -1 for autodetection (also, tall screens, H > 2*W, are autodetected by default).
- Escape Keys: specify a set of modifier keys so that when they are all pressed down you can invoke Popup menu actions via keystrokes. I.e., a set of 'Hot Keys'. One can also pan (move) the desktop inside the viewport via Arrow keys or a mouse drag.
- Scrollbar width setting: -sbwidth n, the default is very thin, 2 pixels, for less distracting -ycrop usage.
- Selection text sending and receiving can be fine-tuned with the -sendclipboard, -sendalways, and -recvtext options.
- TightVNC compression and quality levels are automatically set based on observed network latency (n.b. not bandwidth.)
- Improvements to the Popup menu, all of these can now be changed dynamically via the menu: ViewOnly, Toggle Bell, CursorShape updates, X11 Cursor, Cursor Alphablending, Toggle Tight/ZRLE, Toggle JPEG, FullColor/16bpp/8bpp (256/64/8 colors), Greyscale for low color modes, Scaling the Viewer resolution, Escape Keys, Pipeline Updates, and others, including UltraVNC extensions.
- Maintains its own BackingStore if the X server does not.
- The default for localhost:0 connections is not raw encoding since same-machine connections are pretty rare. Default assumes you are using a SSL or SSH tunnel. Use -rawlocal to revert.
- XGrabServer support for fullscreen mode, for old window managers (-grab/-graball option).
- Fix for Popup menu positioning for old window managers (-popupfix option).
Special thank you to Karl for the great work,
porting many feature of UltraVNC to Unix/Linux OS request from many users of Linux