Подключение к удаленному рабочему столу с Windows на Ubuntu 22.04 приводит к появлению экрана входа XRDP, а затем — пустого экрана.

Вопрос или проблема

Я пытаюсь настроить функцию удаленного рабочего стола на Ubuntu (Desktop) 22.04, но не могу подключиться к своему рабочему столу Ubuntu с компьютера Windows (10). Я использую следующие инструкции:

Я включил удаленный рабочий стол в настройках обмена (Ubuntu), однако, когда я запускаю клиент удаленного рабочего стола (стандартный клиент mstsc.exe) на Windows и подключаюсь к IP-адресу сервера Ubuntu, появляется диалог входа:

XRDP Login

В выпадающем меню “Сессия” есть 4 варианта:

  • Xorg
  • Xvnc
  • vnc-any
  • neutrinordp-any

Выбор Xorg и некоторых учетных данных вызывает закрытие окна. Если оставить поля учетных данных пустыми, появляется диалоговое окно с сообщением:

Connecting to sesman ip 127.0.0.1 port 3350
sesman connect ok
sending login info to session manager, please wait...
login failed for display 0

Если нажать “Ok”, то вас вернут обратно к диалогу входа.

Если выбрать Xvnc и указать некоторые учетные данные, появляется пустой зеленый экран.

Я наблюдаю аналогичное поведение, если отключить удаленный рабочий стол в настройках обмена.

Я попробовал то же самое со вторым хостом Ubuntu 22.04 и получил такой же результат.

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

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

export GNOME_SHELL_SESSION_MODE=ubuntu
export XDG_CURRENT_DESKTOP=ubuntu:GNOME

Либо выполните sudo nano .xsessionrc, либо sudo nano /etc/xrdp/startwm.sh и добавьте указанные строки в начало, затем перезагрузите компьютер.

(Я обновлю это с дополнительной информацией после того, как получу более четкое понимание)

Похоже, это была проблема на моей новой установке Ubuntu 22.04.

Причина

В ~/.xsession-errors:

# Error constructing proxy for org.gnome.Terminal:/org/gnome/Terminal/Factory0: Failed to execute child process “dbus-launch” (No such file or directory)
dbus-update-activation-environment: error: unable to connect to D-Bus: /usr/bin/dbus-launch terminated abnormally without any error message
dbus-update-activation-environment: error: unable to connect to D-Bus: /usr/bin/dbus-launch terminated abnormally without any error message

Решение

sudo apt install dbus-x11
dbus-launch

Кредиты: https://c-nergy.be/blog/?p=16698

Мне это не нужно было на Ubuntu 20

Предыдущее решение сработало для меня: отключение расширенной сессии в hyper-v. Вы можете сделать это, перейдя в меню вида в верхней части окна hyper-v этой виртуальной машины и сняв выбор расширенной сессии. Появляется экран входа, и вы можете войти в систему.

Эту проблему можно решить, отключив расширенную сессию в hyper-v. Надеюсь, это поможет кому-нибудь.

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

  1. Установите XRDP:
    Выполните следующие команды на вашей машине Ubuntu для установки XRDP:

    sudo apt install xrdp
    sudo systemctl enable --now xrdp
    
  2. Разрешите порт 3389:
    Откройте брандмауэр для разрешения трафика на порту 3389 (порт по умолчанию для XRDP):

    sudo ufw allow from any to any port 3389 proto tcp
    
  3. Измените startwm.sh:
    Отредактируйте скрипт startwm.sh для XRDP:

    sudo vi /etc/xrdp/startwm.sh
    

    Внутри скрипта добавьте следующую строку:

    export $(dbus-launch)
    

    Убедитесь, что эта строка добавлена перед следующими строками:

    test -x /etc/X11/Xsession && exec /etc/X11/Xsession
    exec /bin/sh /etc/X11/Xsession
    

    Сохраните изменения и выйдите из редактора.

  4. Перезапустите XRDP:
    Перезапустите сервис XRDP для применения изменений:

    sudo systemctl restart xrdp
    

Следуя этим шагам, вы должны решить проблему с пустым экраном при работе с удаленным рабочим столом с Windows на Ubuntu.

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

На самом деле, для меня проблема была в существующем блокирующем соединении:

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

sudo systemctl stop xrdp

Затем перечислите все дисплейные серверы xorg:

ps -aux | grep xorg

Убейте все существующие xorg-серверы по их pid:

kill (pid из команды ps)

Затем снова запустите сервис xrdp:

systemctl start xrdp

Возможно, это связано с вашими драйверами nvidia, попробуйте сделать следующее:

  • добавьте вашего пользователя в группы: tty, render, gdm, input
  • измените права доступа командой chmod ug+x /usr/lib/xorg/Xorg
  • добавьте следующие строки в раздел [Xorg] файла /etc/xrdp/sesman.ini:
param=-configdir
param=/

Ответ или решение

Решение проблемы с пустым экраном при подключении через удаленный рабочий стол Windows к Ubuntu 22.04 через XRDP

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

1. Установка и настройка XRDP

Убедитесь, что XRDP установлен и настроен правильно. На вашем Ubuntu выполните следующие команды:

sudo apt update
sudo apt install xrdp
sudo systemctl enable --now xrdp

Эти команды установят XRDP и активируют его.

2. Открытие порта 3389 в файерволе

Если на вашем Ubuntu настроен файервол ufw, убедитесь, что порт 3389, используемый XRDP, открыт:

sudo ufw allow from any to any port 3389 proto tcp

3. Изменение настроек startwm.sh

Один из ключевых шагов – корректировка файла startwm.sh, чтобы убедиться, что все необходимые переменные среды установлены. Выполните:

sudo nano /etc/xrdp/startwm.sh

Добавьте следующую строку сразу после записей #!/bin/sh:

export $(dbus-launch)

Также убедитесь, что в файле присутствуют строки:

test -x /etc/X11/Xsession && exec /etc/X11/Xsession
exec /bin/sh /etc/X11/Xsession

Сохраните изменения и закройте редактор.

4. Перезапуск XRDP

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

sudo systemctl restart xrdp

5. Проверка на конфликты и блокировки

Иногда причина проблемы может быть в блокировке существующим процессом. Выполните:

sudo systemctl stop xrdp
ps -aux | grep xorg

После идентификации запущенных процессов, связанных с xorg, завершите их:

sudo kill <pid процесса>

Затем снова запустите XRDP:

sudo systemctl start xrdp

6. Установка dbus-x11 (при необходимости)

Если у вас возникают проблемы с dbus, установите пакет dbus-x11:

sudo apt install dbus-x11

Это может помочь устранить проблему, связанную с ошибками dbus.

Дополнительные советы

  • Создание отдельного пользователя: Это может помочь, если вы сталкиваетесь с проблемами при входе в систему с учётной записью, созданной во время установки Ubuntu.
  • Настройка драйверов NVIDIA: Добавьте вашу учётную запись в группы tty, render, gdm, input и измените разрешения для /usr/lib/xorg/Xorg.

Следуя этим шагам, вы должны успешно устранить проблему пустого экрана при использовании XRDP, что позволит вам эффективно подключаться к своему Ubuntu 22.04 из-под Windows.

Оцените материал
Добавить комментарий

Капча загружается...