Self-hosted remote support
Direct Line
RustDesk software [1] for remote support and maintenance is a recommended alternative to the established relay servers from commercial vendors. The relatively new project offers source code on the GitHub platform [2] under the GNU Affero General Public License version 3 (AGPLv3). In this article, I look at the free version's basic feature set.
Relay Servers
Depending on the operating system, Microsoft Remote Desktop Protocol (RDP), Apple Remote Desktop (ARD), and Virtual Network Computing (VNC) have all proven their value as protocols for accessing the graphical user interface (GUI) of remote computers on local networks. However, in today's world, with remote work becoming increasingly common, remote maintenance software that communicates securely and reliably over public networks is becoming indispensable for companies.
Regardless of whether users are looking for help on private company networks, family and friends need assistance in the home office, or someone runs into problems while on the move on a mobile network, contacting devices securely over the Internet is not easy. The established providers of remote maintenance software solve this dilemma by running publicly accessible relay servers.
Clients log on to the relay server, which typically assigns them a random identification number (ID) and establishes a secure connection by exchanging the ID and password. As a rule, however, the known players charge a monthly or annual fee and keep the source code of their software a secret. Besides the costs, you also need to trust the provider.
Cross-Platform, Free, Open Source
Development of RustDesk started in 2020 and has gained significant momentum since 2023. According to GitHub, the main developer of the software – operating under the company name Purslane Ltd. – is based in Singapore, although supporters around the world contribute to the project. As the name suggests, the software is based on the Rust programming language.
The optional server is also open source, at least with a basic feature set, and is available free of charge. Like its competitors, Purslane also offers a commercial Pro version at two rates. The additional functions include access control, LDAP integration, and single sign-on (SSO) in the top-of-the-range version [3].
The client component supports Microsoft Windows, macOS, and Linux – macOS and Linux in conjunction with both x86-64 and ARM processors, whereas Windows currently only runs on the x86-64 architecture. RustDesk also supports the iOS and Android mobile operating systems.
Apple users will find the client in the App Store. Android users can use the Google Play Store or the alternative F-Droid app store, or they can pick up an Android package (APK) directly from the project site. However, the APK requires relaxed security settings on the end device to sideload apps.
For macOS and Android, the online documentation describes the authorizations required to allow remote access. iOS devices can currently only provide support, but cannot accept incoming remote sessions themselves. The mobile clients also offer useful functions for remote control of the keyboard and mouse, including touch.
Linux Restrictions
The client for Linux currently primarily supports the X Window System (X11) for incoming remote access; support for the Wayland display server is still experimental with limited usability. Users of Wayland, which has widely replaced X11 as the standard, can offer help, but can only allow remote maintenance if they actively confirm the connection request. The client expressly points out that unattended access only works in conjunction with X11.
The Android app cannot be used meaningfully in the special case of Google ChromeOS because it is only designed for small mobile device displays and touch operation. However, you can install the Debian package of the RustDesk client in the ChromeOS Linux development environment and at least use it to establish remote sessions to other systems. The web client source code is not available on GitHub because it is still reserved for the commercial Pro version of the server, so I will not look at it in this article.
Before turning to the technology, I should mention that the project's online documentation is available in English and 10 other languages; unfortunately, the docs do not keep pace with the software's development. During testing, I discovered that various client and server functions and options are not described in the documentation or now behave differently. However, don't let this deter you. The basic functions of the RustDesk client and server are largely self-explanatory and practical.
Buy this article as PDF
(incl. VAT)