SSD Nodes Learn Hosting plans →
Anleitungen Matt ConnorVon Matt Connor · Aktualisiert 2026-08-25

Remote Desktop auf Linux-VPS mit xrdp und XFCE

Erfahren Sie, wie Sie einen echten Desktop mit xrdp und XFCE auf einem Linux-VPS starten, RDP per SSH-Tunnel statt Port 3389 absichern und RustDesk einordnen.

Was ein Remote Desktop auf einem Linux-VPS tatsächlich bedeutet

Auf die Suche nach „Remote Desktop auf einem Linux-VPS“ gibt es zwei unterschiedliche Produktarten. Wenn Sie die falsche auswählen, verlieren Sie einen ganzen Nachmittag. Die erste ist ein Vermittlungsdienst für den Fernzugriff. RustDesk ist das gängige Beispiel: Der selbst gehostete Server vermittelt eine Sitzung zwischen zwei Rechnern, die Sie bereits besitzen, etwa Ihrem Laptop und dem PC zu Hause. Auf dem gemieteten Server wird dabei kein Desktop dargestellt. Er stellt die beiden Endpunkte einander vor und leitet Pakete weiter, wenn diese einander nicht direkt erreichen können. Die zweite Möglichkeit ist ein tatsächlich auf dem gemieteten Server laufender grafischer Desktop. Die Pixel werden dabei im Rechenzentrum erzeugt und an Sie übertragen. Dazu gehören xrdp, VNC (virtual network computing) und ein Container-Arbeitsbereich.

Eine Frage trennt die beiden Varianten. Wo befindet sich der Mauszeiger, sobald die Verbindung funktioniert? Wenn er sich auf einem Rechner befindet, den Sie bereits besitzen, benötigen Sie einen Vermittlungsdienst. Wenn er sich auf dem VPS selbst befindet, benötigen Sie einen Desktop auf dem VPS. Der zweite Fall nimmt im Folgenden den meisten Raum ein, weil er in den meisten Anleitungen ausgelassen wird.

Welche Option passt zu Ihrer Aufgabe

  • RustDesk mit eigenem Relay. Die Sitzung läuft nicht über einen öffentlichen Rendezvous-Server unbekannter Betreiber, weil Sie das Schlüsselpaar selbst verwalten. Der kontrollierte Rechner wird dadurch nicht geschützt. Es bleibt der PC, auf dem Sie den Client installiert haben, mit dem dort gesetzten Passwort.
  • xrdp über einen SSH-Tunnel oder ein VPN. Dadurch sind Sie vor dem ständigen Scanning von TCP 3389 aus dem gesamten Internet und vor Passwortversuchen gegen die RDP-Anmeldemaske geschützt, weil dieser Port nicht dem Internet ausgesetzt ist. Ein schwaches Kontopasswort wird dadurch nicht vor Personen geschützt, die bereits Zugriff auf den Tunnel haben.
  • VNC über denselben Tunnel. Damit erhalten Sie eine Desktop-Sitzung, die eine Verbindungsunterbrechung übersteht. Das verwendete Protokoll ist älter und einfacher als RDP. VNC selbst schützt nichts: Die gesamte Sicherheitsfunktion übernimmt der Tunnel. VNC allein an einem öffentlichen Port ist daher hier die schlechteste Option.
  • Ein Container-Arbeitsbereich wie Webtop oder Kasm. Damit erhalten Sie einen Browser oder einen vollständigen Desktop in einem Container, den Sie löschen und neu erstellen können. Das schützt Ihren eigentlichen Rechner vor allem, worauf dieser Browser zugreift. Der Host wird dadurch nicht geschützt: Diese Images laufen mit weitreichenden Berechtigungen und enthalten einen passwortlosen sudo. Der Container ist daher keine Grenze, der Sie bei einer nicht vertrauenswürdigen Arbeitslast vertrauen sollten.

xrdp und XFCE unter Ubuntu 24.04 installieren

Ein VPS-Server-Image enthält keine grafische Desktopumgebung. Installieren Sie zunächst eine solche Umgebung und anschließend xrdp, den Open-Source-Server für RDP (Remote Desktop Protocol), also dasselbe Protokoll, das der Windows-Client verwendet. Wählen Sie eine ressourcenschonende Desktopumgebung. XFCE ist dafür die übliche Wahl.

sudo apt update
sudo apt install -y xrdp xorgxrdp xfce4 xfce4-goodies dbus-x11
systemctl is-active xrdp

Ubuntu 24.04 enthält xrdp 0.9.24 und xorgxrdp in der Komponente universe, Stand August 2026. Installieren Sie xorgxrdp ausdrücklich anhand seines Namens, obwohl es nur als empfohlenes Paket gilt: Es ist das X-Server-Backend, das xrdp für eine neue Sitzung startet. Ohne dieses Paket akzeptiert das Anmeldefenster Ihr Passwort und zeigt anschließend wieder direkt das Anmeldefenster an.

Legen Sie nun fest, welche Desktopumgebung die Sitzung starten soll. xrdp führt /etc/xrdp/startwm.sh aus. Diese Datei führt ~/.xsession aus, sofern die Datei vorhanden ist.

echo "xfce4-session" > ~/.xsession
chmod 644 ~/.xsession

Zuletzt muss xrdp den TLS-Schlüssel (Transport Layer Security) lesen können, den es den Clients anbietet. Die Datei hat den Modus 640 und gehört zur Gruppe ssl-cert.

ls -l /etc/ssl/private/ssl-cert-snakeoil.key
id xrdp

Die Ausgabe zeigt -rw-r----- 1 root ssl-cert. Wenn id xrdp ssl-cert nicht in der Gruppenliste ausgibt, führen Sie sudo adduser xrdp ssl-cert und anschließend sudo systemctl restart xrdp aus. Wenn Sie diesen Schritt überspringen, kann xrdp den Schlüssel nicht öffnen. /var/log/xrdp.log protokolliert den Fehler mit dem Dateinamen snakeoil in der Zeile.

Warum Sie Port 3389 nicht für das Internet öffnen sollten

TCP 3389 wird von praktisch allen Systemen im Internet kontinuierlich gescannt. Ein RDP-Anmeldefenster beantwortet jeden Passwortversuch. Öffnen Sie den Port nicht. Binden Sie xrdp stattdessen an die Loopback-Adresse und greifen Sie über einen Tunnel darauf zu, dem Sie bereits vertrauen.

Bearbeiten Sie /etc/xrdp/xrdp.ini und ändern Sie den Listener im Abschnitt [Globals].

[Globals]
port=tcp://.:3389

Die mitgelieferte Datei dokumentiert diese Syntax in ihren Kommentaren: tcp://.:3389 bedeutet 127.0.0.1:3389, und tcp://:3389 bedeutet jede Schnittstelle. Starten Sie den Dienst neu und prüfen Sie die Bind-Adresse. Ein Tippfehler sorgt hier sonst unbemerkt dafür, dass der Dienst weiterhin an allen Adressen lauscht.

sudo systemctl restart xrdp
ss -tlnp | grep 3389

Sie benötigen 127.0.0.1:3389. Wenn 0.0.0.0:3389 angezeigt wird, hat xrdp Ihre Änderung ignoriert. Meistens steht die Zeile dann unter einer anderen Abschnittsüberschrift weiter unten in der Datei.

Öffnen Sie nun den Tunnel von Ihrem eigenen Rechner aus.

ssh -N -L 3389:127.0.0.1:3389 you@vps.example.com

-N bedeutet „Verbindung öffnen, aber keinen Befehl ausführen“. Die Sitzung dient daher nur zur Weiterleitung des Ports. Lassen Sie dieses Terminal geöffnet und richten Sie den RDP-Client auf 127.0.0.1:3389. Auf einem Linux-Client ist die Software FreeRDP 3 installiert. Die Binärdatei heißt unter Ubuntu 24.04 xfreerdp3:

sudo apt install -y freerdp3-x11
xfreerdp3 /v:127.0.0.1:3389 /u:you /dynamic-resolution +clipboard /sound

Unter Windows verwenden Sie mstsc und geben 127.0.0.1 als Computer ein. FreeRDP fordert Sie beim ersten Verbindungsaufbau auf, dem Zertifikat zu vertrauen, und gibt Do you trust the above certificate? (Y/T/N) aus. Das ist beim selbstsignierten snakeoil-Zertifikat erwartungsgemäß.

Wenn ssh mit bind [127.0.0.1]:3389: Address already in use antwortet, verwendet bereits etwas auf Ihrem eigenen Rechner den Port 3389. Ändern Sie den lokalen Port mit ssh -N -L 13389:127.0.0.1:3389 you@vps.example.com und verbinden Sie sich mit 127.0.0.1:13389.

Ein Tunnel pro Person wird schnell unpraktisch. Für ein Team ist daher ein privates Netzwerk die bessere Lösung. Stellen Sie den Server hinter einem selbst gehosteten WireGuard-VPN bereit, geben Sie ihm die Tunnel-Adresse 10.8.0.1 und setzen Sie port=tcp://10.8.0.1:3389, damit xrdp nur innerhalb des VPN antwortet. In beiden Fällen sollte die Firewall-Regel für 3389 überhaupt nicht existieren. Wenn Sie nicht sicher sind, welche Zugriffe Ihre aktuellen Regeln erlauben, beginnen Sie mit den ufw-Firewall-Grundlagen auf einem VPS und prüfen Sie dies, bevor Sie die Verbindung herstellen, nicht danach.

Wie viel RAM verwendet ein Remote-Desktop auf einem 2-GB-VPS?

Die gewählte Desktop-Umgebung entscheidet darüber, ob ein Tarif mit 2 GB komfortabel nutzbar oder praktisch unbrauchbar ist. Die folgenden Werte sind gerundete typische Angaben für den belegten Arbeitsspeicher direkt nach der Anmeldung unter Ubuntu 24.04. Sie stammen aus veröffentlichten Vergleichen und wurden nicht auf Ihrem System gemessen. Messen Sie den tatsächlichen Verbrauch direkt nach der Verbindung mit free -m.

ChartTypical memory in use after login, Ubuntu 24.04 (published figures)
The data behind this chart
[
  {
    "label": "LXQt",
    "idle_ram_mb": 300
  },
  {
    "label": "XFCE",
    "idle_ram_mb": 400
  },
  {
    "label": "MATE",
    "idle_ram_mb": 500
  },
  {
    "label": "KDE Plasma",
    "idle_ram_mb": 800
  },
  {
    "label": "GNOME",
    "idle_ram_mb": "1,200"
  }
]

Bei diesen 5 Desktop-Umgebungen ist vor allem die Spannweite relevant. LXQt liegt bei ungefähr 300 MB und XFCE bei ungefähr 400 MB. Beide lassen auf einem System mit 2 GB noch ausreichend Speicher für einen Browser. GNOME benötigt bereits ungefähr 1,200 MB, bevor Sie ein einziges Fenster öffnen. Bei 2 GB konkurriert der Browser dadurch mit der Desktop-Umgebung um den verbleibenden Speicher.

Der Browser verursacht den eigentlichen Speicherbedarf, nicht die Desktop-Shell. Ein moderner Browser benötigt pro aktivem Tab typischerweise zwischen 150 und 400 MB. Ein VPS mit 2 GB und XFCE bewältigt daher einige Tabs und beginnt anschließend mit dem Swapping. Richten Sie Swap ein, damit das System langsamer wird, statt Prozesse zu beenden: sudo fallocate -l 2G /swapfile, anschließend sudo chmod 600 /swapfile, sudo mkswap /swapfile, sudo swapon /swapfile und eine entsprechende Zeile in /etc/fstab, damit die Konfiguration einen Reboot übersteht. Wenn ein Prozess ohne Warnung verschwindet, führen Sie dmesg | grep -i "killed process" aus. Diese Meldung bedeutet, dass der Out-of-Memory-Killer des Kernels den Prozess beendet hat. Meist trifft es den Browser.

Die CPU ist die zweite Begrenzung und wird leichter unterschätzt. Ein VPS hat keine GPU. X verwendet daher über llvmpipe das Software-Rendering. Die CPU berechnet dadurch jedes Pixel. Das Scrollen durch eine umfangreiche Seite und die Videowiedergabe zeigen sich beide als normale CPU-Auslastung. Die Bildrate sinkt, statt dass das System einfriert. Auf dieselbe Grenze stoßen Sie, wenn Sie sich fragen, ob Sie auf einem VPS spielen können: Für 3D-Anwendungen lautet die Antwort nein, und zwar genau aus diesem Grund.

Sound und Zwischenablage in einer xrdp-Sitzung

Ubuntu 24.04 verwendet PipeWire. Die Audio-Umleitung von xrdp wurde jedoch für PulseAudio entwickelt. Bei einer Neuinstallation funktionieren daher Bild und Video, aber es ist kein Ton zu hören. Ubuntu stellt die erforderliche Bridge als Paket bereit.

sudo apt install -y pipewire-module-xrdp pulseaudio-utils alsa-utils

Melden Sie sich vollständig von der RDP-Sitzung ab und anschließend erneut an. Das Modul wird beim Start der Sitzung geladen. Eine erneute Verbindung reicht nicht aus. Prüfen Sie anschließend innerhalb der Sitzung:

pactl list short sinks
speaker-test -c 2 -t wav -l 1

Sie sollten einen Sink sehen, dessen Name auf xrdp verweist. Über Ihren Client sollte außerdem der Testton zu hören sein. Wenn kein xrdp-Sink vorhanden ist, wurde das Modul nicht in diese Sitzung geladen. Ihr Client muss Audio ebenfalls anfordern. Bei /sound ist das das Flag xfreerdp3. Im Windows-Client aktivieren Sie dafür unter „Lokale Ressourcen“ die Einstellung „Remoteaudio“.

Die Text-Zwischenablage funktioniert in beide Richtungen, sobald xrdp-chansrv für Ihre Sitzung läuft. xrdp startet diesen Prozess automatisch. Prüfen Sie dies mit pgrep -a xrdp-chansrv. Wenn das Kopieren und Einfügen während einer Sitzung nicht mehr funktioniert, wurde der Prozess beendet. Eine erneute Verbindung startet ihn neu. Das Kopieren von Dateien statt Text verwendet einen separaten Kanal namens Laufwerksumleitung: /drive:home,/home/you auf xfreerdp3 bindet einen lokalen Ordner in die Remote-Sitzung ein.

Das polkit-Fenster und andere Fehler bei der ersten Anmeldung

Die häufigste Überraschung bei der ersten Anmeldung ist ein Dialog mit der Meldung Authentication is required to create a color managed device. Die Ursache ist eindeutig. Der Dienst colord fragt polkit nach einer Berechtigung. polkit gewährt diese Aktion stillschweigend nur einer Sitzung, die es als lokal angemeldet betrachtet. Eine RDP-Sitzung gilt nicht als lokal angemeldet. Deshalb fordert polkit Sie zur Eingabe eines Passworts auf. Ubuntu 24.04 wird mit polkit 124 ausgeliefert. Diese Version hat die alten lokalen Authority-Dateien .pkla entfernt. Anleitungen, die zum Anlegen von /etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla auffordern, haben unter 24.04 daher überhaupt keine Wirkung. Schreiben Sie stattdessen eine JavaScript-Regel.

/* /etc/polkit-1/rules.d/45-allow-colord.rules */
polkit.addRule(function(action, subject) {
    if (action.id.indexOf("org.freedesktop.color-manager.") === 0 &&
        subject.isInGroup("sudo")) {
        return polkit.Result.YES;
    }
});

Führen Sie sudo systemctl restart polkit aus und stellen Sie die Verbindung erneut her. Zwei weitere Fehler lassen sich anhand ihrer Symptome erkennen.

Das Anmeldefenster akzeptiert Ihr Passwort und erscheint sofort wieder. Die Sitzung wurde gestartet und ist anschließend beendet worden. Lesen Sie zuerst /var/log/xrdp-sesman.log und danach ~/.xsession-errors in Ihrem Home-Verzeichnis. Eine fehlende xorgxrdp, eine ~/.xsession, die einen nicht installierten Desktop angibt, ein Home-Verzeichnis, in das Sie nicht schreiben können, oder ein voller Datenträger führen alle zu diesem Verhalten.

Sie stellen die Verbindung her und sehen einen grauen Bildschirm mit einem X-Cursor. X wurde gestartet, der Desktop jedoch nicht. Das ist erneut ~/.xsession: Führen Sie xfce4-session manuell über SSH aus und lesen Sie die ausgegebene Fehlermeldung.

Die Funktion des selbst gehosteten RustDesk-Servers

RustDesk besteht aus zwei Prozessen. hbbs ist der ID- und Rendezvous-Server, bei dem sich Clients registrieren. hbbr ist das Relay, das die Sitzung überträgt, wenn eine direkte Peer-to-Peer-Verbindung fehlschlägt. Keiner der beiden Prozesse stellt einen Desktop bereit. Beide stammen aus einem einzigen Image. Dies ist die vom Projekt veröffentlichte Compose-Datei, bei der die Relay-Adresse auf Ihren eigenen Hostnamen geändert wurde:

services:
  hbbs:
    container_name: hbbs
    image: rustdesk/rustdesk-server:latest
    command: hbbs -r rustdesk.example.com:21117
    ports:
      - 21115:21115
      - 21116:21116
      - 21116:21116/udp
      - 21118:21118
    volumes:
      - ./data:/root
    restart: unless-stopped
  hbbr:
    container_name: hbbr
    image: rustdesk/rustdesk-server:latest
    command: hbbr
    ports:
      - 21117:21117
      - 21119:21119
    volumes:
      - ./data:/root
    restart: unless-stopped

Starten Sie die Container. Lesen Sie anschließend den öffentlichen Schlüssel aus, den der Server beim ersten Start erzeugt hat:

sudo docker compose up -d
sudo cat ./data/id_ed25519.pub

Jeder Client benötigt Ihren Hostnamen und diesen öffentlichen Schlüssel. Beide Werte werden in den Netzwerkeinstellungen des RustDesk-Clients eingetragen. Der passende private Schlüssel bleibt in ./data/id_ed25519. Wenn Sie das Datenverzeichnis löschen, erzeugt der Server ein neues Schlüsselpaar. Danach müssen Sie jeden Client mit dem neuen Schlüssel konfigurieren. Sichern Sie dieses Verzeichnis. Wenn Ihr Team damit künftig auf alle Rechner zugreift und es nicht bei einem Wochenendexperiment bleibt, lohnt es sich, einen dedizierten Build des RustDesk-Relays zu verwenden. Das betrifft insbesondere die Verwaltung des Ed25519-Schlüssels, festgelegte Image-Tags anstelle von latest und die Relay-Bandbreite, die Ihr Tarif letztlich berechnet.

Die Firewall muss diese Ports direkt zulassen. hbbs verwendet TCP 21115, 21116 und 21118 sowie UDP 21116. hbbr verwendet TCP 21117 und 21119.

sudo ufw allow 21115/tcp
sudo ufw allow 21116/tcp
sudo ufw allow 21116/udp
sudo ufw allow 21117/tcp
sudo ufw allow 21118/tcp
sudo ufw allow 21119/tcp

Warum RustDesk nicht hinter nginx oder Traefik betrieben werden kann

Leser, die TLS bereits für alle Dienste an einem Reverse Proxy terminieren, versuchen diese Konfiguration und scheitern. hbbs und hbbr verwenden eigene binäre Protokolle über TCP und UDP, nicht HTTP. Es gibt keinen Host-Header, anhand dessen das Routing erfolgen kann, und keine HTTP-Anfrage, die geprüft werden könnte. Daher gibt es für einen nginx-Block server oder einen HTTP-Router von Traefik nichts, worauf er passen kann. Der UDP-Listener auf Port 21116 hat auf keiner Protokollebene mit HTTP zu tun.

Zwei Dinge funktionieren. nginx kann die TCP-Ports mit einem stream-Block weiterleiten. Das ist eine einfache Weiterleitung auf Layer 4 und im üblichen Sinn kein Reverse Proxy. Auf den Ports 21118 und 21119 laufen die vom RustDesk-Webclient verwendeten WebSockets. Dabei handelt es sich um normales HTTP, sodass diese beiden Ports hinter Ihrem Proxy betrieben werden können. Richten Sie in diesem Fall Firewall-Regeln ein, damit nur der Proxy auf 21118 und 21119 zugreifen kann. hbbs verwendet den X-Real-IP-Header in WebSocket-Verbindungen, um die tatsächliche Client-Adresse zu ermitteln.

Ein kurzlebiger Browser in einem Container

Manchmal benötigen Sie lediglich einen sauberen Browser mit einer unveränderten IP-Adresse, der von Ihrem eigenen Rechner getrennt bleibt. Ein Container-Arbeitsbereich erfüllt diesen Zweck mit deutlich weniger installierter Software. Webtop von LinuxServer ist die schlanke Option:

services:
  webtop:
    image: lscr.io/linuxserver/webtop:latest
    container_name: webtop
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
    volumes:
      - /path/to/data:/config
    ports:
      - 127.0.0.1:3000:3000
      - 127.0.0.1:3001:3001
    shm_size: "1gb"
    restart: unless-stopped

Port 3000 stellt HTTP bereit, Port 3001 stellt HTTPS bereit. Sie öffnen den Desktop in einem Browser-Tab, ohne dass irgendwo ein RDP-Client erforderlich ist. Die Image-Tags decken XFCE, KDE, MATE und i3 auf mehreren Basisdistributionen ab. Die Dokumentation des Projekts weist ausdrücklich auf das Risiko hin: Der Container hat privilegierten Zugriff auf den Host und enthält ein Terminal mit passwortlosem sudo. Deshalb sollte er nicht ungeschützt aus dem Internet erreichbar sein. Aus diesem Grund sind die Ports oben an 127.0.0.1 gebunden und nicht an allen Adressen veröffentlicht. Greifen Sie über denselben SSH-Tunnel oder dasselbe VPN darauf zu, das Sie für xrdp verwendet haben.

Kasm Workspaces verfolgt dasselbe Konzept in deutlich größerem Umfang. Es bietet eine Webkonsole, Benutzerkonten und Container pro Sitzung, die beim Ende der Sitzung zurückgesetzt werden. Dafür ist mehr Leistung erforderlich, als ein kleiner VPS bereitstellt. Im August 2026 liegen die dokumentierten Mindestanforderungen bei 2 CPU-Kernen, 4 GB Arbeitsspeicher und 50 GB SSD. Zusätzlich verwendet jede Benutzersitzung standardmäßig 2 Kerne und 2768 MB. Ein Tarif mit 2 GB kann Kasm Workspaces nicht ausführen. Die Installation besteht aus einem Download und einem Skript:

cd /tmp
curl -O https://kasm-static-content.s3.amazonaws.com/kasm_release_1.17.0.7f020d.tar.gz
tar -xf kasm_release_1.17.0.7f020d.tar.gz
sudo bash kasm_release/install.sh

VNC und wo es weiterhin sinnvoll ist

VNC sendet Framebuffer-Aktualisierungen statt Zeichenbefehlen. Über eine langsame Verbindung wirkt es daher schwerfälliger als RDP. Außerdem bietet es keinen Audiokanal. VNC ist in einer Situation sinnvoll: Sie möchten eine Desktopsitzung nach der Trennung weiterlaufen lassen und bei der Rückkehr dieselbe Sitzung wieder vorfinden. TigerVNC unterstützt das. vncserver -localhost yes :1 bindet Xvnc an 127.0.0.1 auf TCP 5901 und lehnt Verbindungen von allen anderen Adressen ab. Deshalb tunneln Sie die Verbindung mit ssh -N -L 5901:127.0.0.1:5901 you@vps.example.com genauso wie bei xrdp. Veröffentlichen Sie niemals einen VNC-Port. Die meisten VNC-Server schützen das Passwort während des Handshakes, aber danach nichts mehr. Über einen öffentlichen Port können daher die Sitzungsinhalte im Netzwerkverkehr mitgelesen werden.

Ist ein VPS als Desktop geeignet?

Als tägliches Arbeitsgerät eher nicht. Die Nachteile summieren sich. Es gibt keine GPU, daher berechnet die CPU die gesamte Darstellung. Jeder Tastendruck wartet auf einen Round Trip über das Netzwerk. Eine Latenz von 40 ms, die sich in SSH problemlos anfühlt, fällt in einem Texteditor auf. Das Video wird zweimal komprimiert: einmal von der Website und ein weiteres Mal vom RDP-Encoder. Ihre Dateien liegen auf einem Datenträger, den Sie nicht selbst verwalten. Eine intensive Desktop-Nutzung verbraucht außerdem ein monatliches Bandbreitenkontingent, das für einen Webserver dimensioniert wurde.

Als kurzlebige Maschine ist ein VPS dagegen sehr gut geeignet. Genau dafür sind die genannten Eigenschaften vorteilhaft. Die IP-Adresse ist stabil und gehört zu einem Rechenzentrum. Das ist sinnvoll, wenn ein Dienst eine konsistente Adresse sehen muss. Die Maschine lässt sich innerhalb weniger Minuten aus einem Image neu erstellen. Wenn eine Sitzung Schadsoftware eingefangen hat, entsteht dadurch kein nennenswerter Aufwand. Die Maschine ist von Ihrer tatsächlichen Hardware isoliert und läuft weiter, wenn Ihr Laptop geschlossen ist. Eine stundenweise Abrechnung macht einen Wegwerf-Desktop günstig.

Wenn Sie noch klären, wofür die Maschine eingesetzt werden soll, lohnt sich die praktische Übersicht über die Einsatzmöglichkeiten eines VPS, bevor Sie darauf einen Desktop installieren. Wenn Sie den Desktop nur wegen einer Windows-Anwendung benötigen, vergleichen Sie vorher die tatsächlichen Unterschiede zwischen Linux und Windows Server damit. Die Lizenz ändert die Kosten der jeweiligen Lösung.

FAQ

Kann ich einen Remote-Desktop auf einem 2-GB-VPS betreiben?

Ja, mit einer ressourcenschonenden Desktop-Umgebung. XFCE oder LXQt benötigt nach der Anmeldung ungefähr 300 bis 400 MB. Damit bleibt ausreichend Speicher für einen Browser mit einigen Tabs. GNOME oder KDE Plasma lässt auf 2 GB kaum Speicher für Anwendungen übrig. Legen Sie eine 2-GB-Swap-Datei an. Dadurch wird der Rechner bei Speicherdruck langsamer, anstatt Prozesse zu beenden. Wenn etwas ohne Meldung verschwindet, prüfen Sie dmesg | grep -i "killed process" auf den Out-of-Memory-Killer des Kernels.

Sollte ich Port 3389 in der Firewall meines VPS öffnen?

Nein. TCP 3389 wird ständig gescannt. Ein öffentlich erreichbarer RDP-Anmeldeendpunkt lädt zu Passwortangriffen ein. Setzen Sie port=tcp://.:3389 in /etc/xrdp/xrdp.ini, damit xrdp nur auf 127.0.0.1 lauscht. Bestätigen Sie dies mit ss -tlnp | grep 3389 und greifen Sie mit ssh -N -L 3389:127.0.0.1:3389 you@vps.example.com darauf zu. Für mehr als ein oder zwei Personen binden Sie xrdp stattdessen an eine WireGuard-Adresse und nicht an das Loopback-Interface.

Warum fragt xrdp nach „Authentication is required to create a color managed device“?

Der Dienst colord fragt polkit nach einer Berechtigung. polkit gewährt diese Aktion nur einer lokal angemeldeten Sitzung automatisch. Eine RDP-Sitzung gilt nicht als lokal angemeldet. Deshalb erscheint bei jeder Anmeldung eine Passwortabfrage. Unter Ubuntu 24.04 bewirkt die alte .pkla-Lösung nichts, weil polkit 124 die lokalen Authority-Dateien nicht mehr unterstützt. Erstellen Sie /etc/polkit-1/rules.d/45-allow-colord.rules mit einer JavaScript-Regel, die für Aktions-IDs mit dem Präfix org.freedesktop.color-manager. den Wert polkit.Result.YES zurückgibt. Führen Sie anschließend sudo systemctl restart polkit aus.

Kann ich einen selbst gehosteten RustDesk-Server hinter nginx oder Traefik betreiben?

Nicht den Hauptdienst. hbbs und hbbr verwenden eigene Binärprotokolle anstelle von HTTP. Daher gibt es keinen Host-Header, anhand dessen weitergeleitet werden kann. Außerdem kann UDP 21116 einen HTTP-Proxy grundsätzlich nicht passieren. Öffnen Sie TCP 21115 bis 21119 sowie UDP 21116 in der Firewall. Lassen Sie die Clients direkt eine Verbindung herstellen. Die Websocket-Ports 21118 und 21119 werden vom Webclient verwendet. Sie basieren auf HTTP und können hinter einem Proxy betrieben werden. Falls Sie dies tun, beschränken Sie den Zugriff in der Firewall auf den Proxy. hbbs vertraut bei diesen Verbindungen X-Real-IP.

Warum gibt es in meiner xrdp-Sitzung keinen Ton?

Ubuntu 24.04 verwendet PipeWire, während die Audio-Umleitung von xrdp für PulseAudio entwickelt wurde. Daher fehlt der Ton, bis Sie die Bridge installieren. Führen Sie sudo apt install -y pipewire-module-xrdp aus. Melden Sie sich anschließend vollständig von der Sitzung ab und wieder an. Das Modul wird beim Sitzungsstart geladen. Eine erneute Verbindung lädt es nicht. Prüfen Sie mit pactl list short sinks, ob ein Sink mit dem Namen xrdp vorhanden ist. Stellen Sie außerdem sicher, dass der Client Audio anfordert. Dafür wird das Flag /sound bei xfreerdp3 verwendet. Im Windows-Client heißt die Einstellung „Remote audio“.