−25%

na Windows przy płatności rocznej, do 31.10. Do planów

EQVPS
Zacznij

Jak zainstalować pulpit na VPS z Linuksem i łączyć się przez Pulpit zdalny (XFCE + xrdp)

Graficzny pulpit na VPS z Ubuntu 24.04, otwierany zwykłą aplikacją Pulpit zdalny: XFCE i xrdp, dwa domyślne ustawienia, które wszystko psują (zła sesja, brak TLS), i konfiguracja, w której port 3389 w ogóle nie wychodzi do internetu. Ze zmierzonym miejscem na dysku i RAM na sesję.

Serwer z Linuksem nie ma ekranu i zwykle go nie potrzebuje. Czasem jednak tak: przeglądarka, która musi działać z adresu samego serwera, narzędzie wyłącznie graficzne albo pulpit, który można zostawić włączony i wrócić do niego z dowolnego komputera. Ten poradnik dodaje do Ubuntu 24.04 lekki pulpit XFCE i xrdp, żebyś otwierał go tą samą aplikacją Pulpit zdalny, co serwer z Windows.

Sprawdziliśmy każdy krok na naszym obrazie Ubuntu 24.04. Dwa domyślne ustawienia zepsuły pierwszą próbę, a poniżej naprawiamy oba. Potrzebny jest zwykły użytkownik z sudo — tworzy go poradnik konfiguracji Ubuntu. W przykładach nazywa się deploy.

1. Zainstaluj XFCE i xrdp

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

Na naszym serwerze z 2 GB trwało to około czterech i pół minuty i zajęło 1,7 GB dysku (2,7 GB zajęte przed, 4,4 GB po). Instaluje się xrdp 0.9.24, który od razu startuje i nasłuchuje na porcie 3389.

2. Niech xrdp uruchamia XFCE, a nie GNOME

Zaloguj się jako użytkownik, który będzie korzystał z pulpitu, i wykonaj:

echo xfce4-session > ~/.xsession

Bez tego pliku nasze pierwsze logowanie uruchomiło GNOME zamiast XFCE, a sesja od razu padła z komunikatem „Oh no! Something has gone wrong”. Pakiety z kroku 1 instalują przy okazji menedżer sesji GNOME, a Ubuntu ustawia go jako domyślny. Z plikiem ~/.xsession xrdp uruchamia XFCE.

3. Pozwól xrdp używać TLS

xrdp działa jako własny użytkownik xrdp, który nie może odczytać klucza prywatnego serwera. Nasze pierwsze połączenie zadziałało, ale /var/log/xrdp.log pokazał, dlaczego nie warto mu ufać:

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

Bez klucza xrdp wraca do starego szyfrowania RDP zamiast TLS. Daj mu dostęp i zrestartuj:

sudo adduser xrdp ssl-cert
sudo systemctl restart xrdp

Kolejne połączenie w naszym logu wyglądało tak: TLS connection established ... TLSv1.3. Swoje sprawdzisz w ten sam sposób:

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

4. Trzymaj port 3389 z dala od internetu

Po instalacji xrdp nasłuchuje na wszystkich adresach. W przeciwieństwie do Windows xrdp nie ma Network Level Authentication, więc każdy, kto dosięgnie portu, dostaje ekran logowania do zgadywania haseł. Niech nasłuchuje tylko na samym serwerze:

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

Ostatni wiersz powinien pokazać 127.0.0.1:3389. W naszym teście bezpośrednie połączenie z adresem serwera na 3389 było potem odrzucane, a tunel z następnego kroku działał dalej.

5. Łącz się przez SSH

Na swoim komputerze otwórz tunel. W Windows to samo polecenie ssh jest w PowerShell:

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

Na planie z NAT dodaj -p i osobisty port SSH z panelu. Nie zamykaj tego okna. Potem skieruj aplikację pulpitu zdalnego na localhost:13389 i zaloguj się jako deploy hasłem tego użytkownika:

  • Windows: Podłączanie pulpitu zdalnego (mstsc).
  • macOS: Windows App z App Store.
  • Linux: Remmina albo xfreerdp /v:localhost:13389 /u:deploy.

Port lokalny to 13389, a nie 3389, bo 3389 na twoim komputerze może już zajmować jego własny Pulpit zdalny. Za pierwszym razem aplikacja ostrzeże o nieznanym certyfikacie. To samopodpisany certyfikat serwera, a połączenie i tak jest szyfrowane wewnątrz SSH.

6. Co dostajesz

Dostajesz pulpit XFCE z panelem, menedżerem plików i terminalem. Na naszym serwerze jedna sesja dodała około 360 MB RAM: 388 MB zajęte przed połączeniem, 747 MB w trakcie sesji.

Zamknięcie okna pulpitu zdalnego nie wylogowuje. W naszym teście długie polecenie działało dalej po rozłączeniu. Gdy połączyliśmy się ponownie, xrdp wrócił nas do tej samej sesji (reconnected session ... display :10 w jego logu). Aby naprawdę zakończyć sesję, użyj Log Out w menu XFCE.

Jaki plan

Pulpit potrzebuje bardziej RAM niż CPU. Micro (2 vCPU, 2 GB, 25 GB, $5/mies.) spokojnie uciągnie XFCE i lekkie narzędzia. Jeśli w sesji ma być stale otwarta przeglądarka, weź Small z 4 vCPU i 4 GB za $8/mies. Oba plany są z NAT i tu to nie przeszkadza: pulpit zdalny idzie przez twój port SSH.

Jeśli tak naprawdę potrzebujesz programów dla Windows, uruchomi je bezpośrednio VPS z Windows, a Windows-Small kosztuje od $11/mies. Ubuntu 24.04 jest na stronie Ubuntu VPS i na każdym planie z Linuksem w dziale VPS. Płatność w USDT, USDC lub ETH w sieciach Base, Ethereum lub Polygon.

FAQ

Czy mogę łączyć się zwykłą aplikacją Pulpit zdalny z Windows?

Tak. xrdp mówi protokołem RDP, więc działają wbudowane Podłączanie pulpitu zdalnego w Windows, Windows App na macOS oraz Remmina lub xfreerdp na Linuksie. Łączysz się z localhost przez tunel SSH, a nie z adresem serwera.

Czy to działa na planie z NAT?

Tak. Połączenie RDP idzie wewnątrz SSH, a SSH to właśnie ten jedyny port, który plan z NAT przekierowuje na twój serwer. Tę konfigurację polecamy na każdym planie, bo port 3389 zostaje zamknięty dla internetu.

Ile RAM zużywa pulpit?

Na naszym serwerze testowym jedna sesja XFCE dodała około 360 MB: zajęta pamięć wzrosła z 388 MB do 747 MB. Plan Micro z 2 GB wystarcza na pulpit i lekkie narzędzia. Jeśli w sesji będzie działać przeglądarka, wygodniej mieć 4 GB.

Widzę czarny ekran albo „Oh no! Something has gone wrong”. Co jest nie tak?

xrdp uruchomił GNOME zamiast XFCE. Pakiety z kroku 1 instalują przy okazji menedżer sesji GNOME, a Ubuntu ustawia go jako domyślny w systemie. Utwórz ~/.xsession z wierszem xfce4-session dla użytkownika, który się loguje, i połącz się ponownie.

Czy mogę logować się przez RDP jako root?

xrdp domyślnie na to pozwala (AllowRootLogin=true w /etc/xrdp/sesman.ini), ale lepiej używać zwykłego użytkownika z sudo. Aby zablokować roota, ustaw AllowRootLogin=false i zrestartuj xrdp.

Komentarze

Brak komentarzy. Bądź pierwszy.

Zostaw komentarz

Komentarze są moderowane przed pojawieniem się.