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.shstabil (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.