−25%

op Windows bij jaarbetaling, tot 31/10. Naar de pakketten

EQVPS
Aan de slag

Een desktop installeren op een Linux-VPS en verbinden met Extern bureaublad (XFCE + xrdp)

Een grafische desktop op een Ubuntu 24.04-VPS die je opent met de gewone Extern bureaublad-app: XFCE en xrdp, de twee standaardinstellingen die het breken (verkeerde sessie, geen TLS) en een opzet waarin poort 3389 nooit op internet uitkomt. Met gemeten schijfruimte en RAM per sessie.

Een Linux-server heeft geen scherm, en meestal heeft hij er ook geen nodig. Soms wel: een browser die vanaf het adres van de server zelf moet draaien, een tool die alleen een grafische interface heeft, of een desktop die je laat draaien en vanaf elke computer weer oppakt. Deze handleiding voegt de lichte desktop XFCE en xrdp toe aan Ubuntu 24.04, zodat je hem opent met dezelfde Extern bureaublad-app als een Windows-server.

We hebben elke stap op onze Ubuntu 24.04-image getest. Twee standaardinstellingen lieten de eerste poging mislukken, en hieronder lossen we beide op. Je hebt een gewone gebruiker met sudo nodig; de Ubuntu-installatiehandleiding maakt er een aan. In de voorbeelden heet hij deploy.

1. Installeer XFCE en xrdp

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

Op onze server met 2 GB duurde dit ongeveer vierenhalve minuut en kostte het 1,7 GB schijf (2,7 GB gebruikt vooraf, 4,4 GB erna). Het installeert xrdp 0.9.24, dat meteen start en op poort 3389 luistert.

2. Laat xrdp XFCE starten, niet GNOME

Log in als de gebruiker die de desktop gaat gebruiken en voer uit:

echo xfce4-session > ~/.xsession

Zonder dit bestand startte onze eerste login GNOME in plaats van XFCE, en de sessie stopte meteen met "Oh no! Something has gone wrong". De pakketten uit stap 1 halen ook de sessiebeheerder van GNOME binnen, en Ubuntu maakt die de standaard. Met ~/.xsession op zijn plek start xrdp XFCE.

3. Laat xrdp TLS gebruiken

xrdp draait als eigen gebruiker xrdp, en die kan de privésleutel van de server niet lezen. Onze eerste verbinding werkte, maar /var/log/xrdp.log liet zien waarom je die niet moet vertrouwen:

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

Zonder de sleutel valt xrdp terug op de oude RDP-versleuteling in plaats van TLS. Geef hem toegang en herstart:

sudo adduser xrdp ssl-cert
sudo systemctl restart xrdp

De volgende verbinding stond in ons log als TLS connection established ... TLSv1.3. Je controleert de jouwe op dezelfde manier:

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

4. Houd poort 3389 van internet af

Na installatie luistert xrdp op elk adres. Anders dan Windows heeft xrdp geen Network Level Authentication, dus iedereen die de poort bereikt krijgt een inlogscherm om wachtwoorden op te raden. Laat hem alleen op de server zelf luisteren:

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

De laatste regel moet 127.0.0.1:3389 tonen. In onze test werd een directe verbinding met het adres van de server op 3389 daarna geweigerd, en de tunnel uit de volgende stap bleef werken.

5. Verbind via SSH

Open op je eigen computer een tunnel. Op Windows heeft PowerShell hetzelfde ssh-commando:

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

Op een NAT-pakket voeg je -p en de persoonlijke SSH-poort uit je dashboard toe. Laat dat venster open. Richt daarna je Extern bureaublad-app op localhost:13389 en log in als deploy met het wachtwoord van die gebruiker:

  • Windows: Verbinding met extern bureaublad (mstsc).
  • macOS: de Windows App uit de App Store.
  • Linux: Remmina, of xfreerdp /v:localhost:13389 /u:deploy.

De lokale poort is 13389 en niet 3389, omdat 3389 op je computer al bezet kan zijn door zijn eigen Extern bureaublad. De eerste keer waarschuwt de app voor een certificaat dat hij niet kent. Dat is het zelfondertekende certificaat van de server, en de verbinding is binnen SSH toch al versleuteld.

6. Wat je krijgt

Je krijgt een XFCE-desktop met een paneel, een bestandsbeheerder en een terminal. Op onze server kwam er met één sessie ongeveer 360 MB RAM bij: 388 MB in gebruik voordat we verbonden, 747 MB tijdens de sessie.

Het venster van Extern bureaublad sluiten logt je niet uit. In onze test liep een lang commando door nadat we de verbinding verbraken. Toen we opnieuw verbonden, zette xrdp ons terug in dezelfde sessie (reconnected session ... display :10 in zijn log). Wil je de sessie echt beëindigen, gebruik dan Log Out in het XFCE-menu.

Welk pakket

De desktop heeft meer aan RAM dan aan CPU. Micro (2 vCPU, 2 GB, 25 GB, $5/maand) draait XFCE en lichte tools zonder moeite. Wil je een webbrowser in de sessie open houden, neem dan Small met 4 vCPU en 4 GB voor $8/maand. Beide zijn NAT-pakketten, en dat is hier geen probleem: Extern bureaublad gaat via je SSH-poort.

Heb je eigenlijk Windows-software nodig, dan draait een Windows-VPS die direct, en Windows-Small begint bij $11/maand. Ubuntu 24.04 staat op de Ubuntu VPS-pagina en op elk Linux-pakket onder VPS. Betalen gaat in USDT, USDC of ETH op Base, Ethereum of Polygon.

FAQ

Kan ik verbinden met de gewone Extern bureaublad-app van Windows?

Ja. xrdp spreekt het RDP-protocol, dus de ingebouwde Verbinding met extern bureaublad in Windows, de Windows App op macOS en Remmina of xfreerdp op Linux werken allemaal. Je verbindt via een SSH-tunnel met localhost in plaats van met het adres van de server.

Werkt dit op een NAT-pakket?

Ja. De RDP-verbinding loopt binnen SSH, en SSH is precies de ene poort die een NAT-pakket naar je server doorstuurt. Deze opzet raden we op elk pakket aan, omdat poort 3389 zo dicht blijft voor internet.

Hoeveel RAM gebruikt de desktop?

Op onze testserver kwam er met één XFCE-sessie ongeveer 360 MB bij: het gebruikte geheugen ging van 388 MB naar 747 MB. Het Micro-pakket met 2 GB is genoeg voor de desktop en lichte tools. Draai je een webbrowser in de sessie, dan is 4 GB prettiger.

Ik krijg een zwart scherm of "Oh no! Something has gone wrong". Wat is er mis?

xrdp startte GNOME in plaats van XFCE. De pakketten uit stap 1 halen ook de sessiebeheerder van GNOME binnen, en Ubuntu maakt die de systeemstandaard. Maak voor de gebruiker die inlogt ~/.xsession met xfce4-session aan en verbind opnieuw.

Kan ik via RDP als root inloggen?

xrdp staat het standaard toe (AllowRootLogin=true in /etc/xrdp/sesman.ini), maar gebruik liever een gewone gebruiker met sudo. Wil je root blokkeren, zet dan AllowRootLogin=false en herstart xrdp.

Reacties

Nog geen reacties. Wees de eerste.

Laat een reactie achter

Reacties worden gemodereerd voordat ze verschijnen.