−25%

på Windows vid årsbetalning, till 31/10. Till paketen

EQVPS
Kom igång

Så installerar du ett skrivbord på en Linux-VPS och ansluter med Fjärrskrivbord (XFCE + xrdp)

Ett grafiskt skrivbord på en Ubuntu 24.04-VPS som du öppnar med den vanliga Fjärrskrivbordsappen: XFCE och xrdp, de två standardinställningarna som förstör det (fel session, ingen TLS) och en uppsättning där port 3389 aldrig vetter mot internet. Med uppmätt diskutrymme och RAM per session.

En Linux-server har ingen skärm, och för det mesta behöver den ingen. Ibland gör den det: en webbläsare som måste köras från serverns egen adress, ett verktyg som bara har grafiskt gränssnitt eller ett skrivbord du kan låta stå på och återvända till från vilken dator som helst. Den här guiden lägger till det lätta skrivbordet XFCE och xrdp i Ubuntu 24.04, så att du kan öppna det med samma Fjärrskrivbordsapp som du använder mot en Windows-server.

Vi testade varje steg på vår Ubuntu 24.04-avbild. Två standardinställningar fick första försöket att misslyckas, och vi rättar båda nedan. Du behöver en vanlig användare med sudo; guiden för att sätta upp Ubuntu skapar en. I exemplen heter den deploy.

1. Installera XFCE och xrdp

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

På vår server med 2 GB tog det ungefär fyra och en halv minut och använde 1,7 GB disk (2,7 GB använt före, 4,4 GB efter). Det installerar xrdp 0.9.24, som startar direkt och lyssnar på port 3389.

2. Låt xrdp starta XFCE, inte GNOME

Logga in som den användare som ska använda skrivbordet och kör:

echo xfce4-session > ~/.xsession

Utan den här filen startade vår första inloggning GNOME i stället för XFCE, och sessionen dog direkt med "Oh no! Something has gone wrong". Paketen från steg 1 drar också in GNOME:s sessionshanterare, och Ubuntu gör den till standard. Med ~/.xsession på plats startar xrdp XFCE.

3. Låt xrdp använda TLS

xrdp körs som sin egen användare xrdp, och den användaren kan inte läsa serverns privata nyckel. Vår första anslutning fungerade, men /var/log/xrdp.log visade varför man inte ska lita på den:

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

Utan nyckeln faller xrdp tillbaka på den gamla RDP-krypteringen i stället för TLS. Ge den åtkomst och starta om:

sudo adduser xrdp ssl-cert
sudo systemctl restart xrdp

Nästa anslutning stod i vår logg som TLS connection established ... TLSv1.3. Du kan kontrollera din på samma sätt:

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

4. Håll port 3389 borta från internet

När xrdp är installerat lyssnar det på alla adresser. Till skillnad från Windows har xrdp ingen Network Level Authentication, så den som når porten får en inloggningsskärm att gissa lösenord på. Låt den bara lyssna på själva servern:

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

Sista raden ska visa 127.0.0.1:3389. I vårt test nekades sedan en direktanslutning till serverns adress på 3389, och tunneln i nästa steg fungerade fortfarande.

5. Anslut via SSH

Öppna en tunnel på din egen dator. På Windows har PowerShell samma ssh-kommando:

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

På en NAT-plan lägger du till -p och den personliga SSH-porten från kontrollpanelen. Låt fönstret vara öppet. Peka sedan din Fjärrskrivbordsapp mot localhost:13389 och logga in som deploy med den användarens lösenord:

  • Windows: Anslutning till fjärrskrivbord (mstsc).
  • macOS: Windows App från App Store.
  • Linux: Remmina, eller xfreerdp /v:localhost:13389 /u:deploy.

Den lokala porten är 13389 i stället för 3389, eftersom 3389 redan kan vara upptagen på din dator av dess eget Fjärrskrivbord. Första gången varnar appen för ett certifikat den inte känner igen. Det är serverns självsignerade certifikat, och anslutningen är ändå krypterad inuti SSH.

6. Vad du får

Du får ett XFCE-skrivbord med panel, filhanterare och terminal. På vår server lade en session till ungefär 360 MB RAM: 388 MB använt innan vi anslöt, 747 MB under sessionen.

Att stänga Fjärrskrivbordsfönstret loggar inte ut dig. I vårt test fortsatte ett långt kommando efter att vi kopplat ner. När vi anslöt igen satte xrdp oss tillbaka i samma session (reconnected session ... display :10 i dess logg). Vill du verkligen avsluta sessionen använder du Log Out i XFCE-menyn.

Vilken plan

Skrivbordet behöver RAM mer än CPU. Micro (2 vCPU, 2 GB, 25 GB, $5/mån) kör XFCE och lätta verktyg utan problem. Om du tänker ha en webbläsare öppen i sessionen tar du Small med 4 vCPU och 4 GB för $8/mån. Båda är NAT-planer, och det gör inget här: Fjärrskrivbordet går genom din SSH-port.

Om det du egentligen behöver är Windows-program kör en Windows-VPS dem direkt, och Windows-Small börjar på $11/mån. Ubuntu 24.04 finns på Ubuntu VPS-sidan och på alla Linux-planer under VPS. Betalning sker i USDT, USDC eller ETH på Base, Ethereum eller Polygon.

FAQ

Kan jag ansluta med den vanliga Fjärrskrivbordsappen i Windows?

Ja. xrdp talar RDP-protokollet, så den inbyggda Anslutning till fjärrskrivbord i Windows, Windows App på macOS och Remmina eller xfreerdp på Linux fungerar. Du ansluter till localhost genom en SSH-tunnel i stället för till serverns adress.

Fungerar det här på en NAT-plan?

Ja. RDP-anslutningen går inuti SSH, och SSH är just den enda port som en NAT-plan vidarebefordrar till din server. Det är uppsättningen den här guiden rekommenderar på alla planer, eftersom port 3389 förblir stängd mot internet.

Hur mycket RAM använder skrivbordet?

På vår testserver lade en XFCE-session till ungefär 360 MB: använt minne gick från 388 MB till 747 MB. Micro-planen med 2 GB räcker för skrivbordet och lätta verktyg. Kör du en webbläsare i sessionen är 4 GB bekvämare.

Jag får en svart skärm eller "Oh no! Something has gone wrong". Vad är fel?

xrdp startade GNOME i stället för XFCE. Paketen från steg 1 drar också in GNOME:s sessionshanterare, och Ubuntu gör den till systemstandard. Skapa ~/.xsession med xfce4-session för användaren som loggar in och anslut igen.

Kan jag logga in över RDP som root?

xrdp tillåter det som standard (AllowRootLogin=true i /etc/xrdp/sesman.ini), men använd hellre en vanlig användare med sudo. Vill du spärra root sätter du AllowRootLogin=false och startar om xrdp.

Kommentarer

Inga kommentarer än. Bli först.

Lämna en kommentar

Kommentarer modereras innan de visas.