Xrdp astra linux ошибка

Добрый день!
Пытаюсь настроить RDP как описано в вики.
Подключаюсь с Windows ввожу логин, пароль, пустой экран 4ре минуты и потом выдаётся лог подключения.

[20220324-10:32:40] [INFO ] starting xrdp with pid 1604
[20220324-10:32:40] [INFO ] address [0.0.0.0] port [3389] mode 1
[20220324-10:32:40] [INFO ] listening to port 3389 on 0.0.0.0
[20220324-10:32:40] [INFO ] xrdp_listen_pp done
[20220324-10:32:44] [INFO ] Socket 12: AF_INET connection received from 192.168.56.103 port 54230
[20220324-10:32:44] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
[20220324-10:32:44] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem
[20220324-10:32:44] [ERROR] Cannot read private key file /etc/xrdp/key.pem: Permission denied
[20220324-10:32:44] [ERROR] libxrdp_force_read: header read error
[20220324-10:32:44] [INFO ] Socket 15: AF_INET connection received from 192.168.56.103 port 54231
[20220324-10:32:44] [ERROR] Processing [ITU-T T.125] Connect-Initial failed
[20220324-10:32:44] [ERROR] [MCS Connection Sequence] receive connection request failed
[20220324-10:32:44] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
[20220324-10:32:44] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem
[20220324-10:32:44] [ERROR] xrdp_sec_incoming: xrdp_mcs_incoming failed
[20220324-10:32:44] [ERROR] Cannot read private key file /etc/xrdp/key.pem: Permission denied
[20220324-10:32:44] [ERROR] xrdp_rdp_incoming: xrdp_sec_incoming failed
[20220324-10:32:44] [ERROR] xrdp_process_main_loop: libxrdp_process_incoming failed
[20220324-10:32:44] [INFO ] Connected client computer name: MY-PC
[20220324-10:32:44] [ERROR] xrdp_iso_send: trans_write_copy_s failed
[20220324-10:32:44] [WARN ] Received [MS-RDPBCGR] TS_UD_HEADER type 0xc006 is unknown (ignored)
[20220324-10:32:44] [ERROR] Sending [ITU T.125] DisconnectProviderUltimatum failed
[20220324-10:32:44] [WARN ] Received [MS-RDPBCGR] TS_UD_HEADER type 0xc00a is unknown (ignored)
[20220324-10:32:44] [INFO ] xrdp_load_keyboard_layout: keyboard_type [4] keyboard_subtype [0]
[20220324-10:32:44] [INFO ] xrdp_load_keyboard_layout: model [] variant [] layout [us,ru] options [grp:alt_shift_toggle]
[20220324-10:32:44] [INFO ] Non-TLS connection established from 192.168.56.103 port 54231: encrypted with standard RDP security
[20220324-10:32:44] [INFO ] xrdp_caps_process_pointer: client supports new(color) cursor
[20220324-10:32:44] [INFO ] xrdp_process_offscreen_bmpcache: support level 1 cache size 5242880 MB cache entries 100
[20220324-10:32:44] [INFO ] xrdp_caps_process_codecs: nscodec, codec id 1, properties len 3
[20220324-10:32:44] [WARN ] xrdp_caps_process_codecs: unknown codec id 5
[20220324-10:32:44] [INFO ] xrdp_caps_process_codecs: RemoteFX, codec id 3, properties len 49
[20220324-10:32:44] [INFO ] Loading keymap file /etc/xrdp/km-00000409.ini
[20220324-10:32:44] [WARN ] local keymap file for 0x00000409 found and doesn’t match built in keymap, using local keymap file
[20220324-10:32:44] [INFO ] Loading keymap file /etc/xrdp/km-00000419.ini
[20220324-10:32:44] [WARN ] local keymap file for 0x00000419 found and doesn’t match built in keymap, using local keymap file
[20220324-10:32:49] [INFO ] connecting to sesman ip 127.0.0.1 port 3350
[20220324-10:32:49] [INFO ] xrdp_wm_log_msg: sesman connect ok
[20220324-10:32:49] [INFO ] sesman connect ok
[20220324-10:32:49] [INFO ] sending login info to session manager, please wait…
[20220324-10:32:49] [INFO ] xrdp_wm_log_msg: login successful for display 10
[20220324-10:32:49] [INFO ] login successful for display 10
[20220324-10:32:49] [INFO ] loaded module ‘libxup.so’ ok, interface size 10296, version 4
[20220324-10:32:49] [INFO ] started connecting
[20220324-10:32:49] [INFO ] lib_mod_connect: connecting via UNIX socket
[20220324-10:36:19] [INFO ] connection problem, giving up
[20220324-10:36:19] [INFO ] some problem

[20220324-10:32:40] [INFO ] starting xrdp-sesman with pid 1594
[20220324-10:32:40] [INFO ] listening to port 3350 on 127.0.0.1
[20220324-10:32:49] [INFO ] A connection received from 127.0.0.1 port 47812
[20220324-10:32:49] [INFO ] Terminal Server Users group is disabled, allowing authentication
[20220324-10:32:49] [INFO ] ++ created session (access granted): username user, ip 192.168.56.103:54231 — socket: 15
[20220324-10:32:49] [INFO ] starting Xorg session…
[20220324-10:32:49] [INFO ] Starting session: session_pid 1610, display :10.0, width 1920, height 1080, bpp 24, client ip 192.168.56.103:54231 — socket: 15, user name user
[20220324-10:32:49] [INFO ] [session start] (display 10): calling auth_start_session from pid 1610
[20220324-10:32:49] [INFO ] Starting X server on display 10: /usr/lib/xorg/Xorg :10 -auth .Xauthority -config xrdp/xorg.conf -noreset -nolisten tcp -logfile .xorgxrdp.%s.log
[20220324-10:32:59] [WARN ] Timed out waiting for X server on display 10 to startup
[20220324-10:32:59] [INFO ] Session started successfully for user user on display 10
[20220324-10:32:59] [INFO ] Session in progress on display 10, waiting until the window manager (pid 1624) exits to end the session
[20220324-10:32:59] [INFO ] Starting the xrdp channel server for display 10
[20220324-10:32:59] [WARN ] Timed out waiting for X server on display 10 to startup
[20220324-10:32:59] [ERROR] There is no X server active on display 10
[20220324-10:32:59] [ERROR] A fatal error has occured attempting to start the window manager on display 10, aborting connection
[20220324-10:32:59] [WARN ] Window manager (pid 1624, display 10) exited quickly (0 secs). This could indicate a window manager config problem
[20220324-10:32:59] [INFO ] Calling auth_stop_session and auth_end from pid 1610
[20220324-10:32:59] [INFO ] Terminating X server (pid 1625) on display 10
[20220324-10:32:59] [INFO ] Terminating the xrdp channel server (pid 1630) on display 10
[20220324-10:32:59] [INFO ] X server on display 10 (pid 1625) returned exit code 1 and signal number 0
[20220324-10:32:59] [INFO ] xrdp channel server for display 10 (pid 1630) exit code 0 and signal number 0
[20220324-10:32:59] [INFO ] cleanup_sockets:
[20220324-10:32:59] [INFO ] ++ terminated session: username user, display :10.0, session_pid 1610, ip 192.168.56.103:54231 — socket: 15

Подскажите что с этим делать?

Добрый день. Аналогичная проблема , все еще нет решения.

Я ставил по этой инструкции (кажется, было давно — но все работает).

Если в /var/log/xrdp.log есть ошибка
[ERROR] Cannot read private key file /etc/xrdp/key.pem: Permission denied
То нужно добавить пользователя xrdp в группу ssl-cert:
# sudo adduser xrdp ssl-cert
и перезапустить сервис XRDP:
# sudo systemctl restart xrdp
Мне помогло.

Последнее редактирование:

Проблема оказалась в том что я выдал пользователю все возможные привилегии, а какая-то из них не работала, убрал все и заработало. Также была проблема добавлении параметра отображать скрин удаленного рабочего стола тоже все падало, приходилось сносить xrdp и ставить по новой

@matt335672
Here is the output of xrdp -v

xrdp 0.9.19
  A Remote Desktop Protocol Server.
  Copyright (C) 2004-2020 Jay Sorg, Neutrino Labs, and all contributors.
  See https://github.com/neutrinolabs/xrdp for more information.

  Configure options:
      --build=x86_64-generic-linux-gnu
      --host=x86_64-generic-linux-gnu
      --target=x86_64-clr-linux-gnu
      --program-prefix=
      --prefix=/usr
      --exec-prefix=/usr
      --bindir=/usr/bin
      --sbindir=/usr/bin
      --sysconfdir=/etc
      --datadir=/usr/share
      --includedir=/usr/include
      --libdir=/usr/lib64
      --libexecdir=/usr/libexec
      --localstatedir=/var
      --sharedstatedir=/usr/com
      --mandir=/usr/share/man
      --infodir=/usr/share/info
      --enable-pixman
      --enable-jpeg
      --enable-fuse
      --enable-pam
      --enable-vsock
      build_alias=x86_64-generic-linux-gnu
      host_alias=x86_64-generic-linux-gnu
      target_alias=x86_64-clr-linux-gnu
      CC=gcc
      CFLAGS=-O2 -g -feliminate-unused-debug-types -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=64 -Wformat -Wformat-security -Wl,-z,now,-z,relro,-z,max-page-size=0x1000,-z,separate-code -Wno-error -ftree-vectorize -ftree-slp-vectorize -Wl,--enable-new-dtags -fcf-protection=return -Wl,--build-id=sha1 -m64 -march=westmere -mtune=skylake-avx512 -fasynchronous-unwind-tables -Wp,-D_REENTRANT -fno-lto -fstack-protector-strong -fzero-call-used-regs=used  -fPIC
      LDFLAGS= -Wl,--build-id=sha1
      PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig
      PKG_CONFIG_LIBDIR=/usr/lib64/pkgconfig:/usr/share/pkgconfig

  Compiled with OpenSSL 1.1.1o  3 May 2022

I did use swupd with the following command sudo swupd bundle-add devpkg-xrdp

In Clear Linux /etc/pam.d/xrdp-sesman is located at /usr/share/pam.d/xrdp-sesman. Here is the output of that file:
image

/etc/pam.d is located at /usr/share/pam.d/ as well. Here is the output of /usr/share/pam.d/:

total 160
-rw-r--r-- 9 root root  103 Oct 31  2019 chage
-rw-r--r-- 1 root root  427 Oct 31  2019 chfn
-rw-r--r-- 9 root root  103 Oct 31  2019 chgpasswd
-rw-r--r-- 1 root root  252 Oct 31  2019 chpasswd
-rw-r--r-- 1 root root  625 Oct 31  2019 chsh
-rw-r--r-- 1 root root 1208 Nov 13  2020 common-account
-rw-r--r-- 1 root root  883 Nov 13  2020 common-auth
-rw-r--r-- 1 root root 1633 Nov 13  2020 common-password
-rw-r--r-- 1 root root  890 Nov 13  2020 common-session
-rw-r--r-- 1 root root  818 Nov 13  2020 common-session-noninteractive
-rw-r--r-- 1 root root   56 Jan 26 14:30 cups
-rw-r--r-- 1 root root  579 Feb  1  2019 gdm-autologin
-rw-r--r-- 1 root root  548 Feb  1  2019 gdm-fingerprint
-rw-r--r-- 1 root root  646 Feb  1  2019 gdm-launch-environment
-rw-r--r-- 1 root root  494 Feb  1  2019 gdm-password
-rw-r--r-- 1 root root  520 Feb  1  2019 gdm-smartcard
-rw-r--r-- 9 root root  103 Oct 31  2019 groupadd
-rw-r--r-- 9 root root  103 Oct 31  2019 groupdel
-rw-r--r-- 9 root root  103 Oct 31  2019 groupmems
-rw-r--r-- 9 root root  103 Oct 31  2019 groupmod
-rw-r--r-- 1 root root  388 Feb  1  2019 login
-rw-r--r-- 1 root root  564 May 15 15:01 mock
-rw-r--r-- 1 root root  106 Oct 31  2019 newusers
-rw-r--r-- 1 root root  816 Nov 13  2020 other
-rw-r--r-- 1 root root  106 Oct 31  2019 passwd
-rw-r--r-- 1 root root  155 Feb  1  2019 polkit-1
-rw-r--r-- 1 root root  143 Feb  1  2019 runuser
-rw-r--r-- 1 root root  138 Feb  1  2019 runuser-l
-rw-r--r-- 1 root root  279 Feb  1  2019 sshd
-rw-r--r-- 2 root root  178 Feb  1  2019 su
-rw-r--r-- 1 root root   84 Feb  1  2019 sudo
-rw-r--r-- 2 root root  178 Feb  1  2019 su-l
-rw-r--r-- 1 root root  430 Feb  1  2019 system-auth
-rw-r--r-- 1 root root  337 Feb  1  2019 systemd-user
-rw-r--r-- 9 root root  103 Oct 31  2019 useradd
-rw-r--r-- 9 root root  103 Oct 31  2019 userdel
-rw-r--r-- 9 root root  103 Oct 31  2019 usermod
-rw-r--r-- 1 root root  316 Jan 21  2020 vlock
-rw-r--r-- 1 root root  400 Mar 23 11:50 xrdp-sesman
-rw-r--r-- 1 root root  313 Mar 10 12:17 xscreensaver

Hopefully this can help find the root cause! Thanks again much appreciated :)

Я на компьютере с Windows 7 пытаюсь получить доступ к системе RHEL7 через удаленный рабочий стол Windows.

До сегодняшнего дня я (и другие в моем отделе) был в состоянии войти в систему RHEL, используя xrdp.

Сегодня внезапно xrdp начал отклонять соединения. Я вижу зеленый фоновый экран входа в систему, но он отклоняет учетные данные (и это нормально).

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

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

Есть идеи?

РЕДАКТИРОВАТЬ:

~/.xsession-errors :

gnome-session-is-accelerated: llvmpipe detected.

/var/log/xrdp.log:

[20171031-13:55:53] [DEBUG] TLSv1.2 enabled
[20171031-13:55:53] [DEBUG] TLSv1.1 enabled
[20171031-13:55:53] [DEBUG] TLSv1 enabled
[20171031-13:55:53] [DEBUG] Security layer: requested 3, selected 1
[20171031-13:55:53] [INFO ] connected client computer name: SPENATE7
[20171031-13:55:53] [INFO ] TLS connection established from 192.168.197.176 port 51321: TLSv1.2 with cipher AES256-GCM-SHA384
[20171031-13:55:53] [DEBUG] xrdp_00007c0e_wm_login_mode_event_00000001
[20171031-13:55:53] [INFO ] Loading keymap file /etc/xrdp/km-0000040a.ini
[20171031-13:55:53] [WARN ] local keymap file for 0x0000040a found and doesn't match built in keymap, using local keymap file
[20171031-13:55:58] [DEBUG] xrdp_wm_log_msg: connecting to sesman ip 127.0.0.1 port 3350
[20171031-13:55:59] [INFO ] xrdp_wm_log_msg: sesman connect ok
[20171031-13:55:59] [DEBUG] xrdp_wm_log_msg: sending login info to session manager, please wait...
[20171031-13:55:59] [DEBUG] return value from xrdp_mm_connect 0
[20171031-13:56:05] [INFO ] xrdp_wm_log_msg: login failed for display 0
[20171031-13:56:05] [DEBUG] xrdp_mm_module_cleanup
[20171031-13:56:05] [DEBUG] Closed socket 18 (AF_INET 127.0.0.1:46890)

/var/log/xrdp-sesman.log :

[20171031-12:58:20] [ERROR] X server -- no display in range is available
[20171031-12:58:20] [DEBUG] Closed socket 8 (AF_INET 127.0.0.1:3350)
[20171031-13:01:28] [INFO ] shutting down sesman 1
[20171031-13:01:28] [DEBUG] Closed socket 7 (AF_INET 127.0.0.1:3350)
[20171031-13:01:29] [CORE ] shutting down log subsystem...
[20171031-13:01:29] [DEBUG] libscp initialized
[20171031-13:01:29] [INFO ] starting xrdp-sesman with pid 14292
[20171031-13:01:29] [INFO ] listening to port 3350 on 127.0.0.1
[20171031-13:01:41] [INFO ] A connection received from 127.0.0.1 port 35854
[20171031-13:01:41] [INFO ] ++ created session (access granted): username sanpen, ip 192.168.197.176:60904 - socket: 12
[20171031-13:01:41] [INFO ] starting Xvnc session...
[20171031-13:01:41] [DEBUG] Closed socket 9 (AF_INET 0.0.0.0:5910)
[20171031-13:01:41] [DEBUG] Closed socket 9 (AF_INET 0.0.0.0:6010)
[20171031-13:01:42] [DEBUG] Closed socket 9 (AF_INET 0.0.0.0:6210)
[20171031-13:01:42] [DEBUG] Closed socket 9 (AF_INET 0.0.0.0:5911)
[20171031-13:01:42] [DEBUG] Closed socket 9 (AF_INET 0.0.0.0:6011)
[20171031-13:01:42] [DEBUG] Closed socket 9 (AF_INET 0.0.0.0:6211)

В статье рассказано о том, как настроить подключение к 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

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

Примечание. Эта статья является логическим продолжением публикации по установке Астра линукс, а также концепции не перегружать выходцев «из Windows-среды» чрезмерно спецификой неудачных идей Линукс.

выберите менеджер пакетов для установки приложений

выберите пакеты xrdp и xorgxrdp

подтвердите

запустите файловый менеджер под админитстром в двух экземплярах

для чего на файловом менеджере клик правой кнопкой мыши — Запуск от Администратор
в правом окне менеджера откройте Файловая система — etc/xrdp каталог
а влевом Домашняя — Desktop и скопируйте сюда файл xrdp.ini
(Примечание. В Линуксе папки с системным назначением типа etc/xrdp обычному пользователю для редактирования не доступны, поэтому тут показан учебный прием как перемещать из таких мест и редактировать файлы)

двойным щелчком откройте файл и отредактируйте , заменив fork=true на fork=false (это всего лишь управление поведением для новых сеансов одного пользователя, не сильно принципиально), в линуксе часто система настраивается убого, правя текстовики с подобными параметрами

комментируем секцию [Xvnc] , а секцию [Xorg] наоборот, – раскомментируем.

далее файл -записать

и xrdp.ini перетаскиваем из Домашняя — Desktop в Файловая система — etc/xrdp , т.е. перезаписываем исходный файл
осталось перечитать настройки xrdp.ini службой
для этого через Пуск — Панель управления перейдем в раздел Система и выберем Инициализация системы

сделайте поиск по xrdp
и выберите перезапустить юнит

ну или можете целиком сервер рестартануть, вы же все равно настариваете.

Если к этому времени вы уже освоили файрволл, то также не забудьте открыть порт 3389.

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

Минутка теории

Как вы могли заметить графическая оболочка (называется Fly) не сильно «богата» приложениями и возможностями. Но это можно посчитать плюсом, так как ее простота и легкость делает отличным вариантом для терминальных серверов (по сравнению с графическими оболочками других ОС как gnome Ubuntu например).

Однако несмотря на всю легкость мы только в обучающем примере всё будем ставить на один сервер, в реальной же жизни терминальных пользователей и сервер 1с+субд надо разносить, подробнее здесь.

Далее переходим к установке СУБД.
Вопросы можно обсудить здесь.
Смотрите также Ubuntu: установка терминального сервера и графических приложений

Понравилась статья? Поделить с друзьями:
  • Xrdebugnew cpp как исправить ошибку
  • Xray ошибка р0523
  • Xrcore dll ошибка сталкер тень чернобыля
  • Xray ошибка лямбда
  • Xray ошибка двигателя