LINUX.ORG.RU
ФорумAdmin

XRDP подключение к существуеющей сессии

 


0

2

Пользователи подключаются к RDP через

[Xvnc]
name=Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1
 lsof  -b -w -n -c /^Xvnc$/b -a -iTCP:5900-5999
COMMAND   PID          USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
Xvnc     1527          user    6u  IPv6 1175406      0t0  TCP [::1]:5935->[::1]:54862 (ESTABLISHED)
Xvnc     1527          user    7u  IPv4 1175403      0t0  TCP 127.0.0.1:5935 (LISTEN)
Xvnc     1527          user    9u  IPv6 1175404      0t0  TCP [::1]:5935 (LISTEN)
Xvnc     8494         user2    7u  IPv4 1086524      0t0  TCP 127.0.0.1:5931 (LISTEN)
Xvnc     8494         user2    9u  IPv6 1086525      0t0  TCP [::1]:5931 (LISTEN)
Xvnc     9156         user3    7u  IPv4 1085333      0t0  TCP 127.0.0.1:5932 (LISTEN)
Xvnc     9156         user3    9u  IPv6 1085334      0t0  TCP [::1]:5932 (LISTEN)
Xvnc    25267         user4    7u  IPv4 1021079      0t0  TCP 127.0.0.1:5925 (LISTEN)
Xvnc    25267         user4    9u  IPv6 1021080      0t0  TCP [::1]:5925 (LISTEN)
Xvnc    31582          user    7u  IPv4 1164173      0t0  TCP 127.0.0.1:5933 (LISTEN)
Xvnc    31582          user    9u  IPv6 1164174      0t0  TCP [::1]:5933 (LISTEN)
Xvnc    32075         user5    7u  IPv4 1158119      0t0  TCP 127.0.0.1:5934 (LISTEN)
Xvnc    32075         user5    9u  IPv6 1158120      0t0  TCP [::1]:5934 (LISTEN)
Для подключения берется следующий порт. Все это привязывается к оборудованию пользователя. И если мы на одной и той же машине будем отключаться/подключатся 110500 раз то все ок, видим свои открытые программы. Но если мы перебежали в соседную комнату то xrdp для нашего нового рабочего места создает новую сессию.

Это особенность или можно бороться!

★★★★★

В своё время не нашел для этого опции, сдаётся мне надо лезть в исходники xrdp - кажется он использует ip клиента как часть идентификатора сессии

Pinkbyte ★★★★★
()
Ответ на: комментарий от DonkeyHot

Бегал, подключалось к старой.

Если жестко сессию для себя определить в xrdp.ini, где указать фиксированный номер экрана?

petav ★★★★★
() автор топика
Ответ на: комментарий от Pinkbyte

кажется он использует ip клиента как часть идентификатора сессии

Думаю, он привязывается по этим параметрам (user,geometry,depth):

Xvnc :10 -auth .Xauthority -geometry 1920x1080 -depth 16 -rfbauth /home/user1/.vnc/sesman_user1_passwd:10 -bs -nolisten tcp -localhost -dpi 96  
[20170822-11:31:24] [INFO ] starting xrdp-sessvc - xpid=1344 - wmpid=1343
А при переподключении смотрит на соответствие новго подключения старому по этим параметрам, находит pid и соединяет
[20170822-11:32:26] [INFO ] A connection received from ::1 port 45464
[20170822-11:32:26] [INFO ] ++ reconnected session: username variantb, display :10.0, session_pid 1342, ip 0.0.0.0:45430 - socket: 12
А судя по этому опыту Учим xrdp подключаться к прошлым сессиям я прав

Ну что ж, начнем. Суть способа заключается в комментировании в файле sessman/session.c пяти следующих строк:

Поясню. Здесь сканируются существующие сеансы и делается проверка, от какого пользователя и какого разрешения, цветовой глубины, типа (VNC, XRDP) планируется открыть сессию. Если находится сеанс с такими же параметрами, то подключаемся к той же сессии. Если нет, открываем новую. Условия: разрешение, глубина цвета, тип сеанса, я решил отключить.

petav ★★★★★
() автор топика
Последнее исправление: petav (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.