Skip to main content

Debian – Remote Desktop mit XRDP + KDE Plasma (X11)

Ziel: LAN-only Remote Desktop ohne Cloud, mit KDE Plasma, dynamischer Auflösung und Copy+Paste per Zwischenablage. XRDP erstellt dabei eine eigene X11-Session (nicht deine lokale Wayland-Session).


Server: Installation (Debian 13)

Wichtig: Wenn kein sudo installiert ist, arbeite als root (z.B. su -).

Pakete installieren

apt update

# XRDP Server + Xorg-Treiber für XRDP
apt install xrdp xorgxrdp

# KDE Plasma (minimal) + DBus-X11 Helfer
apt install plasma-desktop plasma-workspace dbus-x11

Dienste aktivieren

systemctl enable --now xrdp xrdp-sesman

Security: Nur im LAN erlauben

XRDP lauscht auf TCP 3389. Das sollte im Normalfall nur im LAN erreichbar sein. Wenn du Firewall nutzt (nftables), erlaube nur dein LAN-Subnetz.

# Beispiel (anpassen!): nur 10.100.6.0/24 darf auf 3389
# Datei: /etc/nftables.conf (oder dein eigenes Ruleset)
#
# tcp dport 3389 ip saddr 10.100.6.0/24 accept
# tcp dport 3389 drop

Server: Plasma sauber für XRDP starten

XRDP startet standardmäßig /etc/xrdp/startwm.sh. Damit Plasma stabil läuft (ohne GPU/OpenGL Drama), muss die Session per DBus gestartet werden und KWin/Qt sollen auf Software-Rendering ausweichen.

Datei bearbeiten

Datei: /etc/xrdp/startwm.sh

Inhalt (Beispiel, bewusst simpel):

#!/bin/sh

# XRDP-Session: keine "fremde" DBus-Adresse übernehmen
unset DBUS_SESSION_BUS_ADDRESS

# XRDP/Xorg hat oft kein GLX/EGL -> Plasma/Qt auf Software zwingen
export QT_QUICK_BACKEND=software

# KWin Compositor möglichst "harmlos" halten
# (Plasma 6 kann trotzdem versuchen OpenGL zu nutzen – diese Variablen helfen meist)
export KWIN_COMPOSE=QPainter
export KWIN_NO_COMPOSITING=1

# Scaling/DPI stabil halten (optional)
export QT_AUTO_SCREEN_SCALE_FACTOR=0
export QT_SCALE_FACTOR=1

# Plasma X11 starten (nicht Wayland)
exec dbus-run-session startplasma-x11

Danach XRDP einmal neu laden:

systemctl restart xrdp xrdp-sesman

Client: Verbindung herstellen (Linux → Debian XRDP)

FreeRDP (schnell, dynamische Auflösung, Clipboard)

Auf dem Client (Debian/KDE):

apt update
apt install freerdp3-x11

Verbinden (Beispiel):

xfreerdp3 /v:SERVER-IP /u:jj /d:. /dynamic-resolution +clipboard /cert:tofu
  • /dynamic-resolution: Auflösung passt sich beim Fenster-Resize an
  • +clipboard: Copy+Paste zwischen lokal und remote
  • /d:.: “lokal”, also keine AD-Domain
  • /cert:tofu: Trust-On-First-Use (erste Verbindung speichert Zertifikat-Fingerprint)

Windows-Client (mstsc.exe)

Du kannst auch mit dem eingebauten Windows-RDP-Client verbinden. Für “keine Domain”: Benutzername oft als .\jj (Punkt-Backslash) eingeben. Dynamisches Resizing hängt vom Client ab; FreeRDP ist dafür meist besser steuerbar.


Copy & Paste (Zwischenablage) – was muss stimmen?

  • Im Client muss Clipboard-Weiterleitung aktiv sein (bei FreeRDP: +clipboard).
  • Auf dem Server darf XRDP den Clipboard-Channel nicht deaktivieren.

Server-Check: Datei /etc/xrdp/xrdp.ini – dort gibt es einen Abschnitt für Channels. Achte darauf, dass cliprdr nicht deaktiviert ist.


Dynamische Auflösung – typische Stolperfallen

  • Dynamisches Resizing klappt am zuverlässigsten mit xorgxrdp + FreeRDP /dynamic-resolution.
  • Wenn Plasma “komisch” skaliert, setze die Skalierungs-Variablen im startwm.sh stabil (siehe oben).
  • Wenn KWin wegcrasht, hast du keine Fensterleisten und alles klebt oben links (dann läuft kein Window Manager).

Mini-Troubleshooting (wenn Fenster nicht bewegbar / keine Titlebar)

In der XRDP-Session (oder per SSH) prüfen:

pgrep -a kwin_x11 || echo "kwin_x11 fehlt"
pgrep -a plasmashell || echo "plasmashell fehlt"

Wenn kwin_x11 fehlt, ist das der Grund für “alles oben links, nix bewegbar”. Dann stimmt meist der Plasma-Start (DBus/Compositor/GL) nicht.


Hinweis zu “Apps wie Spotify” in XRDP

Manche Apps basieren auf Chromium/Electron und zicken ohne GPU/OpenGL gern herum. Wenn eine App in der XRDP-Session nicht startet, probiere (für genau diese App) GPU zu deaktivieren (z.B. per Startparameter --disable-gpu), statt global Sicherheitsoptionen zu verschlechtern.