Ubuntu xrdp error

When I try to connect via RDP I briefly get a black screen and then the window closes. I ran "sudo systemctl status xrdp" and the result is below. Any ideas how to fix this? Thanks! ● xrd...

Hi @matt335672, thanks for the reply. I did see some info regarding being logged in at the console. I tried logging out, and also following the wiki entry, but I’m still having the same issue. I then did what you asked, and here are the results:

date: Wed Jun 17 15:55:36 EDT 2020

Tried logging in over RDP, then here are the results of the command:

-- Logs begin at Wed 2020-04-01 13:23:43 EDT, end at Wed 2020-06-17 15:57:17 EDT. --
Jun 17 15:55:40 ubuntu dbus-daemon[17287]: [session uid=122 pid=17285] Activating service name='org.freedesktop.Noti>
Jun 17 15:55:40 ubuntu dbus-daemon[17287]: [session uid=122 pid=17285] Activating service name='org.xfce.Xfconf' req>
Jun 17 15:55:40 ubuntu dbus-daemon[17287]: [session uid=122 pid=17285] Successfully activated service 'org.xfce.Xfco>
Jun 17 15:55:40 ubuntu dbus-daemon[17287]: [session uid=122 pid=17285] Successfully activated service 'org.freedeskt>
Jun 17 15:55:41 ubuntu xrdp[1389]: (1389)(281473264242704)[INFO ] Socket 12: AF_INET6 connection received from ::fff>
Jun 17 15:55:41 ubuntu xrdp[1389]: (1389)(281473264242704)[DEBUG] Closed socket 12 (AF_INET6 ::ffff:192.168.1.226 po>
Jun 17 15:55:41 ubuntu xrdp[18426]: (18426)(281473264242704)[DEBUG] Closed socket 11 (AF_INET6 :: port 3389)
Jun 17 15:55:41 ubuntu xrdp[18426]: (18426)(281473264242704)[INFO ] Using default X.509 certificate: /etc/xrdp/cert.>
Jun 17 15:55:41 ubuntu xrdp[18426]: (18426)(281473264242704)[INFO ] Using default X.509 key file: /etc/xrdp/key.pem
Jun 17 15:55:41 ubuntu xrdp[18426]: (18426)(281473264242704)[ERROR] Cannot read private key file /etc/xrdp/key.pem: >
Jun 17 15:55:41 ubuntu xrdp[18426]: (18426)(281473264242704)[DEBUG] TLSv1.3 enabled
Jun 17 15:55:41 ubuntu xrdp[18426]: (18426)(281473264242704)[DEBUG] TLSv1.2 enabled
Jun 17 15:55:41 ubuntu xrdp[18426]: (18426)(281473264242704)[DEBUG] Security layer: requested 11, selected 0
Jun 17 15:55:41 ubuntu xrdp[18426]: (18426)(281473264242704)[DEBUG] Closed socket 12 (AF_INET6 ::ffff:192.168.1.226 >
Jun 17 15:55:42 ubuntu xrdp[1389]: (1389)(281473264242704)[INFO ] Socket 12: AF_INET6 connection received from ::fff>
Jun 17 15:55:42 ubuntu xrdp[1389]: (1389)(281473264242704)[DEBUG] Closed socket 12 (AF_INET6 ::ffff:192.168.1.226 po>
Jun 17 15:55:42 ubuntu xrdp[18427]: (18427)(281473264242704)[DEBUG] Closed socket 11 (AF_INET6 :: port 3389)
Jun 17 15:55:42 ubuntu xrdp[18427]: (18427)(281473264242704)[INFO ] Using default X.509 certificate: /etc/xrdp/cert.>
Jun 17 15:55:42 ubuntu xrdp[18427]: (18427)(281473264242704)[INFO ] Using default X.509 key file: /etc/xrdp/key.pem
Jun 17 15:55:42 ubuntu xrdp[18427]: (18427)(281473264242704)[ERROR] Cannot read private key file /etc/xrdp/key.pem: >
Jun 17 15:55:42 ubuntu xrdp[18427]: (18427)(281473264242704)[DEBUG] TLSv1.3 enabled
Jun 17 15:55:42 ubuntu xrdp[18427]: (18427)(281473264242704)[DEBUG] TLSv1.2 enabled
Jun 17 15:55:42 ubuntu xrdp[18427]: (18427)(281473264242704)[DEBUG] Security layer: requested 0, selected 0
Jun 17 15:55:42 ubuntu xrdp[18427]: (18427)(281473264242704)[INFO ] connected client computer name: PAULRYZEN
Jun 17 15:55:42 ubuntu xrdp[18427]: (18427)(281473264242704)[INFO ] adding channel item name rdpdr chan_id 1004 flag>
Jun 17 15:55:42 ubuntu xrdp[18427]: (18427)(281473264242704)[INFO ] adding channel item name rdpsnd chan_id 1005 fla>
Jun 17 15:55:42 ubuntu xrdp[18427]: (18427)(281473264242704)[INFO ] adding channel item name cliprdr chan_id 1006 fl>
Jun 17 15:55:42 ubuntu xrdp[18427]: (18427)(281473264242704)[INFO ] adding channel item name drdynvc chan_id 1007 fl>
Jun 17 15:55:42 ubuntu xrdp[18427]: (18427)(281473264242704)[INFO ] Non-TLS connection established from ::ffff:192.1>
Jun 17 15:55:42 ubuntu xrdp[18427]: (18427)(281473264242704)[DEBUG] xrdp_000047fb_wm_login_mode_event_00000001
Jun 17 15:55:42 ubuntu xrdp[18427]: (18427)(281473264242704)[INFO ] Loading keymap file /etc/xrdp/km-00000409.ini
Jun 17 15:55:42 ubuntu xrdp[18427]: (18427)(281473264242704)[WARN ] local keymap file for 0x00000409 found and doesn>
Jun 17 15:55:42 ubuntu xrdp[18427]: (18427)(281473264242704)[DEBUG] xrdp_wm_log_msg: connecting to sesman ip 127.0.0>
Jun 17 15:55:42 ubuntu xrdp-sesman[1353]: (1353)(281473614072064)[INFO ] A connection received from ::1 port 37930
Jun 17 15:55:42 ubuntu xrdp[18427]: (18427)(281473264242704)[INFO ] xrdp_wm_log_msg: sesman connect ok
Jun 17 15:55:42 ubuntu xrdp[18427]: (18427)(281473264242704)[DEBUG] xrdp_wm_log_msg: sending login info to session m>
Jun 17 15:55:42 ubuntu xrdp[18427]: (18427)(281473264242704)[DEBUG] return value from xrdp_mm_connect 0
Jun 17 15:55:42 ubuntu xrdp-sesman[1353]: pam_unix(xrdp-sesman:auth): Couldn't open /etc/securetty: No such file or >
Jun 17 15:55:42 ubuntu xrdp-sesman[1353]: pam_unix(xrdp-sesman:auth): Couldn't open /etc/securetty: No such file or >
Jun 17 15:55:42 ubuntu xrdp-sesman[1353]: (1353)(281473614072064)[INFO ] ++ created session (access granted): userna>
Jun 17 15:55:42 ubuntu xrdp-sesman[1353]: (1353)(281473614072064)[INFO ] starting Xorg session...
Jun 17 15:55:42 ubuntu xrdp-sesman[1353]: (1353)(281473614072064)[DEBUG] Closed socket 9 (AF_INET6 :: port 5910)
Jun 17 15:55:42 ubuntu xrdp-sesman[1353]: (1353)(281473614072064)[DEBUG] Closed socket 9 (AF_INET6 :: port 6010)
Jun 17 15:55:42 ubuntu xrdp-sesman[1353]: (1353)(281473614072064)[DEBUG] Closed socket 9 (AF_INET6 :: port 6210)
Jun 17 15:55:42 ubuntu xrdp[18427]: (18427)(281473264242704)[INFO ] xrdp_wm_log_msg: login successful for display 10
Jun 17 15:55:42 ubuntu xrdp-sesman[1353]: (1353)(281473614072064)[DEBUG] Closed socket 8 (AF_INET6 ::1 port 3350)
Jun 17 15:55:42 ubuntu xrdp-sesman[18428]: (18428)(281473614072064)[INFO ] calling auth_start_session from pid 18428
Jun 17 15:55:42 ubuntu xrdp[18427]: (18427)(281473264242704)[DEBUG] xrdp_wm_log_msg: started connecting
Jun 17 15:55:42 ubuntu xrdp-sesman[18428]: pam_unix(xrdp-sesman:session): session opened for user ubuntu by (uid=0)
Jun 17 15:55:42 ubuntu systemd-logind[1273]: New session c7 of user ubuntu.
Jun 17 15:55:42 ubuntu systemd[1]: Started Session c7 of user ubuntu.
Jun 17 15:55:42 ubuntu xrdp-sesman[18428]: (18428)(281473614072064)[DEBUG] Closed socket 7 (AF_INET6 ::1 port 3350)
Jun 17 15:55:42 ubuntu xrdp-sesman[18428]: (18428)(281473614072064)[DEBUG] Closed socket 8 (AF_INET6 ::1 port 3350)
Jun 17 15:55:42 ubuntu xrdp-sesman[18430]: (18430)(281473614072064)[INFO ] /usr/lib/xorg/Xorg :10 -auth .Xauthority >
Jun 17 15:55:42 ubuntu xrdp[18427]: (18427)(281473264242704)[INFO ] lib_mod_log_peer: xrdp_pid=18427 connected to X1>
Jun 17 15:55:42 ubuntu xrdp[18427]: (18427)(281473264242704)[DEBUG] xrdp_wm_log_msg: connected ok
Jun 17 15:55:42 ubuntu xrdp-sesman[18428]: (18428)(281473614072064)[CORE ] waiting for window manager (pid 18429) to>
Jun 17 15:55:42 ubuntu xrdp[18427]: (18427)(281473264242704)[DEBUG] xrdp_mm_connect_chansrv: chansrv connect success>
Jun 17 15:55:42 ubuntu xrdp[18427]: (18427)(281473264242704)[DEBUG] Closed socket 16 (AF_INET6 ::1 port 37930)
Jun 17 15:55:43 ubuntu dbus-daemon[18477]: [session uid=1000 pid=18475] AppArmor D-Bus mediation is enabled

В статье рассказано о том, как настроить подключение к Linux через протокол RDP (Remote Desktop Protocol).

RDP — это наиболее распространённый протокол для удаленной работы (или администрирования ПК), при котором экран компьютера отображается на удалённом ПК, управление с мыши и клавиатуры. RDP может использоваться между ПК с различными ОС — как Windows, так и Linux.

Следующий гайд был написан по итогам успешной установки и запуска RDP сервера под Linux Runtu (Description: Ubuntu 20.04.3 LTS) и Linux Mint «Uma» Description: Linux Mint 20.2).

Установка и настройка RDP в Linux

  1. Если до этого предпринимались неудачные попытки настройки xrdp, прежде всего нужно удалить пакеты xrdp и xorgrdp и их настройки, чтобы выполнить установку с чистого листа.

    sudo apt-get purge xrdp xorgxrdp
  2. Вначале нужно выполнить обновление версий пакетов:

    sudo apt-get update & sudo apt-get upgrade & sudo apt-get dist-upgrade
  3. Если операционная система Ubuntu Linux 16.04 или 18.04, либо 20.04 или 21.04, для установки xrdp советую воспользоваться готовым скриптом с сайта

https://c-nergy.be/downloads/xRDP/xrdp-installer-1.4.zip — скачать архив и извлечь скрипт.

Документация по программе «xrdp-installer» находится по адресу https://c-nergy.be/blog/?p=17810, а также в самой программе выводится краткая справка о возможных параметрах её вызова, при запуске sh-файла с ключом —help:

bash xrdp-installer-1.4.sh --help

Для запуска вводить команду sudo не нужно, когда надо она запросит пароль su. Запуск, например, так:

chmod +x xrdp-installer-1.4.sh
./xrdp-installer-1.4.sh

И затем перейти к разделам ОКОНЧАТЕЛЬНАЯ НАСТРОЙКА XRDP и «Диагностика«.


Если операционная система не принадлежит к перечисленным, путь установки длиннее.

sudo apt-get install x-window-system xserver-xorg xserver-xorg-core
sudo apt-get install  xserver-xorg-legacy

Выполняем реконфигурацию пакета

sudo apt-get install xserver-xorg-legacy
sudo dpkg-reconfigure xserver-xorg-legacy

окно для конфигурирования запуска Xorg:
xserver-xorg-legacy
в котором я выбрал последний пункт, дающий наибольшие права — «Кто угодно».

Данной командой производится запись в файл cat /etc/X11/Xwrapper.config:
allowed_users=anybody


Установка пакетов, необходимых для запуска xrdp:

sudo apt-get install libx11-dev libxfixes-dev libssl-dev libpam0g-dev libtool libjpeg-dev flex bison gettext autoconf libxml-parser-perl libfuse-dev xsltproc libxrandr-dev python3-libxml2 nasm fuse pkg-config git intltool checkinstall

Установка двух основных пакетов XRDP:

sudo apt-get install xrdp xorgxrdp xserver-xorg-input-all 

Можно заметить, что программа установки создаст RSA ключ.
Чтобы операционная система могла прочитать этот ключ, нужно добавить пользователя xrdp в группу ssl-cert:

sudo adduser xrdp ssl-cert

Затем, нужно установить полностью графическую подсистему MESA и драйверы видеокарты. Зачем?
Дело в том, что имеет место цепочка: RDP client -> сеть -> Xrdp server -> Xsession -> Xorg -> MESA -> OpenGL Driver -> видеокарта
При отсутствии возможности запуска графического режима, RDP клиент также «отвалится» сразу после входа.

sudo apt-get install libgl1-mesa-dri libglew1.5-dev libglew-dev libgles2-mesa-dev libglm-dev mesa-utils-extra mesa-common-dev freeglut3 freeglut3-dev

Наконец, видеокарта должна поддерживать режим OpenGL версии 2.1 и выше и иметь установленный драйвер для Linux.

  1. Если старый компьютер — на чипсетах Interl 945 (под общим названием i915) — нужно установить модифицированный, сторонний драйвер, т.к. на штатных драйверах по умолчанию включается режим OpenGL 1.4, тогда как нужен 2.1. Иначе будут ошибки (см. ниже раздел «Ошибки»)

Если следующая команда выводит информацию, что OpenGL высокой версии, ничего делать не нужно:

glxinfo | grep OpenGL

Пример хорошая версия драйвера — равна 2.1 (обращаем внимание на строчку OpenGL version string:
OpenGL vendor string: Mesa Project
OpenGL renderer string: i915 (chipset: 945G)
OpenGL version string: 2.1 Mesa 21.3.0-devel (git-dfef775 2021-09-02 focal-oibaf-ppa)
OpenGL shading language version string: 1.20
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 2.0 Mesa 21.3.0-devel (git-dfef775 2021-09-02 focal-oibaf-ppa)
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 1.0.16
OpenGL ES profile extensions:

Если версия 1.4 старая, которая не годится для XRDP, вывод команды glxinfo следующий:
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) 945G
OpenGL version string: 1.4 Mesa 21.0.3
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 2.0 Mesa 21.0.3
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 1.0.16
OpenGL ES profile extensions:

Старая версия драйвера с поддержкой OpenGL 1.4 (установленная по умолчанию из пакета «xserver-xorg-video-intel»). данная версия OpenGL 1.4 не подходит.

Устанавливаем новую версию драйвера (ТОЛЬКО ДЛЯ СТАРЫХ ЧИПСЕТОВ ВСТРОЕННОЙ ГРАФИКИ i915 — i925 — i945)

sudo add-apt-repository ppa:oibaf/graphics-drivers && sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade && sudo reboot

Данная команда обновит пакеты графического драйвера для встроенной графики Intel и выполнит перезагрузку.

P.S. Если потребуется в-дальнейшем удаление PPA-репозитория, например, после установки новой видеокарты, команда для удаления: sudo ppa-purge ppa:oibaf/graphics-drivers.

  1. Разрешение подключения к X-серверу «для всех» — дано ранее командой sudo dpkg-reconfigure xserver-xorg-legacy
    Конфигурация записана в файл

    sudo ls -l /etc/X11/Xwrapper.config

Если необходимо, можно посмотреть его содержимое или отредактировать

sudo nano /etc/X11/Xwrapper.config
  • Примечание console — Xorg доступен только для пользователей из консоли, anybody для всех. По умолчанию указано console.
    Подробнее см команду man Xwrapper.config.
  1. Настройка графики OpenGL (обязательно лишь для ПК старых чипсетов со встроенной графикой i915):

Вывод на экран модели графического адаптера:

lspci | grep VGA

Если графический адаптер — встроенная графика Intel чипсета 915 или 82945G переходим в каталог

cd /usr/share/X11/xorg.conf.d/

создаём файл 20-intel.conf:

sudo nano 20-intel.conf

и добавляем в него текст:

Section "Device"
        Identifier "Intel Graphics"
        Driver "intel"
        Option "TearFree" "true"
        Option "AccelMethod" "SNA"
        Option "BackingStore" "true"
        Option "DRI" "3"
EndSection

Вариант для старых ПК: в строке «AccelMethod» вместо стандартного метода ускорения графики «SNA» указать «uxa«.

Лучше использовать «SNA» — более современный метод встроенной графики x86. Где uxa — предыдущая архитектура.

Сохраняем и выходим Ctrl+O, Ctrl+X.

  1. Редактирование конфигурационного файла XRDP:
sudo nano /etc/xrdp/xrdp.ini

в середину файла после строки «background» добавить адрес по умолчанию для XRDP.
address=address=0.0.0.0
nastrojka_xrdp

Перезапуск сервера:

sudo /etc/init.d/xrdp stop
sudo /etc/init.d/xrdp start

ОКОНЧАТЕЛЬНАЯ НАСТРОЙКА XRDP

  1. Добавляем пользователя xrdp в группу tty и даём права на последовательный порт (для решения проблемы начала сессии Xorg, что ‘tty0 access denied’)

    sudo usermod -a -G tty xrdp
    sudo chmod g+r /dev/tty0
  2. Разрешаем запуск сервиса «xrdp»

    sudo systemctl start xrdp
    sudo systemctl enable xrdp
  3. ВАЖНО: Копируем файл скрипт для запуска сессии и исправляем его

    cp /etc/X11/xinit/xinitrc ~/.xinitrc

Узнаём тип установленной оболочки рабочего стола:

echo $XDG_CURRENT_DESKTOP

Если вывод команды пустой, попробовать

cat /etc/X11/default-display-manager

Редактируем файл ~/.xinitrc для запуска сеанса (сессии):

nano ~/.xinitrc

комментируем или удаляем строчку /etc/X11/Xsession, вместо неё пишем:

exec startlxde

или

exec openbox-session
  • для ОС Runtu

или

exec startxfce4

для Linux Mint с оболочкой рабочего стола XFCE

или

exec startlxqt

для Lubuntu или Linux Mint с оболочкой рабочего стола LXQT (если такой вывод у команды
echo $XDG_CURRENT_DESKTOP).


Таким образом, файл .xinitrc в домашнем каталоге пользователя, запускаемый во время старта сеанса XRDP, принял следующий компактный вид:

#!/bin/sh
exec startlxqt

Примечание от 09.09.2021: В этот файл можно добавить запуск любых нужных программ, например, запуск сервера звука pulseaudio и загрузку и переключение национальной раскладки клавиатуры. Тогда файл .xinitrc примет вид:

#!/bin/sh
pulseaudio &
setxkbmap -layout 'us,ru' -option 'grp:ctrl_shift_toggle,grp_led:scroll' &
exec startlxqt

Примечание от 07.10.2021: данные команды нужно добавлять в файл ~/.xinitrc пользователя, который будет подключаться по протоколу RDP.

Содержимое файла ~/.xinitrc, если серверная ОС — Linux Mint с оболочкой XFCE:

#!/bin/sh
pulseaudio &
setxkbmap -layout 'us,ru' -option 'grp:alt_shift_toggle,grp_led:scroll' &
exec startxfce4

Когда рабочий стол сервера — LXQT, мой файл ~/.xinitrc следующий:
#!/bin/sh
pulseaudio &
setxkbmap -layout 'us,ru' -option 'grp:alt_shift_toggle,grp_led:scroll' &
exec startlxqt

И для OpenBox (Runtu Linux) работающий вариант файла ~/.xinitrc следующий:
#!/bin/sh
pulseaudio &
setxkbmap -layout 'us,ru' -option 'grp:ctrl_shift_toggle,grp_led:scroll' &
exec openbox-session

exec startlxde

Универсальный файл ~/.xinitrc для любых рабочих столов можно найти на stackoverflow (необходима установка slim).

Диагностика

Перезагружаем ПК, который выполняет роль сервера.

Проверяем с него же, что сервер Xorg запускается без ошибок:

sudo Xorg :10 -auth .Xauthority -config xrdp/xorg.conf -noreset -nolisten tcp

На этом этапе экран может погаснуть, если вы проверяете XRDP с того же ПК, на котором запущена начальная сессия Xorg. Нужно нажать Ctrl+Alt+F1 ввести имя и пароль, при помощи команды ps -aux | grep xrdp найти номер процесса «sudo xrdp» и завершить его командой «sudo kill <номер процесса>«.

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

Если же сообщение «(EE) Cannot establish any listening sockets — Make sure an X server isn’t already running(EE)»,
нужно перезагрузить ПК и повторить диагностику.

Второй вариант проверки — перед первым подключением к серверу XRDP, завершаем текущий сеанс «Пуск» — «Выйти» — «Выйти из системы». Так как клиент RDP не сможет создать второй сеанс такого же пользователя (с ошибкой в файле ~/.xorgxrdp.10.log: «(EE) Caught signal 11 (Segmentation fault). Server aborting»).

Либо, нужно создать второго пользователя для тестирования подключения к xRDP, которым будем подключаться по протоколу RDP:

sudo useradd -m ivanov-rdp
passwd ivanov-rdp

Ошибки xRDP сервера в Linux и их решения

Настройка брандмауэра

При невозможности подключения по протоколу RDP к серверу, прежде всего проверить открытие порта на FireWall:

sudo apt install nmap
sudo nmap 192.168.55.100 -p 3389

где вместо 192.168.55.100 укажите IP-адрес сервера в локальной сети.
Не забываем открыть локальный порт 3389 в firewall:

sudo ufw allow 3389

Если порт открыт, то вывод:
PORT STATE SERVICE
3389/tcp open ms-wbt-server

Проблема «При подключении с клиента по RDP виден чёрный пустой экран»

На сервере не установлен пакет xorgxrdp — программная «прослойка» между xorg и rdp сервером, который отображает графику — Рабочий стол, указатель мыши и иконки.

Решение — установить на сервер пакет xorgxrdp:

sudo apt-get install xorgxrdp
sudo service xrdp restart

Сеанс xRDP теперь должен работать. Пробуем подключиться!

Примечание: Пакет «xorgxrdp — Remote Desktop Protocol (RDP) modules for X.org» входит в большинство дистрибутивов Debian, а также Ubuntu 18.04 «bionic», 20.04 LTS «focal», 21.04 «hirsute», 21.10 «impish», 22.04 LTS «jammy» (вышла 21.04.2022), и производных ОС на основе DEB-пакетной базы Ubuntu (таких как Runtu, Lubuntu, Xubuntu, Kubuntu и др.), а также дистрибутивы на основе RPM: Fedora, Arch и др.. Поэтому данная инструкция должна работать с множеством версий Linux.


Remmina RDP Client — подключение к серверу

sudo apt-get install remmina remmina-plugin-rdp remmina-plugin-secret
sudo reboot
remmina

Добавляем подключение — тип RDP.
remmina

Если VPN не используется, то в IP адрес вводим «белый» IP-адрес домашнего роутера.
При работе через VPN IP адрес относится к внутренней (локальной, домашней) сети.
Имя и пароль — такие же как при входе «с клавиатуры» на сервере.

Нижние кнопки окна Remmina на нетбуках с разрешением экрана 1024×600 пикселей могут быть обрезаны и видны частично.
«Отменить» — «Сохранить как значения по умолчанию» — «Сохранить» — «Подключиться» — «Сохранить и подключиться»

Нажимаем крайнюю правую кнопку «Сохранить и подключиться».

Различные проблемы

Журналы ошибок в системной каталоге /var/log/:

  • xrdp.log
  • xrdp-sesman.log
  • Xorg.0.log, Xorg.10.log

Журналы ошибок в каталоге пользователя ~:

  • ~/.xorgxrdp.10.log

Просмотреть их можно командами:

sudo cat /var/log/xrdp.log
sudo cat /var/log/xrdp-sesman.log
sudo cat /var/log/Xorg.0.log
sudo cat /var/log/Xorg.10.log
sudo cat ~/.xorgxrdp.log

Если при подключении с ПК под управлением Windows к ПК под управлением Linux после ввода имени пользователя пароля виден сине-зелёный однотонный фон без текста и иконок,
или в файле XRDP.LOG многочисленные ошибки, значит подключение произошло, но не запустилась графика Xorg — скорее всего из-за старой версии OpenGL, либо прав, см. выше.

Пример ошибки на стороне клиента при попытке подключения с помощью программы MSTSC.EXE:
blue

Сообщения об ошибка в журнале XRDP.LOG на стороне сервера:
error19
или аналогичная [DEBUG] Closed socket 17 (AF_UNIX)

Решение — диагностика командой с рабочего стола машины-сервера:

sudo Xorg :10 -auth .Xauthority -config xrdp/xorg.conf -noreset -nolisten tcp

Нужно добиться отсутствия ошибок Xorg в файле /var/log/Xorg.10.log.

Если при подключении с ПК под управлением Windows виден на мгновение чёрный экран, который тут же закрывается, один из вариантов:

  • неправильной имя/пароль пользователя
  • неправильный скрипт ~/.xinitrc (не запустилась сессия рабочего стола). Проверьте файл ~/.xinitrc на наличие команды exec <имя оболочки>.
  • пользователь, которым вы подключаетесь к ПК удалённо, имеет открытую сессию в операционной системе локально (использует компьютер в данный момент).

Безопасность

Теперь любой ПК в локальной сети сможет подключаться к вашему компьютеру по протоколу RDP. Следует установить для учётной записи пользователя сложный пароль. Если подключение к ПК из Интернет — можно дополнительно использовать VPN с шифрованием трафика.


Дата последнего редактирования 25.04.2022

Похожие публикации

Hello World, 

Based on the feedback we have received through this blog, it seems that there is some changes that has been introduced in Ubuntu 18.04.2 which seems to break the xRDP capability and people cannot perform the remote desktop connection anymore.  After being presented with the xRDP login page,  only the green background screen is presented to you and will fail eventually.  This issue will occur if you perform a manual installation or if you use the latest version of Std-Xrdp-Install-5.1.sh script.

This post will explain what’s needs to be done in order to fix this issue.  So, let’s go ! 

Overview

Ubuntu 18.04.2 has been released and more and more people are noticing that after installing the xRDP package, they are not able to connect to the desktop interface through remote desktop connection software.  Apparently, Ubuntu 18.04.2 has introduced some changes that preventing xRDP package to work as expected.  We have performed a manual installation to see what could be the problem. 

Problem Description

So, to perform a manual installation, we have opened a terminal console and we have issued the following command 

sudo apt-get install xrdp 

xrdp_issue_0

Click on Picture for Better Resolution

After having performed the installation, we have checked that the xrdp service was running using the following commane 

sudo systemctl status xrdp 

xrdp_issue_5

Click on Picture for Better Resolution

So far, everything seems to be working as expected.  So, we moved to a windows computer, fired up the remote desktop client and as we can see in the screenshot, we are presented with the xrdp login page

xrdp_issue_1

Click on Picture for Better Resolution

After entering our credentials,  we only see a green background page and nothing happens.  After a certain amount of time (several minutes), you should see the following error message 

connection problem,giving up
some problem

xrdp_issue_2

Click on Picture for Better Resolution

Resolution process

After looking into the logs, it seems that the xorgxrdp component of xRDP is not working as expected.  When we have performed the installation of the xRDP package, we have noticed that information displayed in the console mentionning that xorgxrdp package is needed (see screenshot below).  So, when performing the xrdp installation, it seems that the xorgxrdp package is not installed anymore.

xrdp_issue_3

Click on Picture for Better Resolution

So, it’s seems that the issue encountered is due to the fact that the xorgxrdp package is not installed.  So, moving forward, we have decided to install the xorgxrdp package manually just after installing the xrdp package.  So, we have issued the following command in a Terminal console 

sudo apt-get install xorgxrdp  

Issuing this command will not perform the installation as there are some dependencies errors

xrdp_issue_4

Click on Picture for Better Resolution

We have just found the root cause issue

The xorgxrdp package cannot be installed because of some missing dependencies. Because we have no xorgxrdp component installed on the computer, it seems logical that when we perform a remote connection, we are never presented with the Ubuntu desktop…

Fixing xRDP on Ubuntu 18.04.2

If you are performing a brand new xRDP installation or if you have installed xRDP and you are encountering the issue, you will need to perform the following actions 

New xRDP installation Scenario

So, let’s go into more details.  Let’s assume, you have performed a fresh installation of Ubuntu 18.04.2 and you want to install xRDP package through a manual installation, you will need to perform the following actions.

Step 1 – Install xserver-xorg-core by issuing the following command

sudo apt-get install xserver-xorg-core

xrdp_issue_6

Click on Picture for Better Resolution

Note : You will notice that installing this package will trigger removal of packages *xserver-xorg-hwe-18.04* which might be used or needed by your system… So, you might loose keyboard and mouse input when connecting locally to the machine.  To fix this issue, you will have to issue the following command just after this one 

sudo apt-get -y install xserver-xorg-input-all

Step 2 – Install xRDP package

sudo apt-get install xrdp

In the screenshot, you can see that because there is no more dependencies issues, the xorgxrdp package is  listed to be installed along with the xRDP package

xrdp_issue_7

Click on Picture for Better Resolution

Fixing xRDP installed package

If you have performed the installation of xRDP packages on Ubuntu 18.04.2 using the Std-Xrdp-install-0.5.1.sh script, in order to restore the xrdp functionality, you will need to simply install the missing dependencies by issuing the following command

sudo apt-get install xserver-xorg-core

xrdp_issue_6

Click on Picture for Better Resolution

Note : Again, you will notice that installing this package will trigger removal of 17 packages *xserver-xorg*-hwe-18.04* which might be used or needed by your system…So, you might loose keyboard and mouse input when connecting locally to the machine.  To fix this issue, you will have to issue the following command just after this one 

sudo apt-get -y install xserver-xorg-input-all

After installing the missing dependencies, you will need to manually install the xorgxrdp package in order to restore the xRDP functionality

sudo apt-get install xorgxrdp

xrdp_issue_8

Click on Picture for Better Resolution

When this is done, you will be able to perform your remote connection against your Ubuntu 18.04.2

xrdp_issue_9

Click on Picture for Better Resolution

Fixing keyboard and mouse issues in Ubuntu 18.04.2 

After installing xRDP package using the recipe above or if you have used the custom installation script (version 2.2), you might encounter another issue. When login in locally on the ubuntu machine, you will notice that you have lost keyboard and mouse interaction.  Again, as explained above, the fix is quite simple, rune the following command in the terminal session

sudo apt-get -y install xserver-xorg-input-all

Note : As long as you do not reboot after installing the xRDP package, you will not have any problems.  After a reboot, you might loose keyboard and mouse input on your system.  

Final Notes

The addition of the xserver-xorg-hwe-18.04 and associated packages seems to have introduced some dependencies changes that interfere wit the xorgxrdp and xrdp packages version available on Ubuntu repository.  So, if you have used the Std-Xrdp-Install-0.5.1.sh script and you are facing this issue, you will need to manually install the xorgxrdp package.  If you have used the custom installation script (install-xrdp-2.2.sh), you will not have the issue as the script compile and install the xorgxrdp package separately and we are using the latest xrdp and xorgxrdp package version..However, you might also have the keyboard and mouse problem. Again, you will need to re-install the xserver-xorg-input-all package...

It seems that we will need to update the script in order to provide support for Ubuntu 18.04.2 as Ubuntu 18.04 is a Long Term support release.  Please be patient as it might take us some time before we can upload the new version of the script….

Hope this clarify the issue…

Till next time

See ya

Содержание

Введение
Установка
Проверить статус
Перезапуск xrdp
Клиенты: xfreerdp, remmina
Ошибки
Похожие статьи

Введение

xrdp-это бесплатная и открытая реализация сервера Microsoft RDP (Remote Desktop Protocol),
которая позволяет операционным системам, отличным от

Microsoft Windows

(таким как

Linux

и
операционные системы в стиле

BSD
), обеспечить полностью функциональный RDP-совместимый
удаленный рабочий стол.

Он работает путем соединения графики из системы X Window с клиентом и ретрансляции элементов
управления из клиента обратно в

X
.

По словам разработчиков, протокол работает с rdesktop, FreeRDP и собственным
клиентом удаленного рабочего стола Microsoft

Установка

Чтобы пользоваться xrdp нужно сперва установить

X-сервер
.
Например, Gnome или Xfce.

Установить Gnome:

sudo apt -y update

sudo apt -y install ubuntu-desktop

Установить xfce:

sudo apt update

sudo apt install xubuntu-desktop

sudo apt -y install xrdp

Reading package lists… Done
Building dependency tree
Reading state information… Done
The following additional packages will be installed:
xorgxrdp
Suggested packages:
guacamole xrdp-pulseaudio-installer
The following NEW packages will be installed:
xorgxrdp xrdp
0 upgraded, 2 newly installed, 0 to remove and 1 not upgraded.
Need to get 488 kB of archives.
After this operation, 3,212 kB of additional disk space will be used.
Do you want to continue? [Y/n]

Y

Проверить статус

sudo systemctl status xrdp

● xrdp.service — xrdp daemon
Loaded: loaded (/lib/systemd/system/xrdp.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2021-01-19 15:21:51 Fri 2023-02-10 06:40:14 EET; 1min ago
Docs: man:xrdp(8)
man:xrdp.ini(5)
Main PID: 188751 (xrdp)
Tasks: 1 (limit: 38009)
Memory: 1.9M
CGroup: /system.slice/xrdp.service
└─188751 /usr/sbin/xrdp

Jan 17 15:21:50 andrei xrdp[188750]: (188750)(139708266788672)[INFO ] address [0.0.0.0] port [3389] mode 1
Jan 17 15:21:50 andrei xrdp[188750]: (188750)(139708266788672)[INFO ] listening to port 3389 on 0.0.0.0
Jan 17 15:21:50 andrei xrdp[188750]: (188750)(139708266788672)[INFO ] xrdp_listen_pp done
Jan 17 15:21:50 andrei xrdp[188750]: (188750)(139708266788672)[DEBUG] Closed socket 7 (AF_INET6 :: port 3389)
Jan 17 15:21:50 andrei systemd[1]: xrdp.service: Can’t open PID file /run/xrdp/xrdp.pid (yet?) after start: Operation >
Jan 17 15:21:51 andrei systemd[1]: Started xrdp daemon.
Jan 17 15:21:52 andrei xrdp[188751]: (188751)(139708266788672)[INFO ] starting xrdp with pid 188751
Jan 17 15:21:52 andrei xrdp[188751]: (188751)(139708266788672)[INFO ] address [0.0.0.0] port [3389] mode 1
Jan 17 15:21:52 andrei xrdp[188751]: (188751)(139708266788672)[INFO ] listening to port 3389 on 0.0.0.0
Jan 17 15:21:52 andrei xrdp[188751]: (188751)(139708266788672)[INFO ] xrdp_listen_pp done

Перезапуск xrdp

sudo systemctl restart xrdp

Клиенты

Remmina

sudo apt install remmina

Популярный клиент не только для XRDP но и для

VNC

и других протоколов. Подробности об установке и использовании

здесь

Ошибки

Cannot read private key file /etc/xrdp/key.pem: Permission denied

Вы выполнили

sudo systemctl status xrdp

И получили ошибку

Cannot read private key file /etc/xrdp/key.pem: Permission denied

Выполните

ls -la /etc/xrdp/

total 332
drwxr-xr-x 3 root root 4096 Jan 19 15:21 .
drwxr-xr-x 142 root root 12288 Feb 4 13:51 ..
lrwxrwxrwx 1 root root 36 Jan 19 15:21 cert.pem -> /etc/ssl/certs/ssl-cert-snakeoil.pem
lrwxrwxrwx 1 root root 38 Jan 19 15:21 key.pem -> /etc/ssl/private/ssl-cert-snakeoil.key

lrwxrwxrwx говорит нам о том, что у этого файла никаких ограничений нет, но

тип этого файла

это

ссылка

поэтому переходим туда, куда он указывает

sudo -i ls -la /etc/ssl/private/

total 12
drwx—x— 2 root ssl-cert 4096 Dec 11 14:51 .
drwxr-xr-x 4 root root 4096 Dec 11 15:12 ..
-rw-r—— 1 root ssl-cert 1708 Dec 11 14:51 ssl-cert-snakeoil.key

-rw-r—— означает что владелец файла может читать и записывать, а члены группы могут читать.

Группа называется ssl-cert

Добавим xrdp в эту группу и проверим

sudo usermod -G ssl-cert xrdp

groups xrdp

xrdp : xrdp ssl-cert

Теперь xrdp член группы ssl-cert и должен иметь право читать файл

ssl-cert-snakeoil.key

sudo systemctl restart xrdp

Похожие статьи

Ubuntu
Установка
Настройка сети
SSH: удалённый доступ
SCP: обмен файлами;
Firewall
Дата и время
X Window System Ubuntu
xrandr: Поменять местами экраны
XRDP: Удалённый рабочий стол
VNC: Удалённый рабочий стол
Wayland
Изменить machine-id
Изменить ulimit
xclip: Работа с буфером обмена
dpkg: Установка из .deb файлов
Удалить старые ядра
FAQ
Файлы
Объединить .pdf файлы
diff: сравнение файлов
find: поиск файлов
kill: завершить процесс
make
signal: системные сигналы
env: переменные окружения
localectl: язык
systemctl: Список активных сервисов
cron: задания по расписанию
sudo
Grep

В настоящее время существует множество вариантов удалённого подключения к рабочим местам. Кроме того, стоимость аренды виртуальной машины хорошей производительности в облаке в месяц, сопоставима с ценой кружки хорошего кофе. Такие удалённые виртуальные машины удобно использовать с офисных слабых компьютеров, из поездок с ноутбуком и слабым Интернет-соединением, запускать на них длительные задачи, как например перепроведение документов в 1С, скачивание больших файлов.

Ещё можно организовать общий сервер на базе Ubuntu 20.04 в облаке или на мощном компьютере и совместно использовать его ресурсы с помощью удалённого доступа. В этой статье мы рассмотрим как выполняется установка XRDP Ubuntu 20.04.

XRDP – это реализация протокола удалённого рабочего стола Microsoft (RDP) с открытым исходным кодом, которая позволяет графически управлять удалённой системой.

В отличие от коммерческого продукта, XRDP в Linux позволяет работать одновременно с одним компьютером или виртуальной машиной неограниченному числу пользователей, что позволяет активно использовать XRDP для разворачивания терминальных серверов на базе Ubuntu 20.04.

Установка XRDP на Ubuntu 20.04

Шаг 1. Поиск пакета

В Ubuntu 20.04 можно получить установить программу с помощью утилиты apt. Давайте установим XRDP из репозитория Ubuntu 20.04. Для этого, с помощью терминала, вы можете проверить, есть ли пакет xrdp в хранилище пакетов Ubuntu 20.04:

sudo apt searh xrdp

aCOhrPoejVMAAAAASUVORK5CYII=

Шаг 2. Обновление системы

Такой пакет есть, поэтому вы можете, предварительно обновив систему, простым путём установить xrdp на Ubuntu 20.04. Обновляем и перезагружаем для принятия изменений в ОС:

sudo apt –y update && sudo apt –y upgrade && sudo reboot

BwrmmDYoSnOJAAAAAElFTkSuQmCC

Шаг 3. Установка пакетов

После перезагрузки можно устанавливать XRDP из репозитория Ubuntu 20.04

sudo apt install xrdp

Обращаю внимание, что при установке генерируется сертификат, который необходим для функционирования RDP протокола, строка ниже указывает, что сертификат успешно создан:

ssl_gen_key_xrdp1 ok

DfbbccYc54AAAAAElFTkSuQmCC

Шаг 3. Настройка службы XRDP

В связи с особенностями системы Ubuntu 20.04, необходимо ввести пользователя xrdp, от имени которого работает XRDP в системе, в группу ssl-cert. Выполните команду:

sudo adduser xrdp ssl-cert

Затем добавьте службу xrdp в автозапуск и перезапустите её для применения изменений:

sudo systemct enable xrdp

sudo systemctl restart xrdp

3r3tgckokiLAAAAAElFTkSuQmCC

sudo systemctl status xrdp

Если результат выполнения команды выглядит так, как на скриншоте, то все прошло успешно. В финале предоставьте доступ из внешней сети к порту 3389 в файрволле Ubuntu 20.04:

sudo ufw allow from 192.168.2.0/24 to any port 3389

sudo ufw allow 3389

Шаг 4. Поиск IP адреса

С помощью любого клиента RDP можно подключаться по имени компьютера, возможно для этого нужно дополнительно настроить DNS. Лучше получить доступ по IP-адресу сервера, на котором установлен XRDP. Чтобы узнать IP-адрес, необходимо в терминале ввести команду:

sudo ip a

+pQaqmDqAAGAAAAAElFTkSuQmCC

На моём скриншоте обведён IP-адрес виртуальной машины с Ubuntu 20.04, который автоматически присвоен сетевому интерфейсу eth1. Сетевых интерфейсов может быть несколько, у каждого из них могут быть свои IP-адреса, к которым так же можно подключаться по RDP.

Шаг 5. Проверка подключения

Стандартный клиент RDP для Windows называется Подключение к удалённому рабочему столу. В нем необходимо ввести IP-адрес или имя сервера, можно указать логин и пароль для входа в удалённую машину, настроить различные параметры взаимодействия.

На скриншоте ниже можно видеть окно для входа Xorg, куда требуется ввести логин, в моем случае user и пароль, в моем случае 1. Для смены раскладки клавиатуры в Ubuntu 20.04 используется комбинация клавиш Super+Пробел (с моей клавиатуры клавиши Windows + Пробел). Если в окне раскладка не меняется, и вводится пароль не на том языке, то необходимо отключить клиент RDP, закрыть его, поменять язык в Windows на нужный и снова подключиться к удалённой машине.

YPPzk8h+9BcAAAAASUVORK5CYII=

Настройка XRDP Ubuntu 20.04 практически завершена.

Ошибка черный экран XRDP в Ubuntu

B8YC4whhvEr+QAAAABJRU5ErkJggg==

Для исправления такой ошибки необходимо внести изменение в файл, расположенный в папке /etc/xrdp, запускающий каждую сессию удалённого доступа XRDP с именем startwm.sh:

n5a4x+AgAAAABJRU5ErkJggg==

Внесите изменения в файле startwm.sh:

unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR

Перед строкой:

test –x /etc/X11/Xsession && exec /etc/X11/Xsession

как показано на скриншоте. Это обнуляет системные переменные, сформированные предыдущими сеансами. В результате, мы избавляемся от чёрного экрана при подключении по RDP к Ubuntu 20.04

w9SurgbSddChAAAAABJRU5ErkJggg==

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

sudo systemctl restart xrd

И можно выполнить подключение к Ubuntu по RDP:

385ngK0YuG6VgAAAABJRU5ErkJggg==

Выводы

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

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Понравилась статья? Поделить с друзьями:
  • Ue на стиральной машине lg при отжиме как устранить ошибка
  • Uds ошибка iveco
  • Udp server caught an error with code address not available
  • Udp send error
  • Ubuntu virtualbox install error