У 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 ГБ это заняло около четырёх с половиной минут и 1,7 ГБ диска (было занято 2,7 ГБ, стало 4,4 ГБ). Ставится 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 МБ памяти: 388 МБ занято до подключения и 747 МБ во время сессии.
Если закрыть окно удалённого рабочего стола, выхода из системы не будет. В нашем тесте долгая команда продолжала работать после отключения. Когда мы подключились снова, xrdp вернул нас в ту же сессию (reconnected session ... display :10 в его журнале). Чтобы действительно завершить сессию, нажмите Log Out в меню XFCE.
Какой тариф
Рабочему столу важнее память, чем процессор. Micro (2 vCPU, 2 ГБ, 25 ГБ, $5/мес) спокойно тянет XFCE и лёгкие инструменты. Если в сессии будет постоянно открыт браузер, берите Small с 4 vCPU и 4 ГБ за $8/мес. Оба тарифа с NAT, и здесь это не мешает: удалённый рабочий стол идёт через ваш SSH-порт.
Если на самом деле нужны программы для Windows, их напрямую запустит Windows VPS, а Windows-Small стоит от $11/мес. Ubuntu 24.04 есть на странице Ubuntu VPS и на всех Linux-тарифах в разделе VPS. Оплата в USDT, USDC или ETH в сетях Base, Ethereum или Polygon.
Комментарии
Пока нет комментариев. Будьте первым.