3.1.90 (3.2 beta1)
Pre-releaseAssets
- turbovnc-3.1.90.tar.gz is the official source tarball for this release. The automatically generated "Source code" assets are not supported.
- Refer to https://TurboVNC.org/Downloads/DigitalSignatures for information regarding the methods used to sign the files in this release and instructions for verifying the signatures.
- The binary packages were built with libjpeg-turbo 3.1.0 and Adoptium OpenJDK 21.0.6+7.
Packaging Changes
- A 32-bit Windows installer is no longer provided, since Windows 10 no longer supports 32-bit CPUs, Windows 11 never did support 32-bit CPUs, and 32-bit Windows support was removed in OpenJDK 21.
Support
Code Quality: Beta
Current Support Category: EOL
Documentation
User’s Guide for TurboVNC 3.2 beta1
Release Notes
Significant changes relative to 3.1.4:
-
The TurboVNC Server now incorporates zlib-ng, which accelerates zlib encoding significantly on x86, Arm, and PowerPC CPUs. Relative to TurboVNC 3.1.x, this improves the encoding performance of the Lossless Tight + Zlib encoding method, and of non-JPEG (low-color-depth) subrectangles encoded with one of the Tight + JPEG encoding methods, by approximately 10-15% on reasonably modern x86-64 CPUs and 25-30% on reasonably modern AArch64 CPUs.
-
Since all supported TurboVNC host platforms now contain new enough libraries to build xorg-server 1.20.x, the TurboVNC Server is now dynamically linked against the system-supplied versions of these libraries rather than statically linked against in-tree versions. The
TVNC_SYSTEMLIBSandTVNC_SYSTEMX11CMake variables have been removed, and the build system now behaves as if those variables are always on. A new CMake variable (TVNC_ZLIBNG) can be used on x86 platforms to disable the in-tree SIMD-accelerated zlib-ng implementation and build against the system-supplied zlib implementation. -
The TurboVNC Server now supports the DRI3 X extension when using open source GPU drivers. This enables GPU acceleration in a TurboVNC session without VirtualGL, although the performance will be better with VirtualGL. Refer to the description of the
-drinodeoption in the Xvnc man page for more details. -
The default X startup script (
xstartup.turbovnc) now throws an error, rather than trying to execute xinitrc or twm, if a session desktop file for the default window manager cannot be found. -
Configuration of the TurboVNC Viewer has been improved in the following ways:
- Advanced parameters (those that are rarely needed by end users) are now listed on a separate usage screen, which can be displayed by passing
-??to/opt/TurboVNC/bin/vncviewerorc:\Program Files\TurboVNC\vncviewer.bat. - TurboVNC-specific Java system properties can now be specified in ~/.vnc/default.turbovnc.
- The
turbovnc.ciphersuitesJava system property has been deprecated and replaced with a new advanced parameter (CipherSuites.) - The
TVNC_PROFILEenvironment variable has been deprecated and replaced with a new advanced parameter (Profile.) - The
TVNC_SERVERARGSenvironment variable and theturbovnc.serverargsJava system property have been deprecated and replaced with a new advanced parameter (ServerArgs.) - The
TVNC_SERVERDIRenvironment variable and theturbovnc.serverdirJava system property have been deprecated and replaced with a new advanced parameter (ServerDir.) - The
VNC_VIA_CMDandVNC_TUNNEL_CMDenvironment variables and theturbovnc.viaandturbovnc.tunnelJava system properties have been deprecated and replaced with a new advanced parameter (ExtSSHTemplate.)
- Advanced parameters (those that are rarely needed by end users) are now listed on a separate usage screen, which can be displayed by passing
-
The TurboVNC Server no longer enables the "Tight Encoding Without Zlib" RFB extension unless the VNC viewer advertises support for it. This prevents a fatal error that occurred in TightVNC-compatible VNC viewers (other than the TurboVNC Viewer) when attempting to select Compression Level 0 without JPEG while connected to a TurboVNC session.
-
The TurboVNC Viewer's built-in SSH client has been rebased on v0.2.23 of the JSch fork, which includes the following notable security, compatibility, and performance improvements:
-
Curve25519 key exchange (KEX) methods are now supported.
-
Diffie-Hellman Group 14 through 18 KEX methods are now supported.
-
The Ed25519 signature scheme is now supported.
-
Encrypt-then-MAC (EtM) Message Authentication Code (MAC) algorithms are now supported.
-
Galois/Counter Mode (GCM) ciphers are now supported.
-
The
hmac-sha2-512MAC algorithm (Hash-based Message Authentication Code with the SHA-512 hash algorithm) is now supported. -
Version 3 of the PuTTY Private Key (PPK) format is now supported.
-
RFC 8308 extension negotiation and the
server-sig-algsextension are now supported. -
The OpenSSH strict key exchange extension is now supported (which addresses CVE-2023-48795.)
-
Insecure signature schemes, KEX methods, and ciphers are now disabled by default, including:
- 3DES ciphers
- CBC (Cipher Block Chaining) ciphers
- Diffie-Hellman Group 1 KEX methods
- The DSS (Digital Signature Standard) signature scheme
- Signature schemes and KEX methods that use the SHA-1 hash algorithm
The
Ciphers,HostKeyAlgorithms,KexAlgorithms, andPubkeyAcceptedAlgorithmsOpenSSH configuration keywords or thejsch.cipher,jsch.server_host_key,jsch.kex, andjsch.client_pubkeyJava system properties can be used to re-enable insecure algorithms when connecting to legacy systems.
-
-
The TurboVNC Viewer's
SSHUserparameter has been removed. SSH usernames should now be specified by prefixing the VNC host or the gateway host with the username followed by @. This fixes an issue whereby separate SSH usernames could not be specified for theServerandViaparameters. -
For compatibility with OpenSSH, the TurboVNC Viewer now accepts
-F,-i, and-pas command-line aliases for (respectively) theSSHConfig,SSHKeyFile, andSSHPortparameters. -
The TurboVNC Viewer's built-in SSH client now supports jump hosts, i.e. multi-hop/multi-level SSH tunneling. If the
Jumpparameter or theProxyJumpOpenSSH config file keyword is specified, the viewer now creates an intermediate SSH tunnel to the jump host and uses that tunnel to create the final SSH tunnel to the VNC host. This eliminates the need to open RFB ports in the VNC host's firewall, it ensures that the RFB connection is encrypted on the server-area network, and it allows the TurboVNC Session Manager to be used with TurboVNC hosts that are behind an SSH gateway. The OpenSSH config file can be used to specify more than two levels of SSH tunneling.Similarly, when using an external SSH client, the default SSH command-line template for TCP connections with the
Jumpparameter now takes advantage of OpenSSH's ProxyJump feature.For compatibility with OpenSSH, the TurboVNC Viewer accepts
-Jas a command-line alias for theJumpparameter.The
Viaparameter has been retained for backward compatibility, but since it is now essentially a less secure and usable variant of theJumpparameter, it has been moved to the advanced usage screen and is no longer exposed in the TurboVNC Viewer Options dialog. -
The TurboVNC Viewer now supports bump scrolling in full-screen mode, which addresses a feature regression relative to the native Windows TurboVNC Viewer in TurboVNC 2.2.x. A new parameter (
BumpScroll) can be used to disable bump scrolling and use scrollbars instead. -
The Mac TurboVNC Viewer now hides the menu bar and dock in full-screen mode if bump scrolling is enabled. Setting the
turbovnc.fshidedocksystem property to0or1causes the viewer to always show or always hide the menu bar and dock in full-screen mode, irrespective of bump scrolling. -
The TurboVNC Server and Viewer now implement the Extended Mouse Buttons RFB extension, which allows forward and back mouse button events to be transmitted to the VNC server.
-
The TurboVNC Viewer toolbar icons have been updated with more modern icons derived from UltraVNC v1.2.4.
-
The TurboVNC Viewer's
CompatibleGUIparameter is now configurable using a new check box ("TurboVNC server") under the "Encoding" tab of the TurboVNC Viewer Options dialog. This facilitates using the standard 0-9 compression level scale with specific VNC hosts.