RDP (Remote Desktop Protocol) is a proprietary protocol for accessing a remote desktop. All modern Windows operating systems have it by default. However, a Linux system with a graphical interface and the xrdp package installed can also act as a server. This article focuses on Linux RDP clients and the basic principles of how the protocol works.
RDP operates at the application layer of the OSI model and is based on the Transport Layer Protocol (TCP). Its operation follows this process:
During the session, all computational tasks are handled by the server. The RDP client receives the graphical interface of the server's OS, which is controlled using input devices. The graphical interface may be transmitted as a full graphical copy or as graphical primitives (rectangles, circles, text, etc.) to save bandwidth. By default, RDP uses port 3389, but this can be changed if necessary.
A typical use case is managing a Windows remote desktop from a Linux system. From anywhere in the world, you can connect to it via the internet and work without worrying about the performance of the RDP client.
Originally, RDP was introduced in Windows NT 4.0. It comes preinstalled in all modern versions of Windows. However, implementing a Linux remote desktop solution requires special software.
Two methods are used to ensure the security of an RDP session: internal and external.
Standard RDP Security: This is an internal security subsystem. The server generates RSA keys and a public key certificate. When connecting, the RDP client receives these. If confirmed, authentication takes place.
Enhanced RDP Security: This uses external tools to secure the session, such as TLS encryption.
The most common RDP use case is connecting to a Windows server from another system, such as a Linux client.
To enable remote access, the target system must be configured correctly. The setup is fairly simple and works "out of the box" on most modern Windows editions.
Remmina is a remote desktop client with a graphical interface, written in GTK+ and licensed under GPL. In addition to RDP, it supports VNC, NX, XDMCP, SPICE, X2Go, and SSH.
One of its key features is extensibility via plugins. By default, RDP is not available until you install the freerdp plugin. After installing the plugin, restart Remmina, and RDP will appear in the menu.
To connect:
If you need to run Remmina on Windows, a guide is available on the official website.
Website: freerdp.com
FreeRDP is a fork of the now-unsupported rdesktop project and is actively maintained under the Apache license.
FreeRDP is a terminal-based client. It is configured and launched entirely via the command line. Its command structure is similar to rdesktop
, for example:
xfreerdp -u USERNAME -p PASSWORD -g WIDTHxHEIGHT IP
This command connects to the server at the given IP using the specified credentials and screen resolution.
Website: krdc
KRDC (KDE Remote Desktop Client) is the official remote desktop client for KDE that supports RDP and VNC protocols.
It offers a clean and straightforward interface consistent with KDE's Plasma desktop environment.
KRDC is ideal for users of KDE-based distributions like Kubuntu, openSUSE KDE, and Fedora KDE Spin. It integrates well with KDE's network tools and provides essential features such as full-screen mode, session bookmarking, and network browsing via Zeroconf/Bonjour.
KRDC is actively maintained by the KDE community and is available through most Linux package managers.
Website: gnome-connections
Vinagre was the former GNOME desktop's default remote desktop client. GNOME Connections, a modernized remote desktop tool for GNOME environments, has since replaced it.
GNOME Connections supports RDP and VNC, providing a simple and user-friendly interface that matches the GNOME design language. It focuses on ease of use rather than configurability, making it ideal for non-technical users or quick access needs.
Features:
Connections is maintained as part of the official GNOME project and is available in most distribution repositories.
Website: guacamole.apache.org
This is the simplest yet most complex remote desktop software for Linux.
Apache Guacamole is a client gateway for remote connections that works over HTML5. It supports Telnet, SSH, VNC, and RDP — all accessible via a web interface. Although the documentation is extensive, many ready-made scripts exist online to simplify basic setup.
To install:
wget https://git.io/fxZq5 -O guac-install.sh
chmod +x guac-install.sh
./guac-install.sh
After installation, the script will provide a connection address and password.
To connect to a Windows server via RDP:
The connection will now appear on the main page, ready for use.
RDP is a convenient tool for connecting to a remote machine running Windows or a Linux system with a GUI. The server requires minimal setup — just a few settings and firewall adjustments — and the variety of client programs offers something for everyone.