−25%

auf Windows bei Jahreszahlung, bis 31.10. Zu den Tarifen

EQVPS
Loslegen

Desktop auf einem Linux-VPS installieren und per Remotedesktop verbinden (XFCE + xrdp)

Ein grafischer Desktop auf einem Ubuntu-24.04-VPS, den Sie mit der normalen Remotedesktop-App öffnen: XFCE und xrdp, die zwei Voreinstellungen, die es kaputt machen (falsche Sitzung, kein TLS), und ein Aufbau, bei dem Port 3389 nie ins Internet zeigt. Mit gemessenem Platzbedarf und RAM pro Sitzung.

Ein Linux-Server hat keinen Bildschirm, und meistens braucht er auch keinen. Manchmal doch: ein Browser, der von der Adresse des Servers aus laufen muss, ein Werkzeug nur mit grafischer Oberfläche oder ein Desktop, den Sie laufen lassen und von jedem Computer aus wieder aufrufen können. Diese Anleitung fügt Ubuntu 24.04 den schlanken Desktop XFCE und xrdp hinzu. Dann öffnen Sie ihn mit derselben Remotedesktop-App wie einen Windows-Server.

Wir haben jeden Schritt auf unserem Ubuntu-24.04-Image getestet. Zwei Voreinstellungen haben den ersten Versuch zum Scheitern gebracht, unten beheben wir beide. Sie brauchen einen normalen Benutzer mit sudo; die Ubuntu-Einrichtungsanleitung legt einen an. In den Beispielen heißt er deploy.

1. XFCE und xrdp installieren

sudo apt update
sudo apt install -y xfce4 xfce4-goodies xrdp

Auf unserem Server mit 2 GB dauerte das etwa viereinhalb Minuten und belegte 1,7 GB Festplatte (vorher 2,7 GB belegt, danach 4,4 GB). Installiert wird xrdp 0.9.24, das sofort startet und auf Port 3389 lauscht.

2. xrdp XFCE starten lassen, nicht GNOME

Melden Sie sich als der Benutzer an, der den Desktop nutzen wird, und führen Sie aus:

echo xfce4-session > ~/.xsession

Ohne diese Datei startete unsere erste Anmeldung GNOME statt XFCE, und die Sitzung brach sofort mit „Oh no! Something has gone wrong“ ab. Die Pakete aus Schritt 1 ziehen den Sitzungsmanager von GNOME mit, und Ubuntu macht ihn zum Standard. Mit ~/.xsession startet xrdp XFCE.

3. xrdp TLS nutzen lassen

xrdp läuft unter einem eigenen Benutzer xrdp, und der kann den privaten Schlüssel des Servers nicht lesen. Unsere erste Verbindung klappte, aber /var/log/xrdp.log zeigte, warum man ihr nicht trauen sollte:

Cannot read private key file /etc/xrdp/key.pem: Permission denied
Non-TLS connection established from ::ffff:127.0.0.1

Ohne den Schlüssel fällt xrdp auf die alte RDP-Verschlüsselung statt TLS zurück. Geben Sie ihm Zugriff und starten Sie neu:

sudo adduser xrdp ssl-cert
sudo systemctl restart xrdp

Die nächste Verbindung stand in unserem Log als TLS connection established ... TLSv1.3. Ihren Server prüfen Sie genauso:

sudo grep -E "TLS connection|Non-TLS" /var/log/xrdp.log | tail -2

4. Port 3389 vom Internet fernhalten

Nach der Installation lauscht xrdp auf allen Adressen. Anders als Windows hat xrdp keine Network Level Authentication: Wer den Port erreicht, bekommt einen Anmeldebildschirm, an dem er Passwörter raten kann. Lassen Sie ihn nur auf dem Server selbst lauschen:

sudo sed -i 's|^port=3389$|port=tcp://127.0.0.1:3389|' /etc/xrdp/xrdp.ini
sudo systemctl restart xrdp
ss -ltn | grep 3389

Die letzte Zeile sollte 127.0.0.1:3389 zeigen. In unserem Test wurde eine direkte Verbindung zur Adresse des Servers auf 3389 danach abgewiesen, der Tunnel aus dem nächsten Schritt funktionierte weiter.

5. Über SSH verbinden

Öffnen Sie auf Ihrem eigenen Computer einen Tunnel. Unter Windows gibt es denselben ssh-Befehl in PowerShell:

ssh -L 13389:localhost:3389 deploy@YOUR.SERVER.IP

Bei einem NAT-Tarif ergänzen Sie -p und den persönlichen SSH-Port aus dem Dashboard. Lassen Sie das Fenster offen. Richten Sie dann Ihre Remotedesktop-App auf localhost:13389 und melden Sie sich als deploy mit dessen Passwort an:

  • Windows: Remotedesktopverbindung (mstsc).
  • macOS: die Windows App aus dem App Store.
  • Linux: Remmina oder xfreerdp /v:localhost:13389 /u:deploy.

Der lokale Port ist 13389 statt 3389, weil 3389 auf Ihrem Computer schon vom eigenen Remotedesktop belegt sein kann. Beim ersten Mal warnt die App vor einem unbekannten Zertifikat. Das ist das selbstsignierte Zertifikat des Servers, und die Verbindung ist innerhalb von SSH ohnehin verschlüsselt.

6. Was Sie bekommen

Sie bekommen einen XFCE-Desktop mit Leiste, Dateimanager und Terminal. Auf unserem Server kamen mit einer Sitzung etwa 360 MB RAM dazu: 388 MB belegt vor der Verbindung, 747 MB während der Sitzung.

Wenn Sie das Remotedesktop-Fenster schließen, werden Sie nicht abgemeldet. In unserem Test lief ein langer Befehl nach dem Trennen weiter. Als wir uns wieder verbanden, setzte xrdp uns in dieselbe Sitzung zurück (reconnected session ... display :10 in seinem Log). Um die Sitzung wirklich zu beenden, nutzen Sie Log Out im XFCE-Menü.

Welcher Tarif

Der Desktop braucht eher RAM als CPU. Micro (2 vCPU, 2 GB, 25 GB, $5/Monat) betreibt XFCE und leichte Werkzeuge bequem. Wenn in der Sitzung dauerhaft ein Webbrowser offen sein soll, nehmen Sie Small mit 4 vCPU und 4 GB für $8/Monat. Beides sind NAT-Tarife, und das ist hier kein Problem: Der Remotedesktop läuft über Ihren SSH-Port.

Wenn Sie eigentlich Windows-Software brauchen, läuft sie direkt auf einem Windows-VPS, und Windows-Small gibt es ab $11/Monat. Ubuntu 24.04 steht auf der Ubuntu-VPS-Seite und bei jedem Linux-Tarif unter VPS. Bezahlt wird in USDT, USDC oder ETH auf Base, Ethereum oder Polygon.

FAQ

Kann ich mich mit der normalen Windows-Remotedesktop-App verbinden?

Ja. xrdp spricht das RDP-Protokoll, also funktionieren die eingebaute Remotedesktopverbindung unter Windows, die Windows App unter macOS und Remmina oder xfreerdp unter Linux. Sie verbinden sich über einen SSH-Tunnel mit localhost statt mit der Adresse des Servers.

Funktioniert das mit einem NAT-Tarif?

Ja. Die RDP-Verbindung läuft innerhalb von SSH, und SSH ist genau der eine Port, den ein NAT-Tarif an Ihren Server weiterleitet. Diesen Aufbau empfehlen wir ohnehin bei jedem Tarif, weil Port 3389 dabei für das Internet geschlossen bleibt.

Wie viel RAM braucht der Desktop?

Auf unserem Testserver kamen mit einer XFCE-Sitzung etwa 360 MB dazu: Der belegte Speicher stieg von 388 MB auf 747 MB. Der Tarif Micro mit 2 GB reicht für den Desktop und leichte Werkzeuge. Wenn in der Sitzung ein Webbrowser läuft, sind 4 GB angenehmer.

Ich sehe einen schwarzen Bildschirm oder „Oh no! Something has gone wrong“. Was ist los?

xrdp hat GNOME statt XFCE gestartet. Die Pakete aus Schritt 1 ziehen den Sitzungsmanager von GNOME mit, und Ubuntu macht ihn zum Systemstandard. Legen Sie für den Benutzer, der sich anmeldet, ~/.xsession mit dem Inhalt xfce4-session an und verbinden Sie sich erneut.

Kann ich mich per RDP als root anmelden?

xrdp erlaubt das standardmäßig (AllowRootLogin=true in /etc/xrdp/sesman.ini), nutzen Sie aber besser einen normalen Benutzer mit sudo. Um root zu sperren, setzen Sie AllowRootLogin=false und starten Sie xrdp neu.

Kommentare

Noch keine Kommentare. Sei der Erste.

Kommentar hinterlassen

Kommentare werden vor der Anzeige moderiert.