New Linux Client

2023-03-17

We are happy to announce the new Let's Connect! Linux client!

A major internal change is that a library has been written in Go that will be used by all Let's Connect! clients in the future. This library was written from scratch to include all functionalities the Let's Connect! client needs to have and is more complete compared to the previous Python based Linux implementation. Many known issues have been fixed and some missing features were added.

Probably not many users know the Linux client always had a Command Line Interface (CLI) available. This CLI has been improved and has been rewritten to achieve feature parity with the GUI. The CLI also has an interactive mode that is more user friendly.

As far as GUI changes go, the "Renew Session" button has been added according to the updated API specification and the client now ensures proper handling of VPN session expiry. Additionally, the settings page has been removed as it is no longer needed. Servers can now be removed by right-clicking on a server entry on the main screen of the app.

To improve the stability of the client, proper timeouts are now used, giving better feedback when the user has an unreliable Internet connection. The client now also ensures that servers do not send unnecessary amounts of data back to the client by limiting the amount of data that is read.

The new library also implements OAuth. This OAuth implementation is built in-house and includes improvements for new OAuth standards such as the iss parameter. Additionally, this fixes an issue where the old OAuth dependency was causing issues on older Linux distributions (which provide an older version of this dependency).

Other new features and improvements include the implementation of the WireGuard to OpenVPN failover and a keyring implementation using D-Bus (org.freedesktop.secrets) to securely store OAuth tokens from the servers. The client now also supports dark theme, which can be set using the GTK_THEME environment variable, for example: GTK_THEME=Adwaita:dark letsconnect-gui.

The WireGuard to OpenVPN failover is useful so that servers can move to WireGuard without worrying about UDP being blocked on the user's network. The client now checks whether the VPN connection properly works. If it has failed to receive any data within a 10 second period it will automatically fall back to OpenVPN if the server supports that. This feature will also follow for OpenVPN which cannot currently detect MTU issues when connecting over UDP.

Instructions on how to install the Linux client can be found here.

Blog Index