Функция удаленного рабочего стола позволяет подключится к удаленному компьютеру или виртуальной машине по сети. Это довольно удобно, но до недавнего времени у Ubuntu с этим было не всё так просто. Встроенная програма удалённого рабочего стола не поддерживала создание новых сессий, а большинство сторонних программ не работали если испозуется Wayland, не имели открытый исходный код, либо использовали сторонний сервер для связи.
В Gnome 46 встроенный сервис удалённого рабочего стола получил обновление и возможность создавать новые сессии. Это позволяет использовать его в качестве замены x11vnc или xrdp и в этой статье мы рассмотрим как это всё настроить. Я буду рассматривать всё на примере Ubuntu 24.10, поскольку она поставляется с GNOME 47 и содержит самую свежую имплементацию Gnome Remote Desktop, но эти инструкции должны работать и для Ubuntu 24.04.
Содержание статьи
- Как это работало раньше?
- Как это работает сейчас?
- Как настроить удаленный рабочий стол в Ubuntu
- Выводы
Как это работало раньше?
Когда я только начал пользоваться Linux, был очень популярным сервис x11vnc, который запускался от имени пользователя и позволял подключиться к активной сессии удалённо. Вам было достаточно настроить пароль для подключения и запустить x11vnc в терминале или через автозапуск. Потом вы могли подключится к такому компьютеру с помощью клиента VNC просто указав настроенный пароль и имя пользователя. Если на компьютере уже была активная сессия вы подключались к ней. Если нет, вы видели экран входа в систему, на котором могли авторизоваться.
Также тогда существовал сервис XRDP, который был более продвинутый и позволял вам просто вводить при подключении имя пользователя и его пароль в системе к которой нужно подключиться. После этого для вас создавалась новая сессия в которой вы могли работать удалённо. Но с помощью XRDP вы не могли подключиться к уже запущенной сессии, по крайней мере по умолчанию.
В Gnome был реализован свой сервис удалённого рабочего стола - Gnome Remote Desktop (g-r-d). Но до недавнего времени в нём было довольно сложно повторить функциональность x11vnc и тем более XRDP. Вы могли настроить логин и пароль для авторизации в настройках, и если на компьютере уже была активная сессия то вы могли к ней подключится используя этот логин и пароль. Если активной сессии не было, то и подключится вы не могли. Также если у сессии заблокирован экран, то вы тоже получали бы ошибку. Фактически для того чтобы вы могли подключится к удалённому компьютеру за ним должен был быть человек, который бы включил сервис, разблокировал экран и сказал вам пароль. Кое-что из этого можно было поправить расширениями GNOME, но далеко не всё. В этой из предыдущих статтей я рассказывал как всё настроить в Ubuntu 22.04.
Как это работает сейчас?
В Gnome 46 для Gnome Remote Desktop была добавлена функция удалённого входа. Теперь встроенный сервис удалённого рабочего стола состоит из двух сервисов. Оба используют протокол RDP. Первый выполняется от имени суперпользователя и отвечает за создание удалённых сессий, подключение к ним и использует по умолчанию порт 3389. А второй выполняется от имени пользователя, для локальной сессии, и позволяет подключится к активной сессии пользователя как это работало раньше и использует порт 3390. Фактически если вам нужно подключиться к удалённому компьютеру без участия пользователя за этим компьютером вы используете первый сервис. Важно отметить что это отдельные сервисы и вам не обязательно настраивать оба. Если нужно помочь пользователю сделать что-то в его сессии - тогда второй сервис. Во втором сервисе логика работы практически не поменялась.
Сервис удаленного входа реализован довольно интересно и чем-то напоминает XRDP. При подключении вы используете настроенные логин и пароль и попадаете на экран входа GNOME. Здесь вы можете выбрать нужного пользователя и ввести его пароль:
Дальше создается или открывается уже существующая удалённая сессия и вы получаете над ней контроль:
Если вы отсоединитесь, а потом захотите подсоединиться снова, то вам снова надо будет повторить процедуру авторизации, но вы попадете в ту же сессию со всеми активными приложениями. Несколько пользователей могут авторизоваться и работать в удалённых сессиях одновременно. Но есть ограничение, один пользователь - одна сессия - одно подключение. Если подключитесь к уже активной удалённой сессии, то предыдущее подключение будет прервано. Если для пользователя уже запущена локальная сессия, то удаленная сессия создана не будет, актуально и наоборот. В целом это логично, потому что вам не надо думать как подключиться к ранее созданной сессии, а для подключения к локальным сессиям существует отдельный сервис.
Как настроить удаленный рабочий стол в Ubuntu
Теперь давайте рассмотрим как включить удаленный рабочий стол в Ubuntu 24.04 используя сервис g-r-d.
Доступ к активной сессии
Откройте Settings, затем перейдите в раздел System и выберите Remote Desktop:
Дальше вам нужна вкладка Desktop Sharing. Здесь нужно включить переключатели напротив Desktop Sharing и Remote Control. Далее вы можете указать логин и пароль для авторизации в разделе Login Details. При чем если не настроите свои данные входа, то программа будет использовать логин вашего пользователя и сгенерирует случайный пароль. В разделе How to Connect вы можете видеть используемый порт и имя хоста.
Если вам нужно подключиться по IP адресу, а не имени хоста, то IP компьютера можно узнать выполнив команду:
ip -br a
Теперь вы можете закрыть программу настроек. Вы можете убедится что всё работает проверив запущен ли сервеис пользователя gnome-remote-desktop:
systemctl status --user gnome-remote-desktop
Далее используете эти данные на друком компьютере чтобы подключиться удалённо к этому, например, с помощью программы Connections. Например, если у компьютера к которому вы хотите подключиться IP адрес **192.168.124.156 то укажите в Connections такую строку *192.168.124.156:3390*:
После ввода логина и пароля если они были указаны верно перед вами сразу откроется удаленный рабочий стол.
Удаленный вход
Откройте Settings, затем перейдите в раздел System и выберите Remote Desktop:
На этот раз вам нужна вкладка Remote Login. Здесь нужно нажать кнопку Unlock и ввести пароль вашего пользователя для того чтобы получить возможность менять системные настройки:
Затем включите переключатель напротив Remote Login и уажите логин и пароль для авторизации в разделе Login Details:
После этого закройте программу настроек и перезагрузите компьютер. Вы можете убедится что сервис работает выполнив команду:
sudo systemctl status gnome-remote-desktop
Это всё, теперь можно переходить к подключению. Рассмотрим пример подключения с помощью программы Connections. Если IP адрес компьютера к которому подключаемся 192.168.124.156, то в поле адреса нужно ввести 192.168.124.156:3389:
Затем нужно ввести логин и пароль, настроенные в разделе Login Details:
Далее надо выбрать пользователя от имени которого вы хотите войти:
И остается только ввести пароль этого пользователя:
После чего программа перенаправит вас на удалённый рабочий стол:
Выводы
В этой статье мы рассмотрели как включить удаленный рабочий стол Ubuntu 24.04 или 24.10 штатными средствами в GNOME. Было показано как подключиться к активной сессии пользователя, а также как создавать удалённые сессии.
Эта функциональность появилась недавно, в Ubuntu 24.04, поэтому могут встречаться ещё кое-какие баги. Но это начало и со временем мы получим полноценный удалённый рабочий стол с поддержкой Wayland и всеми необходимыми функциями, которые есть в XRDP. Например в Ubuntu 24.10 было, подключение к ранее созданной удалённой сессии после отсоединения, также, скорее всего, в следующем релизе вместо имени хоста будет показываться IP адрес в настройках удалённого соединения что сделает подключение более удобным.
Спасибо за обзор! неужели теперь можно стандартными инструментами подключиться с винды в убунту? Кайф
Дело обстоит много интереснее, когда нужно подключиться к машине, не настроенной предварительно, или даже не оснащенной монитором (т.н. headless), вроде облачного сервера. И в Gnome Remote Desktop такой сценарий предусмотрен, но уже через командную оболочку посредством SSH. Материал можно дополнить!
Вот это перерыв!
Хорошо, что сайт ожил!
Ура! Вернулся. Это праздник!
Вновь отличная статья. Всё подробно, понятно с отличными скриншотами и прекрасным литературным русским языком. Но главное конечно: "Наконец-то он вернулся! Мы так соскучились!".
Каноникал, прямо сказать, нужную вещь запилил в 22.04. В 24.04 довели до ума.
Теперь задача со * как то же самое запилить в системе с другой средой - МАТЕ или, скажем CINNAMON. Этого добра там нет. В смысле оно, вероятнее, где-то надежно упрятано.
Собственный опыт на синнамоне успехом (пока что) не увенчался. Если у кого будет положительный результат в мате и синнамон -- делитесь.
Всё работает, но заходя по rdp с разных устройств и в живую закрываются все приложения юзера, юзер один. "Удаленный вход невозможен, потому что локальный сеанс уже запущен...Принудительная остановка приведет к завершению всех запущенных..." Поведайте секрет - Как правильно входить/выходить, чтобы приложения и процессы не закрывались?
Если я правильно понял вопрос, вы пытаетесь одноврменно подключится с нескольких устройств к одной сессии пользователя. На данный момент для удаленного входа есть ограничение: один пользователь - одна сессия, не важно локальная она или удаленная. Возможно это изменится в следующих версиях и появится возможность перехватывать управление, но пока этого нет и нужно только завершать сессию чтобы создать новую. Пока остается только использовать Desktop Sharing если нужно подключится к активной локальной сессии как это делалось раньше.
Нет, не одновременно. Подключился - запустил программу - закрыл окно RDP. Подключаюсь заново, с того же устройства и логина - "Удаленный вход невозможен, потому что локальный сеанс уже запущен...Принудительная остановка приведет к завершению всех запущенных..."
Вот как подключится к существующему сеансу? Согласие на принудительную остановку приводит к закрытию работающих программ, именно в этом проблема. Закрывает старый сеанс и открывает новый.
Даже при физическом входе на комп, после подключения удаленного, то же самое - "Вход в систему невозможен, так как для пользователя User уже запущен удаленный сеанс."
Какую версию GNOME/Ubuntu вы используете?
GNOME Shell 46.0
Description: Ubuntu 24.04.1 LTS
Release: 24.04
С тем, что вы не можете авторизоваться от имени пользователя для которого уже запущена удаленная сессия локально ничего не сделать. Пока это так роботает. Но со входом в ранее закрытую удаленную сессию удаленно в Ubuntu 24.04 были проблемы, и они были исправлены в GNOME 47 (Ubuntu 24.10).