Функція віддаленого робочого столу дозволяє підключитись до віддаленого комп'ютера або віртуальної машини через мережу. Це доволі зручно, але донедавна в Ubuntu з цим було не все так просто. Вбудована програма віддаленого робочого столу не підтримувала створення нових сесій, а більшість сторонніх програм не працювали якщо використовується Wayland, були пропрієтарними, або використовували сторонній сервер для зв'язку.
У Gnome 46 вбудований сервіс Gnome Remote Desktop отримав оновлення та можливість створювати нові сесії. Це дозволяє використовувати його як заміну x11vnc або xrdp, і в цій статті ми розглянемо як це все налаштувати. Я розглядатиму все на прикладі Ubuntu 24.10, оскільки вона постачається з GNOME 47 і містить найсвіжішу імплементацію Gnome Remote Desktop, але ці інструкції мають працювати і для Ubuntu 24.04.
Зміст
Як це працювало раніше?
Коли я тільки почав користуватись Linux, був дуже популярним сервіс x11vnc, який запускався від імені користувача і дозволяв підключитися до активної сесії віддалено. Вам було достатньо налаштувати пароль для підключення та запустити x11vnc в терміналі або через автозапуск. Потім ви могли підключитися до такого комп'ютера за допомогою клієнта VNC, просто вказавши налаштований пароль та ім'я користувача. Якщо на комп'ютері вже була активна сесія, ви підключалися до неї. Якщо ні, ви бачили екран входу в систему, на якому могли авторизуватися.
Також тоді існував сервіс XRDP, який мав більше можливостей і дозволяв вам просто вводити при підключенні ім'я користувача та його пароль у системі, до якої потрібно підключитися. Після цього для вас створювалася нова сесія, в якій ви могли працювати віддалено. Але за допомогою XRDP ви не могли підключитися до вже запущеної сесії, принаймні за замовчуванням.
У Gnome було реалізовано власний сервіс віддаленого робочого столу - Gnome Remote Desktop (g-r-d). Але до недавнього часу в ньому було досить складно повторити функціональність x11vnc і тим більше XRDP. Ви могли налаштувати логін і пароль для авторизації в налаштуваннях, і якщо на комп'ютері вже була активна сесія, то ви могли до неї підключитися, використовуючи цей логін і пароль. Якщо активної сесії не було, то і підключитися ви не могли. Також якщо у сесії заблокований екран, то ви теж отримали б помилку. Фактично для того щоб ви могли підключитися до віддаленого комп'ютера, за ним повинна була бути людина, яка б увімкнула сервіс, розблокувала екран і повідомила вам пароль. Дещо з цього можна було виправити розширеннями GNOME, але далеко не все.
Як це працює зараз?
У Gnome 46 для Gnome Remote Desktop було додано функцію віддаленого входу. Тепер вбудована служба віддаленого робочого столу складається з двох служб. Обидві використовують протокол RDP. Перша виконується від імені суперкористувача і відповідає за створення віддалених сесій, підключення до них та використовує за замовчуванням порт 3389. А друга виконується від імені користувача, для локальної сесії, і дозволяє підключитися до активної сесії користувача, як це працювало раніше, та використовує порт 3390. Фактично, якщо вам потрібно підключитися до віддаленого комп'ютера без участі користувача за цим комп'ютером, ви використовуєте першу службу. Важливо зазначити, що це окремі служби і вам не обов'язково налаштовувати обидві. Якщо потрібно допомогти користувачеві зробити щось у його сесії - тоді друга служба. У другій службі логіка роботи практично не змінилася.
Сервіс віддаленого входу реалізований досить цікаво і чимось нагадує XRDP. При підключенні ви використовуєте налаштовані логін та пароль і потрапляєте на екран входу GNOME. Тут ви можете обрати потрібного користувача та ввести його пароль:

Далі створюється або відкривається вже наявна віддалена сесія і ви отримуєте над нею контроль:

Якщо ви від'єднаєтесь, а потім захочете приєднатися знову, то вам знову потрібно буде повторити процедуру авторизації, але ви потрапите в ту саму сесію з усіма активними програмами. Декілька користувачів можуть авторизуватися та працювати у віддалених сесіях одночасно. Але є обмеження: один користувач - одна сесія - одне підключення. Якщо підключитесь до вже активної віддаленої сесії, то попереднє підключення буде перервано. Якщо для користувача вже запущена локальна сесія, то віддалена сесія створена не буде, актуально і навпаки. В цілому це логічно, тому що вам не потрібно думати як підключитися до раніше створеної сесії, а для підключення до локальних сесій існує окремий сервіс.
Як налаштувати віддалений робочий стіл
Віддалений доступ до активної сесії
Відкрийте 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 адреса в налаштуваннях віддаленого з'єднання, що зробить підключення зручнішим.