В настоящее время существует множество вариантов удалённого подключения к рабочим местам. Кроме того, стоимость аренды виртуальной машины хорошей производительности в облаке в месяц, сопоставима с ценой кружки хорошего кофе. Такие удалённые виртуальные машины удобно использовать с офисных слабых компьютеров, из поездок с ноутбуком и слабым Интернет-соединением, запускать на них длительные задачи, как например перепроведение документов в 1С, скачивание больших файлов.
Ещё можно организовать общий сервер на базе Ubuntu 20.04 в облаке или на мощном компьютере и совместно использовать его ресурсы с помощью удалённого доступа. В этой статье мы рассмотрим как выполняется установка XRDP Ubuntu 20.04.
Содержание статьи
Что такое XRDP
XRDP – это реализация протокола удалённого рабочего стола Microsoft (RDP) с открытым исходным кодом, которая позволяет графически управлять удалённой системой.
В отличие от коммерческого продукта, XRDP в Linux позволяет работать одновременно с одним компьютером или виртуальной машиной неограниченному числу пользователей, что позволяет активно использовать XRDP для разворачивания терминальных серверов на базе Ubuntu 20.04.
Установка XRDP на Ubuntu 20.04
Шаг 1. Поиск пакета
В Ubuntu 20.04 можно получить установить программу с помощью утилиты apt. Давайте установим XRDP из репозитория Ubuntu 20.04. Для этого, с помощью терминала, вы можете проверить, есть ли пакет xrdp в хранилище пакетов Ubuntu 20.04:
sudo apt search xrdp
Шаг 2. Обновление системы
Такой пакет есть, поэтому вы можете, предварительно обновив систему, простым путём установить xrdp на Ubuntu 20.04. Обновляем и перезагружаем для принятия изменений в ОС:
sudo apt –y update && sudo apt –y upgrade && sudo reboot
Шаг 3. Установка пакетов
После перезагрузки можно устанавливать XRDP из репозитория Ubuntu 20.04
sudo apt install xrdp
Обращаю внимание, что при установке генерируется сертификат, который необходим для функционирования RDP протокола, строка ниже указывает, что сертификат успешно создан:
Шаг 3. Настройка службы XRDP
В связи с особенностями системы Ubuntu 20.04, необходимо ввести пользователя xrdp, от имени которого работает XRDP в системе, в группу ssl-cert. Выполните команду:
sudo adduser xrdp ssl-cert
Затем добавьте службу xrdp в автозапуск и перезапустите её для применения изменений:
sudo systemctl enable xrdp
sudo systemctl restart xrdp
sudo systemctl status xrdp
Если результат выполнения команды выглядит так, как на скриншоте, то все прошло успешно. В финале предоставьте доступ из внешней сети к порту 3389 в файрволле Ubuntu 20.04:
sudo ufw allow from 192.168.2.0/24 to any port 3389
sudo ufw allow 3389
Шаг 4. Поиск IP адреса
С помощью любого клиента RDP можно подключаться по имени компьютера, возможно для этого нужно дополнительно настроить DNS. Лучше получить доступ по IP-адресу сервера, на котором установлен XRDP. Чтобы узнать IP-адрес, необходимо в терминале ввести команду:
sudo ip a
На моём скриншоте обведён IP-адрес виртуальной машины с Ubuntu 20.04, который автоматически присвоен сетевому интерфейсу eth1. Сетевых интерфейсов может быть несколько, у каждого из них могут быть свои IP-адреса, к которым так же можно подключаться по RDP.
Шаг 5. Проверка подключения
Стандартный клиент RDP для Windows называется Подключение к удалённому рабочему столу. В нем необходимо ввести IP-адрес или имя сервера, можно указать логин и пароль для входа в удалённую машину, настроить различные параметры взаимодействия.
На скриншоте ниже можно видеть окно для входа Xorg, куда требуется ввести логин, в моем случае user и пароль, в моем случае 1. Для смены раскладки клавиатуры в Ubuntu 20.04 используется комбинация клавиш Super+Пробел (с моей клавиатуры клавиши Windows + Пробел). Если в окне раскладка не меняется, и вводится пароль не на том языке, то необходимо отключить клиент RDP, закрыть его, поменять язык в Windows на нужный и снова подключиться к удалённой машине.
Настройка XRDP Ubuntu 20.04 практически завершена.
Ошибка черный экран XRDP в Ubuntu
Для исправления такой ошибки необходимо внести изменение в файл, расположенный в папке /etc/xrdp, запускающий каждую сессию удалённого доступа XRDP с именем startwm.sh:
Внесите изменения в файле startwm.sh:
Перед строкой:
как показано на скриншоте. Это обнуляет системные переменные, сформированные предыдущими сеансами. В результате, мы избавляемся от чёрного экрана при подключении по RDP к Ubuntu 20.04
После внесения изменений необходимо перезапустить службу XRDP:
sudo systemctl restart xrdp
И можно выполнить подключение к Ubuntu по RDP:
Выводы
Сегодня мы выяснили как подключиться к Ubuntu по RDP и настроить XRDP сервер. Клиенты RDP существуют для любого устройства: телефона, планшета, ноутбука, любого компьютера. Местонахождение этой виртуальной или реальной машины с Ubuntu 20.04 теперь не играет никакой роли, лишь бы был доступ к ней через интернет и установлен и настроен XRDP.
Добрый день!
Исправьте пожалуйста опечатки в статье
sudo apt searh xrdp > sudo apt search xrdp
sudo systemct enable xrdp > sudo systemctl enable xrdp
sudo systemct enable xrdp > sudo systemctl enable xrdp
Оно не работает с KDE, в SDDM не реализована поддержка XRDP.
Недавно подумывал над возможностью подключаться с Linux машины через приложение Remmina к ноуту на FreeBSD и вот такая беда с KDE, пришлось AnyDesk использовать. К винде через Remmina нормально подключается, но шрифты какие-то корявые немного.
Проделал все настройки. При подключении с любой машины в данной локальной сети (Win10, Ubuntu20) на удаленную(VirtualBox_Ubuntu18) вижу экран ввода пароля удаленной системы, после ввода запрашивает ввести еще раз, после этого просто вылетает и закрывает окно. В чем может быть причина?
перед подключением локально logout сделай у того пользователя, под кем пытаешься авторизоваться.
У меня точно также было пока Logout не сделал
Работает на KDE Neon 5.21
Сам спросил сам и отвечу, вдруг кому-то поможет. Конкретно мой случай, при попытке подключения к удаленному серверу ввожу логин и пароль удаленной системы и появляется уже начальный экран моего сервера с просьбой авторизироваться. Если ввожу снова логин-пароль то меня просто выбрасывает, если на данном этапе нажать "отмена", то успешно подключается к удаленной системе.
А звук не играет в терминалке, играет на хост системе 🙁 Перекомпиливать всё и вся?
Приветствую!
sudo apt searh xrdp - опечатка "searh"
Чтобы добавить пользователя в группу, команда должна быть:
sudo usermod -a -G ssl-cert xrdp
А мне выдало, что не возможно сохранить файл startwm.sh
не могу внести изменения в файл startwm.sh
не доступен для записи
и права не дает сменить
как поступить?
Открой папку etc через проводник, найди в ней папку xrdp, нажми на ней правой кнопкой мыши и выбери пункт "открыть как root", система запросит у тебя ввод пароля и откроет папку с root правами, а в ней уже можешь открівать данній файл и редактировать (таким образом файл тоже будет открыт с root правами).
А то что боковой панели нет в сеансе это нормально ?
как это исправить можно ?
Помогло команда (дает полный доступ к файлу):
sudo chmod ugo+rwx /etc/xrdp/startwm.sh
привет. Столкнулись с тем, что это все очень сильно лагает, работать удаленно практически не возможно.
Не можем найти нормальный аналог Виндовому RDP. все решения на линуксе с багами или лагают.((( Либо же мы что-то не знаем, спасайте)
у меня и после второго подтверждения подключается без проблем... тут дело случая)
Поправьте команду
sudo apt searh xrdp
на sudo apt search xrdp
Поправьте команду
sudo systemct enable xrdp
на
sudo systemctl enable xrdp
Спасибо автору за статью. У меня всё заработало. Правда тупит сильно, но всё же это лучше, чем ничего.
Доброго дня.
А я бьюсь с такой ошибкой:
sudo /etc/init.d/xrdp restart: command not found
Где грабли?
Kubuntu 22.04 kde plasma не получается запустить некоторые приложения, такие как telegram-desktop. Похоже что приложения требующие qt.
Выдает ошибку
Authorization required, but no authorization protocol specified
qt.qpa.xcb: could not connect to display :11.0
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vkkhrdisplay, vnc, wayland-egl, wayland, xcb.
Aborted
Как выкинуть текущего локального юзера залогиненного с системе, иначе если под ним же зайти по rdp, то проявляются проблемы. Это что надо зайти по ssh выполнить pkill -u user чтоли ?
Делаю так gnome-session-quit --force, иначе нормально не работает или вообще не работает