Ubuntu на ubuntu удаленный стол

Обновлено: 28.03.2024

Особенно нетерпеливых отсылаю сразу в конец статьи где будет ссылка на готовый .deb-пакет для установки.

А для всех остальных…

Что это такое и для чего это нужно

В первую очередь данное решение можно использовать как очень бюджетный вариант реализации безопасного доступа к интернет сотрудникам небольшой фирмы.

История номер один. (основано на реальных событиях)

История номер два. (основано на реальных событиях)

Предположим один из сотрудников принес на флешке взломанную лицензионную программу которую поставил к себе на компьютер, в данном случае не рассматриваем доменные структуры AD, речь идет о небольших фирмах где не содержат штат сетевиков. После установки данной программы она спокойно может пожаловаться разработчикам через интернет что на компьютере по такому то IP кто то поставил взломанную версию и спокойно пользуется.
Дальше дело техники. Причем разборки могут быть очень серьёзные.
При реализации варианта терминал сервера данный вариант так же не проходит так как у локального компьютера просто нет доступа к сети и любая программа шпион не сможет вынести сор из избы.

Предисловие

Данное руководство, в первую очередь, ориентировано на начинающих системных администраторов желающих разобраться в сути вопроса. Так что для продвинутых в тексте может оказаться много лишнего. В руководстве постараюсь максимально подробно описать процесс настройки linux терминального сервера использующегося для безопасного интернет серфинга и описать решение известных проблем.

Для того чтобы все прошло успешно настоятельно советую, для начала, использовать те же самые версии ПО что и в данном описании. Потом, на основе полученного опыта, вы сможете реализовать данный проект на удобном Вам оборудовании и ПО.

Сборка и тестирование производилось на виртуальной машине от virtualbox. При использовании чистого железа так же могут возникнуть проблемы с настройками драйверов. Из программного обеспечения были использованы Ubuntu 16.04 LTS server / x11RDP 7.6 / xRPD 0.9.2. На других версиях данное решение не тестировалось и не проверялось.

XRDP является специальным прокси-сервером который прослушивает RDP port 3389 на предмет внешних запросов. Принимает на него подключения и далее, в зависимости от настроек, переадресовывает их на внутренние порты OS.

Для установки скомпилируем необходимые пакеты:


По умолчанию в репозиториях UBUNTU 16.04 находится пакет xRDP v0.6.0 в котором я не смог найти решения для рализации передачи звука. Поэтому собирать новую версию xRDP будем из исходников.

На многих сайтах советуют клонировать свежую версию при помощи git:

Но, в данном случае, возникает риск того что, на момент тестирования, вы можете столкнуться с совершенно новой версией имеющей значительные отличия от v0.9.2 и что то может пойти не так. Поэтому скачиваем и распаковываем фиксированный пакет XRDP v0.9.2 с сайта разработчиков.


Перейдем в каталог с XRPD и начнем компиляцию:


На данном этапе необходимо указать компилятору что в готовую сборку необходимо добавить модуль поддержки звука. Более подробно об этом можно прочесть в файле который теперь находится на вашем диске в каталоге с исходниками XRDP.

Установим библиотеки необходимые для переадресации звука.


Добавляем ключ активирующий звук --enable-load_pulse_modules при конфигурации пакета, собираем и устанавливаем.


Теперь скопируем ключ защиты. В данном файле содержится пара ключей RSA, используемая для аутентификации удаленного клиента. Открытый ключ является самозаверяющим. Если этого не сделать то при подключении получим ошибку протокола RDP.


Добавляем XRDP в автозагрузку. Для автозагрузки будем использовать systemd:


Проверим прошла ли установка:

Если все сделано верно то теперь можно попробовать подключиться к серверу при помощи любого RDP клиента с другого компьютера. Или установить на этой же тестовой машине клиент freerdp:


И подключится локально внутри системы.


Дальше стартовой заставки дело не пойдет потому что у нас пока не установлена серверная часть ПО которой прокси сервер XRDP был бы должен передать управление.

x11RDP

В качестве серверной части могут быть использованы серверные модули поддерживающие разные протоколы передачи данных. В данном варианте будем использовать x11RDP v7.6.

Небольшое отступление

Все дело в том, что установленный нами ранее прокси XRDP 0.9.2 не может, без доработок, перебрасывать подключения к предыдущей версии сервера x11RDP v7.1 на котором, в свою очередь, отсутствует известная проблема с переключением раскладок клавиатуры ru/en как при создании нового сеанса так и при переподключении к старой сессии.

А при использовании старой версии прокси XRDP 0.6.0 с которой работает сервер x11RDP v7.1 мы не сможем осуществить переброс звука так как XRDP 0.6.0 не поддерживает ключ --enable-load_pulse_modules.

Для установки x11RDP v 7.6 вернемся в каталог:


Создадим каталог для установки пакета и произведем сборку.


Сборка происходит достаточно долго 15-30 мин. Команда time позволит нам увидеть, по окончании процесса процесса, сколько было затрачено времени.


Теперь у нас есть и RDP прокси и RDP сервер которому прокси передаст управление. Но нет графического приложения которое RDP сервер сможет вывести на экран.

Для дальнейшего тестирования, чтобы убедиться что все установки прошли успешно, установим графический эмулятор терминала xterm.


И попробуем подключиться к серверу со стороны, или локально если ранее установили freerdp.


Теперь из меню необходимо выбрать x11RDP чтобы указать прокси какому именно серверу должно быть передано управление и ввести логин и пароль к ubuntu серверу.

Если все верно то на экране мы увидим графический интерфейс терминала xterm.

Настройка языковой консоли и режима переключения языков

Почти все основные настройки клавиатуры в ubuntu осуществляются при прмощи пакета setxkbmap.

Для начала закроем терминальную сессию и вернемся в консоль нашего ubuntu сервера
посмотрим что творится с клавиатурой.

Теперь подключимся к серверу терминалов и в терминале xterm выполним ту же команду:

$ Trying to build keymap using the following components:
keycodes: xfree86+aliases(qwerty)
types: complete
compat: complete
symbols: pc+us+inet(pc105)
geometry: pc(pc105)
xkb_keymap xkb_keycodes < include «xfree86+aliases(qwerty)» >;
xkb_types < include «complete» >;
xkb_compat < include «complete» >;
xkb_symbols < include «pc+us+inet(pc105)» >;
xkb_geometry < include «pc(pc105)» >;
>;

Есть русская консоль и определены клавиши переключения языка alt_shift. На сервере терминалов противоположность:

Есть только английский язык и клавиши переключения языка не определены.

Есть еще одна странность. Локально, на сервере ubuntu, модель клавиатуры определилась как pc104:

А на сервере терминалов как pc105:

Если вы решили производить тестирование не на виртуальной машине, а на чистом железе
то результат может отличаться в зависимости от типа использованного оборудования.

Вернемся к ubuntu серверу и посмотрим что установлено в конфигурационных файлах системы
по умолчанию

Установим hwinfo (сборщик информации об аппаратной части системы) и посмотрим информацию о железе:

Откроем в любом текстовом редакторе (я использую в примере редактор nano) файл конфигурации системы и исправим тип клавиатуры по умолчанию в соответствии с данными полученными от hwinfo:

Файл клавиатурных настроек программы XRDP 0.9.2 находится в файле
/etc/xrdp/xrdp_keyboard.ini. Эти данные прокси передает xRDP серверу как данные клиента который производит подключение. Откроем его и добавим в конец данного файла блок поддержки русской локали.

Предварительно исправив модель клавиатуры на верную model=pc104 (в оригнальной версии установлена pc105):


Добавляем в конец файла:

[rdp_keyboard_ru]
keyboard_type=4
keyboard_subtype=1
model=pc104
options=grp:alt_shift_toggle
rdp_layouts=default_rdp_layouts
layouts_map=layouts_map_ru

[layouts_map_ru]
rdp_layout_us=us,ru
rdp_layout_ru=us,ru

Подключаемся к терминальному серверу. Проверяем клавиатурные настройки:

$ Trying to build keymap using the following components:
keycodes: xfree86+aliases(qwerty)
types: complete
compat: complete
symbols: pc+us+ru:2+group(alt_shift_toggle)
geometry: pc(pc104)
xkb_keymap xkb_keycodes < include «xfree86+aliases(qwerty)» >;
xkb_types < include «complete» >;
xkb_compat < include «complete» >;
xkb_symbols < include «pc+us+ru:2+group(alt_shift_toggle)» >;
xkb_geometry < include «pc(pc104)» >;

Все в порядке, клавиатура определяется верно:

geometry: pc(pc104)

и появился русский язык с переключением по alt_shift. Закрываем сеанс оставляя его работать в фоне и переподключаемся к нему же снова чтобы проверить что не возникает известной проблемы при которой локаль пропадает при переподключении к уже открытому ранее сеансу.

В ubuntu старше 10.10, по умолчанию, за вывод звука отвечает сервер pulseaudio. В десктопных дистрибутивах он уже установлен. В серверных нет. Поэтому установим его.


Посмотрим и запишем номер версии пакета который по умолчанию установился в нашу систему:


Теперь нам необходимо собрать библиотеки для переадресации звука. Подробно об этом написано в файле с исходниками XRDP который мы уже просматривали ранее при сборке XRDP.

Для начала скачаем исходники pulseaudio. Сделать это можно двумя способами.

2. Более правильно — подключить deb-src репозитории системы и получить исходники которые использовали авторы данного ubuntu дистрибутива.

По умолчаню ссылки на исходники в ubuntu отключены. Для подключения отредактируем файл списка репозиториев:


Переходим в установочный каталог XRDP:


Исправляем make файл.


Меняем путь на наш каталог с библиотеками pulseaudio.Причем, обратите внимание, конструкции типа ~/pulseaudio* в данном случае не проходят. Необходимо точно прописать адрес каталога.

Замените admin на имя пользователя в Вашей системе. Сохраняем исправленный файл и делаем:


Если все выполнено верно в каталоге будут скомпилированы 2 новых библиотеки
module-xrdp-sink.so и module-xrdp-source.so.

Осталось только скопировать их в рабочий каталог с библиотеками сервера pulseaudio:


После перезапуска звук будет активирован.

Осталось установить любую удобную графическую оболочку. Для терминального сервера желательно что то не ресурсоемкое.

XFCE
Минимальный набор элементов:


Полный набор элементов:


LXDE
Минимальный набор элементов:


В зависимости от версии установленной графической оболочки, для её запуска возможно понадобится настроить файл .xsession

Готовый пакет для установки

XRDP v0.9.2 + скомпилированные библиотеки pulseaudio 8.0 + исправленный keyboard.ini файл для поддержки русификации. Те же кто не хочет сам собирать бакенд x11RDP v7.6 по этой же ссылке могут скачать готовый deb пакет бакенда xorg v.0.2.0. Порядок установки для совсем ленивых


Повторюсь что пакеты собирались практически на коленках и работа протестирована только
на ubuntu 16.04 server. Работоспособность данных .deb-пакетов на других системах не гарантирована.

Установка XRDP в Ubuntu 20.04

В настоящее время существует множество вариантов удалённого подключения к рабочим местам. Кроме того, стоимость аренды виртуальной машины хорошей производительности в облаке в месяц, сопоставима с ценой кружки хорошего кофе. Такие удалённые виртуальные машины удобно использовать с офисных слабых компьютеров, из поездок с ноутбуком и слабым Интернет-соединением, запускать на них длительные задачи, как например перепроведение документов в 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 searh xrdp

aCOhrPoejVMAAAAASUVORK5CYII=

Шаг 2. Обновление системы

Такой пакет есть, поэтому вы можете, предварительно обновив систему, простым путём установить xrdp на Ubuntu 20.04. Обновляем и перезагружаем для принятия изменений в ОС:

sudo apt –y update && sudo apt –y upgrade && sudo reboot

BwrmmDYoSnOJAAAAAElFTkSuQmCC

Шаг 3. Установка пакетов

После перезагрузки можно устанавливать XRDP из репозитория Ubuntu 20.04

sudo apt install xrdp

Обращаю внимание, что при установке генерируется сертификат, который необходим для функционирования RDP протокола, строка ниже указывает, что сертификат успешно создан:

DfbbccYc54AAAAAElFTkSuQmCC

Шаг 3. Настройка службы XRDP

В связи с особенностями системы Ubuntu 20.04, необходимо ввести пользователя xrdp, от имени которого работает XRDP в системе, в группу ssl-cert. Выполните команду:

sudo adduser xrdp ssl-cert

Затем добавьте службу xrdp в автозапуск и перезапустите её для применения изменений:

sudo systemct enable xrdp

sudo systemctl restart xrdp

3r3tgckokiLAAAAAElFTkSuQmCC

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-адрес, необходимо в терминале ввести команду:

+pQaqmDqAAGAAAAAElFTkSuQmCC

На моём скриншоте обведён IP-адрес виртуальной машины с Ubuntu 20.04, который автоматически присвоен сетевому интерфейсу eth1. Сетевых интерфейсов может быть несколько, у каждого из них могут быть свои IP-адреса, к которым так же можно подключаться по RDP.

Шаг 5. Проверка подключения

Стандартный клиент RDP для Windows называется Подключение к удалённому рабочему столу . В нем необходимо ввести IP-адрес или имя сервера, можно указать логин и пароль для входа в удалённую машину, настроить различные параметры взаимодействия.

На скриншоте ниже можно видеть окно для входа Xorg, куда требуется ввести логин, в моем случае user и пароль, в моем случае 1. Для смены раскладки клавиатуры в Ubuntu 20.04 используется комбинация клавиш Super+Пробел (с моей клавиатуры клавиши Windows + Пробел). Если в окне раскладка не меняется, и вводится пароль не на том языке, то необходимо отключить клиент RDP, закрыть его, поменять язык в Windows на нужный и снова подключиться к удалённой машине.

YPPzk8h+9BcAAAAASUVORK5CYII=

Настройка XRDP Ubuntu 20.04 практически завершена.

Ошибка черный экран XRDP в Ubuntu

B8YC4whhvEr+QAAAABJRU5ErkJggg==

Для исправления такой ошибки необходимо внести изменение в файл, расположенный в папке /etc/xrdp, запускающий каждую сессию удалённого доступа XRDP с именем startwm.sh:

n5a4x+AgAAAABJRU5ErkJggg==

Внесите изменения в файле startwm.sh:

unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR

test –x /etc/X11/Xsession && exec /etc/X11/Xsession

как показано на скриншоте. Это обнуляет системные переменные, сформированные предыдущими сеансами. В результате, мы избавляемся от чёрного экрана при подключении по RDP к Ubuntu 20.04

w9SurgbSddChAAAAABJRU5ErkJggg==

После внесения изменений необходимо перезапустить службу XRDP:

sudo systemctl restart xrd

И можно выполнить подключение к Ubuntu по RDP:

385ngK0YuG6VgAAAABJRU5ErkJggg==


Выводы

Сегодня мы выяснили как подключиться к Ubuntu по RDP и настроить XRDP сервер. Клиенты RDP существуют для любого устройства: телефона, планшета, ноутбука, любого компьютера. Местонахождение этой виртуальной или реальной машины с Ubuntu 20.04 теперь не играет никакой роли, лишь бы был доступ к ней через интернет и установлен и настроен XRDP.


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Оцените статью:

Об авторе

Системный администратор и программист 1С с 1996 года. Сначала освоил FreeBSD, а потом, как 1С появился для Linux перешёл на CentOS, затем на Debian и Ubuntu. Делаю тонкие клиенты на старых компьютерах и виртуализацию на ProxmoxVE.

12 комментариев

Добрый день!
Исправьте пожалуйста опечатки в статье
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) вижу экран ввода пароля удаленной системы, после ввода запрашивает ввести еще раз, после этого просто вылетает и закрывает окно. В чем может быть причина?

Работает на KDE Neon 5.21

Сам спросил сам и отвечу, вдруг кому-то поможет. Конкретно мой случай, при попытке подключения к удаленному серверу ввожу логин и пароль удаленной системы и появляется уже начальный экран моего сервера с просьбой авторизироваться. Если ввожу снова логин-пароль то меня просто выбрасывает, если на данном этапе нажать "отмена", то успешно подключается к удаленной системе.

А звук не играет в терминалке, играет на хост системе 🙁 Перекомпиливать всё и вся?

Приветствую!
sudo apt searh xrdp - опечатка "searh"

Чтобы добавить пользователя в группу, команда должна быть:
sudo usermod -a -G ssl-cert xrdp

А мне выдало, что не возможно сохранить файл startwm.sh

не могу внести изменения в файл startwm.sh
не доступен для записи
и права не дает сменить
как поступить?

Помогло команда (дает полный доступ к файлу):
sudo chmod ugo+rwx /etc/xrdp/startwm.sh

Удаленный рабочий стол в Ubuntu

Удаленный рабочий стол позволяет подключиться к вашему компьютеру через интернет с помощью другого компьютера или даже смартфона. Вам может достаточно часто понадобится сделать что-то на другом компьютере, даже если вы не рядом с ним. Такая возможность есть и у Ubuntu.

В этой статье мы рассмотрим как настроить удаленный рабочий стол в Ubuntu 20.04, а также как подключиться к нему с помощью различных устройств. В качестве протокола удаленного доступа мы будем использовать VNC, он медленный и уже устаревший, но зато везде поддерживается. В Ubuntu почти все программное обеспечение уже установлено по умолчанию, вам остается только изменить несколько настроек.

Удаленный рабочий стол VNC в Ubuntu

Как я уже сказал, в качестве протокола удаленного доступа мы будем применять VNC. А в качестве сервера - стандартный VNC сервер Ubuntu. Надо только немного его настроить.

Откройте главное меню, а затем запустите утилиту Параметры системы. Здесь откройте раздел Общий доступ:

Здесь кликните по пункту Общий доступ к экрану, чтобы открыть окно настроек:

Здесь надо включить переключатель вверху окна, затем напротив поля "Требовать пароль" введите пароль, который будет использоваться для подключения:


Настройки можно закрыть, удаленный рабочий стол Ubuntu настроен. И уже сейчас вы можете пытаться подключиться к вашему компьютеру с помощью другого дистрибутива Linux. Но есть еще один момент. Вы не сможете подключиться из Windows. По умолчанию включено обязательное шифрование. А это поддерживается не всеми клиентами. Чтобы отключить принудительное шифрование нужно установить dconf-editor:

sudo apt install dconf-editor

Затем откройте программу и перейдите по пути org.gnome.desktop.remote-access там сделайте этот пункт Disabled:

Теперь вы готовы тестировать подключение к удаленному рабочему столу Ubuntu. Откройте главное меню и найдите клиент удаленного подключения Remmina.

В строке подключения выберите протокол VNC, затем введите адрес, поскольку мы собрались проверять на локальной машине, то введите localhost, в других же случаях вам придется использовать IP адрес компьютера. Дальше нажмите "Подключиться":

Сразу же программа спросит у вас пароль чтобы получить удаленный доступ к компьютеру:

После этого вы увидите ваш рабочий стол. В случае с локальной машиной получится такая рекурсия:

Теперь самое время подключаться из другого компьютера. Вы можете использовать любой VNC клиент для Linux, Windows или Android и подключиться к своему компьютеру если он находится в локальной сети. Кроме того, вы можете получить к нему доступ даже из Интернет создав частную локальную сеть, например, с помощью hamachi или OpenVPN.

Удалённый рабочий стол RDP в Ubuntu

Если вам надо часто подключаться удалённо к Ubuntu из Windows, то лучше использовать протокол разработанный для Windows - RDP. Он тоже уже достаточно старый, но почти везде поддерживается. Для установки RDP сервера выполните:

После установки убедитесь, что сервис запущен:

sudo systemctl status rdp

Затем вы можете подключатся к настроенному серверу из Windows стандартными средствами системы или из Linux с помощью утилиты Reminna как в предыдущем варианте, только протокол надо будет выбрать RDP вместо VNC.

В Windows откройте поиск и найдите там подключение к удалённому рабочему столу:


Введите IP адрес сервера, на котором запущен RDP клиент и к которому вы хотите подключится:


Затем нажмите кнопку Подключится и введите логин и пароль от пользователя в системе, к которой вы подключаетесь:


Теперь вы можете использовать RDP подключение.

В этой статье мы рассмотрели как выполняется настройка удаленного рабочего стола Ubuntu 20.04, а также как получить к нему доступ с помощью других устройств. Все очень просто, даже проще, чем с тем же x11vnc, для которого нужно создать несколько конфигурационных файлов. Если у вас остались вопросы, спрашивайте в комментариях!

Лучшие RDP клиенты для Linux

Протокол RDP или Remote Desktop Protocol - это основной протокол удалённого доступа в операционных системах семейства Windows. В современных версиях Windows уже по умолчанию предустановлено всё необходимое программное обеспечение для обеспечения доступа к вашему компьютеру удалённо, а также для удалённого подключения к другим компьютерам с Windows.

Для операционных систем на базе ядра Linux было разработано несколько свободных клиентов, реализующих поддержку протокола RDP. В этой статье мы собрали лучшие клиенты RDP для Linux, работающие как в графическом интерфейсе, так и в командной строке.

Лучшие RDP клиенты в Linux

1. Remmina


Для этой операционной системы существует не так много клиентов и это лучший клиент RDP для Linux. У программы есть удобный графический интерфейс, множество различных настроек, возможность сохранения ярлыков для быстрого подключения к удалённым узлам с нужными вам настройками. Но автоматически ярлыки не сохраняются, вам надо будет делать это вручную. Кроме протокола RDP поддерживается VNC и SSH. Программа разрабатывается в рамках проекта FreeRDP, с использованием библиотеки GTK. Есть порт на Qt. Разрабатывается достаточно активно и новые версии выходят раз в несколько месяцев. Для установки достаточно выполнить команду:

sudo apt install remmina

2. Gnome Connections


Это совсем новая утилита, разработка которой стартовала в начале 2020 года. Connections - очень простое приложение, сделанное специально для Gnome и предназначенное для управления удалёнными подключениями. Из протоколов поддерживаются RDP и VNC. В отличие от Remmina, настроек в утилите совсем нет, вы можете только указать адрес и порт компьютера, к которому надо подключится и включить или отключить масштабирование. И всё никаких настроек передачи звука, буфера обмена, захвата клавиш, разрешения экрана нет. Программа всё ещё находится в разработке, но её уже можно установить из Flathub:

flatpak install flathub org.gnome.Connections

А для запуска используйте команду:

flatpak run org.gnome.Connections

3. Vinagre


Это ещё одно приложение для Gnome, которое раньше позиционировалось как программа по умолчанию для управления удалёнными соединениями в Gnome. Настроек здесь уже немного больше, по сравнению с Connections, но всё ещё меньше, чем у Remmina. При подключении вы можете выбрать протокол, имя пользователя и разрешение экрана, а также надо ли масштабировать рабочий стол удалённой машины. Из протоколов поддерживается RDP, SSH, SPICE и VNC. Программа довольно простая и свою работу выполняет, но разрабатывается уже не очень активно. Установить в Ubuntu можно командой:

sudo apt install vinagre

4. Xfreerdp


С полностью графическими клиентами RDP для Linux мы закончили. Но есть ещё несколько использующих консольный интерфейс. Первая из них - xfreerdp. Настроек здесь ещё больше чем у Remmina, но задавать их все надо в командной строке. Поддерживается только протокол RDP. Программа достаточно активно разрабатывается и поддерживает все необходимые новшества протокола RDP. Для подключения к серверу используется опция /v. Например:

xfreerdp /v:ip_сервера:порт /u:имя_пользователя

Для установки программы в Ubuntu используйте команду:

sudo apt install freerdp2-x11

5. Rdesktop


Последняя в нашем списке консольная утилита rdesktop. Это самая первая реализация клиента RDP для Linux. В далёком 2009 году, проект FreeRDP был создан на основе форка Rdesktop. Сейчас проект почти не развивается, а с 2019 года ищет мэйнтейнера. И у программы есть ещё одна проблема. В новых версиях Windows компания Microsoft добавила новую авторизацию NLA (Network Level Authentication). Программа Rdesktop её не поддерживает, поэтому если вы захотите использовать её для подключения к Windows, эту технологию стоит отключить. Или же вы можете использовать любую другую программу из перечисленных выше. Чтобы подключится к удалённой машине надо просто передать её адрес программе:

Для установки rdesktop выполните:

sudo apt install rdesktop

В этой статье мы разобрали лучшие программы для подключения по RDP из Linux, которые вы можете использовать для своей работы. Может некоторые из них не такие уже и лучшие, но других у нас нет. А каким клиентом пользуетесь вы? Напишите в комментариях!

Удаленный рабочий стол Ubuntu

Подключиться к рабочему столу Ubuntu можно с использованием VNC либо RDP. Я выбрал второй, благодаря тому что RDP клиент установлен во всех WIndows системах он очень популярен. Для подключения к Ubuntu по RDP необходимо установить ПО XRDP.
Тестировать подключение к рабочему столу я буду на Ubuntu 20.04. Пакет XRDP также последний на данный момент.

Установка XRDP

Установка XRDP на Ubuntu делается командой


sudo apt install xrdp

В процессе установки будет автоматически сгенерирован сертификат для шифрования RDP соединения.


Generating SSL

Надпись ssl_gen_key_xrdp ok свидетельствует о том что процесс генерации сертификата прошел успешно.

Добавим сервис xrdp в автозагрузку

Проверим статус xrdp

Статус active говорит о том что сервис запущен и работает.

Настройка XRDP
Настроим брандмауэр

Необходимо открыть порт в брандмауэре. Давайте проверим включен ли он вообще

Если status указан inactive советую включить брандмауэр. Делается это командой

Только будьте осторожны если подключены удаленно, например по SSH, т.к. порт может быть закрыт.

По умолчанию протокол RDP использует порт 3389. Откроем данный порт используя брандмауэр UFW

Теперь любой клиент из подсети 172.16.169.0 сможет подключиться к Ubuntu используя протокол RDP.

Попросим брандмауэр перечитать правила доступа для применения настроек

Посмотрим статус UFW

Разрешим использовать сертификат

Добавим пользователя xrdp в группу ssl-cert для возможности использования ранее созданного сертификата.

Перезапустим xrdp чтобы применить изменения

Подключение к рабочему столу Ubuntu

Проверим подключение к рабочему столу Ubuntu используя встроенный в Windows клиент удаленного рабочего стола.

Для подключения нам потребуется имя сервера, либо IP адрес и логин/пароль для входа. Узнать IP адрес в Ubuntu можно так

Переходим к подключению. Запустим клиент удаленного рабочего стола, в Windows он называется: Подключение к удаленному рабочему столу. Вводим IP адрес и нажимаем Подключить


Подключение к удаленному рабочему столу

Система будет выводить предупреждения и возможно задавать вопросы, со всем соглашаемся. И в открывшемся окне вводим Username и Password от входа в Ubuntu.


Смена раскладки клавиатуры происходит клавишами Windows+Пробел. Если раскладка не меняется, необходимо закрыть окно Удаленного подключения, поменять раскладку и снова подключиться.

Черный экран при подключении к Ubuntu

Для решения этой проблемы нужно добавить две строки в файл startwm.sh

Читайте также: