−25%

за Windows при годишно плащане, до 31.10. Към плановете

EQVPS
Започни

Как да инсталирате работен плот на Linux VPS и да се свързвате с Отдалечен работен плот (XFCE + xrdp)

Графичен работен плот на VPS с Ubuntu 24.04, който се отваря с обикновеното приложение за Отдалечен работен плот: XFCE и xrdp, двете настройки по подразбиране, които го развалят (грешна сесия, без TLS), и схема, при която порт 3389 изобщо не гледа към интернет. С измерено място на диска и RAM на сесия.

Linux сървърът няма екран и в повечето случаи не му трябва. Понякога обаче трябва: браузър, който трябва да работи от адреса на самия сървър, инструмент само с графичен интерфейс или работен плот, който оставяте пуснат и към който се връщате от всеки компютър. Това ръководство добавя към Ubuntu 24.04 лекия работен плот XFCE и xrdp, за да го отваряте със същото приложение за Отдалечен работен плот, което бихте ползвали за Windows сървър.

Тествахме всяка стъпка на нашия образ с Ubuntu 24.04. Две настройки по подразбиране провалиха първия опит, а по-долу оправяме и двете. Нужен ви е обикновен потребител със sudo; ръководството за настройка на Ubuntu създава такъв. В примерите той се казва deploy.

1. Инсталирайте XFCE и xrdp

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

На нашия сървър с 2 GB това отне около четири минути и половина и 1,7 GB диск (2,7 GB заети преди, 4,4 GB след това). Инсталира се xrdp 0.9.24, който веднага стартира и слуша на порт 3389.

2. Нека xrdp стартира XFCE, а не GNOME

Влезте като потребителя, който ще ползва работния плот, и изпълнете:

echo xfce4-session > ~/.xsession

Без този файл първото ни влизане пусна GNOME вместо XFCE и сесията веднага падна с „Oh no! Something has gone wrong“. Пакетите от стъпка 1 инсталират и мениджъра на сесии на GNOME, а Ubuntu го прави вариант по подразбиране. С ~/.xsession xrdp стартира XFCE.

3. Позволете на xrdp да използва TLS

xrdp работи като собствен потребител xrdp, който не може да прочете частния ключ на сървъра. Първата ни връзка тръгна, но /var/log/xrdp.log показа защо не трябва да ѝ се вярва:

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

Без ключа xrdp се връща към старото RDP криптиране вместо към TLS. Дайте му достъп и рестартирайте:

sudo adduser xrdp ssl-cert
sudo systemctl restart xrdp

Следващата връзка в нашия журнал изглеждаше като TLS connection established ... TLSv1.3. Своя сървър можете да проверите по същия начин:

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

4. Не пускайте порт 3389 към интернет

След инсталацията xrdp слуша на всички адреси. За разлика от Windows, xrdp няма Network Level Authentication, така че всеки, който стигне до порта, получава екран за вход, на който да налучква пароли. Нека слуша само на самия сървър:

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

Последният ред трябва да показва 127.0.0.1:3389. В нашия тест директна връзка към адреса на сървъра на 3389 след това се отказваше, а тунелът от следващата стъпка продължаваше да работи.

5. Свързвайте се през SSH

На своя компютър отворете тунел. В Windows същата команда ssh я има в PowerShell:

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

При план с NAT добавете -p и личния SSH порт от панела. Не затваряйте прозореца. После насочете приложението за отдалечен работен плот към localhost:13389 и влезте като deploy с паролата на този потребител:

  • Windows: Връзка с отдалечен работен плот (mstsc).
  • macOS: Windows App от App Store.
  • Linux: Remmina или xfreerdp /v:localhost:13389 /u:deploy.

Локалният порт е 13389, а не 3389, защото 3389 на вашия компютър може вече да е зает от собствения му Отдалечен работен плот. Първия път приложението предупреждава за непознат сертификат. Това е самоподписаният сертификат на сървъра, а връзката и без това е криптирана вътре в SSH.

6. Какво получавате

Получавате работен плот XFCE с панел, файлов мениджър и терминал. На нашия сървър една сесия добави около 360 MB RAM: 388 MB заети преди свързване и 747 MB по време на сесията.

Затварянето на прозореца на отдалечения работен плот не ви изписва. В нашия тест дълга команда продължи да работи след прекъсването. Когато се свързахме отново, xrdp ни върна в същата сесия (reconnected session ... display :10 в неговия журнал). За да прекратите сесията наистина, използвайте Log Out в менюто на XFCE.

Кой план

На работния плот му трябва повече RAM, отколкото процесор. Micro (2 vCPU, 2 GB, 25 GB, $5/мес.) спокойно движи XFCE и леки инструменти. Ако в сесията постоянно ще има отворен браузър, вземете Small с 4 vCPU и 4 GB за $8/мес. И двата са планове с NAT и тук това не пречи: отдалеченият работен плот минава през вашия SSH порт.

Ако всъщност ви трябват програми за Windows, ще ги пусне директно Windows VPS, а Windows-Small струва от $11/мес. Ubuntu 24.04 е на страницата Ubuntu VPS и на всеки Linux план в раздела VPS. Плащането е в USDT, USDC или ETH в мрежите Base, Ethereum или Polygon.

Въпроси

Мога ли да се свързвам с обикновеното приложение за Отдалечен работен плот от Windows?

Да. xrdp говори протокола RDP, затова работят вградената Връзка с отдалечен работен плот в Windows, Windows App на macOS и Remmina или xfreerdp на Linux. Свързвате се с localhost през SSH тунел, а не с адреса на сървъра.

Работи ли това на план с NAT?

Да. RDP връзката минава вътре в SSH, а SSH е точно единственият порт, който планът с NAT пренасочва към сървъра ви. Тази схема препоръчваме на всеки план, защото порт 3389 остава затворен за интернет.

Колко RAM използва работният плот?

На тестовия ни сървър една сесия на XFCE добави около 360 MB: заетата памет се качи от 388 MB на 747 MB. Планът Micro с 2 GB стига за работния плот и леки инструменти. Ако в сесията ще работи браузър, 4 GB са по-удобни.

Виждам черен екран или „Oh no! Something has gone wrong“. Какво става?

xrdp е стартирал GNOME вместо XFCE. Пакетите от стъпка 1 инсталират и мениджъра на сесии на GNOME, а Ubuntu го прави системен по подразбиране. Създайте ~/.xsession с xfce4-session за потребителя, който влиза, и се свържете отново.

Мога ли да вляза през RDP като root?

По подразбиране xrdp го позволява (AllowRootLogin=true в /etc/xrdp/sesman.ini), но по-добре използвайте обикновен потребител със sudo. За да блокирате root, задайте AllowRootLogin=false и рестартирайте xrdp.

Коментари

Още няма коментари. Бъди първият.

Остави коментар

Коментарите се модерират преди да се появят.