Функция удаленного рабочего стола позволяет подключится к удаленному компьютеру или виртуальной машине по сети. Это довольно удобно, но до недавнего времени у 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. Материал можно дополнить!
Вот это перерыв!
Хорошо, что сайт ожил!
Ура! Вернулся. Это праздник!
Вновь отличная статья. Всё подробно, понятно с отличными скриншотами и прекрасным литературным русским языком. Но главное конечно: "Наконец-то он вернулся! Мы так соскучились!".