Skip to content
matt335672 edited this page Jan 25, 2023 · 16 revisions

General

What is RDP?

RDP stands for Remote Desktop Protocol. It's the protocol developed by Microsoft and used in Windows. The protocol specification is open and can be found at Microsoft's site. The most basic part is named [MS-RDPBGCR] (RDP Basic Connectivity and Remoting Graphics). Many other extensions can be found by name prefixed MS-RDP.

What is xrdp?

xrdp, usually spelled in lowercase, is an open-source implementation of the RDP server.

Why can't I log the same user on on the graphical console and over xrdp at the same time?

If you're using a systemd-based distro, you will have noted that if you're logged in on the system graphical console, you can't use the same user to log in over xrdp successfully. Similarly, a user logged in over xrdp will have trouble logging in on the system graphical console.

On systemd-based systems, multiple sessions for the same user share a single instance of the session D-Bus. This allows systemd to support long-lived services for the user, but causes confusion for desktop services which are not expecting to be shared.

This has been raised with systemd - see https://github.com/systemd/systemd/issues/24932, but a possible solution has been rejected.

Issue #2491 is looking into either possible workarounds or enforcing a single session per user on systemd-based systems.

Currently, if your use-case requires the same user to have multiple graphical sessions on one machine you will need to use a distro which does not use systemd.

Backends

How to choose backend xorgxrdp vs xvnc

Xvnc is the original backend. It supports most features, and is adequate for many use cases. In this mode, xrdp works as a bridge between the RFB(VNC) and RDP protocols. Xorg is an internal Xorg module implemented by xorgxrdp. Because it doesn't need data to be transferred from the Xvnc server over VNC, performance is almost always better, although a few users on high latency WAN links find Xvnc works better. Most new development targets this module first. Using this module does however introduce a dependency on the X server internal interfaces, so system upgrades which change this can occasionally require a new version of xorgxrdp to be provided. [matt335672]

Clipboard

What types of data does clipboard transfer supported?

Clipboard transfer(sharing) supports the following types of data in both directions (server to client, client to server).

  • text
  • image
  • file

How can I restrict outbound clipboard?

Set RestrictOutboundClipboard to true in sesman.ini and restart xrdp-sesman. See also man sesman.ini(5).

How can I restrict clipboard file transfer but allow other clipboard transfers?

It is possible since v0.9.15. Set EnableFuseMount to false in sesman.ini and restart xrdp-sesman. See also man sesman.ini(5).

If EnableFuseMount is set to false, also drive redirection will be disabled at the same time. These cannot be controlled separately.

Clone this wiki locally