- Вопрос или проблема
- Причина
- Решение
- Ответ или решение
- Решение проблемы с пустым экраном при подключении через удаленный рабочий стол Windows к Ubuntu 22.04 через XRDP
- 1. Установка и настройка XRDP
- 2. Открытие порта 3389 в файерволе
- 3. Изменение настроек startwm.sh
- 4. Перезапуск XRDP
- 5. Проверка на конфликты и блокировки
- 6. Установка dbus-x11 (при необходимости)
- Дополнительные советы
Вопрос или проблема
Я пытаюсь настроить функцию удаленного рабочего стола на Ubuntu (Desktop) 22.04, но не могу подключиться к своему рабочему столу Ubuntu с компьютера Windows (10). Я использую следующие инструкции:
- https://help.ubuntu.com/stable/ubuntu-help/sharing-desktop.html.en
- https://linuxconfig.org/ubuntu-22-04-remote-desktop-access-from-windows-10
Я включил удаленный рабочий стол в настройках обмена (Ubuntu), однако, когда я запускаю клиент удаленного рабочего стола (стандартный клиент mstsc.exe) на Windows и подключаюсь к IP-адресу сервера Ubuntu, появляется диалог входа:
В выпадающем меню “Сессия” есть 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, я потратил некоторое время на устранение неполадок и нашел простое решение. Вот шаги для решения проблемы:
-
Установите XRDP:
Выполните следующие команды на вашей машине Ubuntu для установки XRDP:sudo apt install xrdp sudo systemctl enable --now xrdp
-
Разрешите порт 3389:
Откройте брандмауэр для разрешения трафика на порту 3389 (порт по умолчанию для XRDP):sudo ufw allow from any to any port 3389 proto tcp
-
Измените 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
Сохраните изменения и выйдите из редактора.
-
Перезапустите 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.