17 сообщений / 0 новое
Последнее сообщение
aleksis
Аватар пользователя aleksis
Не в сети
Последнее посещение: 10 лет 2 месяца назад
Регистрация: 04/07/2013 - 17:57
Терминальный сервер по RDP

Всем привет!
Нужен терминальный сервер по RDP протоколу - другие варианты не подходят! использую opensuse 12.3 с LXDE. Установил пакет XRDP (ставил как из репозитория, так и собирал из исходников), сделал линки для нужных библиотек, запустил - xrdp, xrdp-sesman. Результат один - не работает толком.
Если выбирать в меню соедниение "sesman-Xvnc" сессия только с XTERM. Оттуда можно запускать программы, но все работает очень криво, окна не открыть, ни закрыть, не поменять размер, выхода на рабочий стол нет.
Если использовать "sesman-X11rdp", то происходит коннект, система какое-то время думает, а потом вылетает, в логах SESMAN пишет следующее:


[20130704-15:25:44] [INFO ] listening...
[20130704-15:26:09] [INFO ] scp thread on sck 7 started successfully
[20130704-15:26:10] [INFO ] ++ created session (access granted): username aleks, ip 192.168.10.107:2668 - socket: 7
[20130704-15:26:10] [INFO ] starting X11rdp session...
[20130704-15:26:10] [CORE ] error starting X server - user aleks - pid 2434
[20130704-15:26:10] [DEBUG] errno: 2, description: No such file or directory
[20130704-15:26:10] [DEBUG] execve parameter list: 11
[20130704-15:26:10] [DEBUG] argv[0] = X11rdp
[20130704-15:26:10] [DEBUG] argv[1] = :10
[20130704-15:26:10] [DEBUG] argv[2] = -geometry
[20130704-15:26:10] [DEBUG] argv[3] = 1680x1050
[20130704-15:26:10] [DEBUG] argv[4] = -depth
[20130704-15:26:10] [DEBUG] argv[5] = 24
[20130704-15:26:10] [DEBUG] argv[6] = -bs
[20130704-15:26:10] [DEBUG] argv[7] = -ac
[20130704-15:26:10] [DEBUG] argv[8] = -nolisten
[20130704-15:26:10] [DEBUG] argv[9] = tcp
[20130704-15:26:10] [DEBUG] argv[10] = (null)
[20130704-15:26:19] [ERROR] X server for display 10 startup timeout
[20130704-15:26:19] [INFO ] starting xrdp-sessvc - xpid=2434 - wmpid=2433
[20130704-15:26:20] [ERROR] X server for display 10 startup timeout
[20130704-15:26:20] [ERROR] another Xserver is already active on display 10
[20130704-15:26:20] [DEBUG] aborting connection...

я так понял - не хватает ей X11 сервера. пробовал собрать x11rdp из изходников - не получилось. Весь прикол в том, что для УБУНТЫ все получилось, хотя тоже пришлось потанчить с бубном, главное - собрался x11rdp. Кто может поделиться опытом, как получить нормальный рабочий стол по RDP для opensuse?

Теги: 

Отредактировано: lecksys вкл 01/04/2014 - 22:13
vippa5
Аватар пользователя vippa5
Не в сети
Последнее посещение: 10 лет 8 месяцев назад
Регистрация: 08/07/2013 - 00:28
Аналогичная проблема. На

Аналогичная проблема. На Ubuntu 12.04 получилось собрать x11rdp_xorg71 и настроить x11rdp.
На OPENSUSE 12.03 сборка заканчивается ошибками.
Пакеты libXfont-devel, libXfont1, libXfontcache-devel, libXfontcache1, xfontsel установлены.
Первая из них error make xfont:

ftfuncs.c:57:10: error: #include expects "FILENAME" or
ftfuncs.c:59:10: error: #include expects "FILENAME" or
ftfuncs.c:60:10: error: #include expects "FILENAME" or
ftfuncs.c: In function 'FreeTypeOpenInstance':
ftfuncs.c:467:2: error: unknown type name 'TT_Face'
ftfuncs.c:471:2: error: unknown type name 'SFNT_Service'
ftfuncs.c:472:11: error: 'TT_Face' undeclared (first use in this function)
ftfuncs.c:472:11: note: each undeclared identifier is reported only once for each function it appears in
ftfuncs.c:472:19: error: expected ';' before 'face'
ftfuncs.c:475:16: error: invalid type argument of '->' (have 'int')
ftfuncs.c:486:12: error: 'SFNT_Service' undeclared (first use in this function)
ftfuncs.c:486:25: error: expected ';' before 'tt_face'
ftfuncs.c:487:12: error: invalid type argument of '->' (have 'int')
ftfuncs.c: In function 'tt_get_metrics':
ftfuncs.c:815:5: error: unknown type name 'TT_LongMetrics'
ftfuncs.c:824:14: error: 'TT_LongMetrics' undeclared (first use in this function)
ftfuncs.c:824:30: error: expected ';' before 'header'
ftfuncs.c:825:20: error: invalid type argument of '->' (have 'int')
ftfuncs.c:826:20: error: invalid type argument of '->' (have 'int')
ftfuncs.c:829:15: error: 'TT_ShortMetrics' undeclared (first use in this function)
ftfuncs.c:829:31: error: expected expression before ')' token
ftfuncs.c:830:31: error: expected ')' before 'header'
ftfuncs.c: In function 'ft_get_very_lazy_bbox':
ftfuncs.c:845:2: error: unknown type name 'TT_Face'
ftfuncs.c:845:22: error: 'TT_Face' undeclared (first use in this function)
ftfuncs.c:845:30: error: expected ',' or ';' before 'face'
ftfuncs.c:852:24: error: invalid type argument of '->' (have 'int')
ftfuncs.c: In function 'FT_Do_SBit_Metrics':
ftfuncs.c:914:5: error: unknown type name 'SFNT_Service'
ftfuncs.c:915:5: error: unknown type name 'TT_Face'
ftfuncs.c:918:5: error: unknown type name 'TT_SBit_Strike'
ftfuncs.c:919:5: error: unknown type name 'TT_SBit_Range'
ftfuncs.c:920:5: error: unknown type name 'TT_SBit_MetricsRec'
ftfuncs.c:931:13: error: 'TT_Face' undeclared (first use in this function)
ftfuncs.c:931:21: error: expected ';' before 'ft_face'
ftfuncs.c:932:15: error: 'SFNT_Service' undeclared (first use in this function)
ftfuncs.c:932:28: error: expected ';' before 'face'
ftfuncs.c:934:48: error: invalid type argument of '->' (have 'int')
ftfuncs.c:935:17: error: invalid type argument of '->' (have 'int')
ftfuncs.c:937:21: error: invalid type argument of '->' (have 'int')
ftfuncs.c:945:18: error: invalid type argument of '->' (have 'int')
ftfuncs.c:949:17: error: invalid type argument of '->' (have 'int')
ftfuncs.c:951:19: error: invalid type argument of '->' (have 'int')
ftfuncs.c:955:5: warning: implicit declaration of function 'FT_STREAM_POS' [-Wimplicit-function-declaration]
ftfuncs.c:955:5: warning: nested extern declaration of 'FT_STREAM_POS' [-Wnested-externs]
ftfuncs.c:958:5: warning: implicit declaration of function 'FT_STREAM_SEEK' [-Wimplicit-function-declaration]
ftfuncs.c:958:5: warning: nested extern declaration of 'FT_STREAM_SEEK' [-Wnested-externs]
ftfuncs.c:961:17: error: invalid type argument of '->' (have 'int')
ftfuncs.c:965:50: error: request for member 'width' in something not a structure or union
ftfuncs.c:966:50: error: request for member 'height' in something not a structure or union
ftfuncs.c:968:56: error: request for member 'horiBearingX' in something not a structure or union
ftfuncs.c:969:56: error: request for member 'horiBearingY' in something not a structure or union
ftfuncs.c:970:56: error: request for member 'horiAdvance' in something not a structure or union
ftfuncs.c:972:56: error: request for member 'vertBearingX' in something not a structure or union
ftfuncs.c:973:56: error: request for member 'vertBearingY' in something not a structure or union
ftfuncs.c:974:56: error: request for member 'vertAdvance' in something not a structure or union
ftfuncs.c: In function 'restrict_code_range_by_str':
ftfuncs.c:1963:9: warning: implicit declaration of function 'isspace' [-Wimplicit-function-declaration]
make[3]: *** [ftfuncs.lo] Error 1
make[3]: Leaving directory `/home/wer/x11rdp_xorg71/libXfont-X11R7.1-1.1.0/src/FreeType'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/wer/x11rdp_xorg71/libXfont-X11R7.1-1.1.0/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/wer/x11rdp_xorg71/libXfont-X11R7.1-1.1.0'
make: *** [all] Error 2
error make xfont

DA
Аватар пользователя DA
Не в сети
Последнее посещение: 7 лет 9 месяцев назад
Регистрация: 11/05/2012 - 18:24
Отсюда собирали?

Отсюда собирали? Или отсюда?

openSUSE 13.1 x64 | Linux 3.11 | KDE 4.13
openSUSE 12.3 x32 | Linux 3.7 | KDE 4.10
aleksis
Аватар пользователя aleksis
Не в сети
Последнее посещение: 10 лет 2 месяца назад
Регистрация: 04/07/2013 - 17:57
в продолжение темы

Исходники для x11rdp собирал отсюда - svn co svn://server1.xrdp.org/srv/svn/repos/main/x11rdp_xorg71, буду признателен, если укажете, где лежат ПРАВИЛЬНЫЕ ИСХОДНИКИ.
Собирал с использованием скрипта "buildx.sh", искал сборки на build-сервисе, нашел патч для buildx.sh - не помогло. В любом случае выдает.


make[1]: Вход в каталог `/home/alx/bin/x11rdp/x11rdp_xorg71/xorg-server-X11R7.1-1.1.0/Xext'
if /bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../include -I../include -I../include -I../include -I../include -I../include -I../include -I../include -I../hw/xfree86/dixmods/extmod -D_GNU_SOURCE -DHAVE_DIX_CONFIG_H -DXFree86Server -DXFree86LOADER -DDEFAULTPOLICYFILE=\"/usr/local/X11rdp//lib/xserver/SecurityPolicy\" -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -fno-strict-aliasing -D_BSD_SOURCE -DHAS_FCHOWN -DHAS_STICKY_DIR_BIT -I/usr/local/X11rdp/include -I/usr/local/X11rdp//include -I/usr/local/X11rdp//include/freetype2 -I../include -I../include -I../Xext -I../composite -I../damageext -I../xfixes -I../Xi -I../mi -I../miext/shadow -I../miext/damage -I../render -I../randr -I../fb -g -O2 -MT xprint.lo -MD -MP -MF ".deps/xprint.Tpo" -c -o xprint.lo xprint.c; \
then mv -f ".deps/xprint.Tpo" ".deps/xprint.Plo"; else rm -f ".deps/xprint.Tpo"; exit 1; fi
gcc -DHAVE_CONFIG_H -I. -I. -I../include -I../include -I../include -I../include -I../include -I../include -I../include -I../include -I../hw/xfree86/dixmods/extmod -D_GNU_SOURCE -DHAVE_DIX_CONFIG_H -DXFree86Server -DXFree86LOADER -DDEFAULTPOLICYFILE=\"/usr/local/X11rdp//lib/xserver/SecurityPolicy\" -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -fno-strict-aliasing -D_BSD_SOURCE -DHAS_FCHOWN -DHAS_STICKY_DIR_BIT -I/usr/local/X11rdp/include -I/usr/local/X11rdp//include -I/usr/local/X11rdp//include/freetype2 -I../include -I../include -I../Xext -I../composite -I../damageext -I../xfixes -I../Xi -I../mi -I../miext/shadow -I../miext/damage -I../render -I../randr -I../fb -g -O2 -MT xprint.lo -MD -MP -MF .deps/xprint.Tpo -c xprint.c -fPIC -DPIC -o .libs/xprint.o
In file included from xprint.c:87:0:
/usr/include/X11/extensions/Printstr.h:761:9: error: unknown type name 'PrivateRec'
xprint.c: In function 'InitContextPrivates':
xprint.c:1399:26: warning: assignment from incompatible pointer type [enabled by default]
xprint.c: At top level:
xprint.c:1426:1: warning: no previous prototype for 'XpAllocateContextPrivateIndex' [-Wmissing-prototypes]
xprint.c:1432:1: warning: no previous prototype for 'XpAllocateContextPrivate' [-Wmissing-prototypes]
make[1]: *** [xprint.lo] Ошибка 1
make[1]: Выход из каталога `/home/alx/bin/x11rdp/x11rdp_xorg71/xorg-server-X11R7.1-1.1.0/Xext'
make: *** [all-recursive] Ошибка 1
error make xorg-server

попробовал собрать из исходников по указанной в предыдущем посте ссылке - вывалилось с такой-же ошибкой. Еще раз хочу напомнить, что в качестве графической оболочки использую LXDE.

я не фанат, просто предпочитаю разумные решения

DA
Аватар пользователя DA
Не в сети
Последнее посещение: 7 лет 9 месяцев назад
Регистрация: 11/05/2012 - 18:24
Знать бы где. Арчеводы

Знать бы где. Арчеводы собирают из первого указанного мной гита.

openSUSE 13.1 x64 | Linux 3.11 | KDE 4.13
openSUSE 12.3 x32 | Linux 3.7 | KDE 4.10
aleksis
Аватар пользователя aleksis
Не в сети
Последнее посещение: 10 лет 2 месяца назад
Регистрация: 04/07/2013 - 17:57
Решение найдено

Решение оказалось крайне простое до безобразия - ставишь xrdp, в файле "/etc/xrdp/startwm.sh" прописываешь в функции wm_start() запуск любимой графической оболочки (я прописал startlxde), запускаешь сервер (под рутом - xrdp, xrdp-sesman), подключаешься "sesman-Xvnc" - и все прекрасно работает. По крайней мере под локальными пользователями, щас думаю как прикрутить пользователей домена.
Насчет X11rdp, то я ее почти собрал - до конца доводить идею лениво, когда уже есть готовое решение, тем более что способ достаточно извращенный и затратный в плане времени. Если кратко то качаешь сборку "github.com/FreeRDP/xrdp". В папке "xrdp/xorg/X11R7.6", есть файл "buildx.sh", его надо запустить ... в ходе установки он скачает 102 исходника и постоянно будет что-то просить - дайте ему все Lol В результате создаться папка для CHROOT и папка "build_dir" с исходниками X11rdp. Там порядка 45 папок. Дальше чисто теория - зайти Chroot и собрать исходники (в каждую папку зайти и configure --wiht prefix папка куда будете ставить, make, make install). Я так понял должен собраться сам сервак и потом сделать на него ссылку. Меня хватило тока на 20 папок и без Chroot. Можно конечно написать скрипт, но нет времени сидеть. Так что желающим довести дело до логического конца желаю удачи - может сделаю это сам при наличии времени.

я не фанат, просто предпочитаю разумные решения

aleksis
Аватар пользователя aleksis
Не в сети
Последнее посещение: 10 лет 2 месяца назад
Регистрация: 04/07/2013 - 17:57
В продолжение темы

появился новый гемор - не могу сделать, чтобы пользователи домена могли заходить по терминальной сессии (локально зайти под пользователем домена можно), вход только для локальных пользователей, как и где прописать доменных, чтобы заходить под терминалом - может кто в курсе?

я не фанат, просто предпочитаю разумные решения

DA
Аватар пользователя DA
Не в сети
Последнее посещение: 7 лет 9 месяцев назад
Регистрация: 11/05/2012 - 18:24
В Фаерволе открыли всё, что

В Фаерволе открыли всё, что нужно?

openSUSE 13.1 x64 | Linux 3.11 | KDE 4.13
openSUSE 12.3 x32 | Linux 3.7 | KDE 4.10
aleksis
Аватар пользователя aleksis
Не в сети
Последнее посещение: 10 лет 2 месяца назад
Регистрация: 04/07/2013 - 17:57
файервол вааще выключен.

файервол вааще выключен. зайти могу, но только под ЛОКАЛЬНЫМ пользователем, пользователей домена почему-то не авторизует, хотя локально под доменным пользователем зайти могу - т.е. учетка user@DOMEN локально прокатывает, а по rdp не пропускает, я так понимаю надо чтото в СЕСМАНЕ править, но пока не понял что

я не фанат, просто предпочитаю разумные решения

aleksis
Аватар пользователя aleksis
Не в сети
Последнее посещение: 10 лет 2 месяца назад
Регистрация: 04/07/2013 - 17:57
Обходное решение проблемы

Пишу продолжение, и надеюсь мой опыт пригодится кому-либо еще. Вообщем в ходе решения проблем без полноценного x11rdp не получилось менять раскладку клавиатуры. Решать дальше не стал так как нашел другой вариант, который мне больше подошел - передача не рабочего стола, а отдельного окна приложения на рабочую машину с виндой. Подробности описаны здесь - http://system-administrators.info/?p=1857. В данном случае все равно пришлось решать проблему с доменной авторизацией, решение оказалось достаточно простым, только нигде не прописано для моего любимого дистра. В файле конфигурации kerberos (/etc/krb5.conf) надо было дописать одну строчку в секции [domain_realm]. Привожу полный текст моего файла:


[libdefaults]
default_realm = MYDOMAIN.BY
clockskew = 300
# default_realm = EXAMPLE.COM

[realms]
MYDOMAIN.BY = {
kdc = srv-main.mydomain.by
default_domain = mydomain.by
admin_server = srv-main.mydomain.by
}
# EXAMPLE.COM = {
# kdc = kerberos.example.com
# admin_server = kerberos.example.com
# }

[logging]
kdc = FILE:/var/log/krb5/krb5kdc.log
admin_server = FILE:/var/log/krb5/kadmind.log
default = SYSLOG:NOTICE:DAEMON
[domain_realm]
.mydomain.by = MYDOMAIN.BY
mydomain.by = MYDOMAIN.BY
[appdefaults]
pam = {
ticket_lifetime = 1d
renew_lifetime = 1d
forwardable = true
proxiable = false
minimum_uid = 1
clockskew = 300
external = sshd
use_shmem = sshd
}


а терминальный доступ с передачей рабочего стола и со всеми необходимыми функциями мы собрали на DEBIAN - обидно, что на OPENSUSE задачу до конца довести не удалось. Всем удачи.

я не фанат, просто предпочитаю разумные решения

lexaan
Аватар пользователя lexaan
Не в сети
Последнее посещение: 7 лет 5 месяцев назад
Регистрация: 18/07/2013 - 15:04
для подключения по mstsc (rdp

для подключения по mstsc (rdp) я поставил вот эти пакеты (на 12.2 и 12.3 чуть с бубном встают)
xorg-x11-server-dmx-7.3.99-29.8.i586.rpm
xorg-x11-server-rdp-7.3.99-12.7.i586.rpm
xrdp-0.4.1-85.1.i586.rpm
http://yadi.sk/d/vbxFIBlx6y0H2
в YAST запуск xrdp включил, firewall отключил и все... главное при подключении 24 или 32 бита на графику обязательно

aleksis
Аватар пользователя aleksis
Не в сети
Последнее посещение: 10 лет 2 месяца назад
Регистрация: 04/07/2013 - 17:57
заработало_но_другие проблемы не решил

Привет! Наконец-то нашел время попробовать предложенный метод. Заработало. Но ... так и не решил проблему с переключением раскладок клавиатуры в ходе сессии (ГУГЛ как то не помог, попробовал вариант с кеймап - не прокатило). Также пока не знаю, как прикрутить доменных пользователей (хотя пока особо не искал). Может Вы уже решали эти проблемы?

я не фанат, просто предпочитаю разумные решения

lexaan
Аватар пользователя lexaan
Не в сети
Последнее посещение: 7 лет 5 месяцев назад
Регистрация: 18/07/2013 - 15:04
http://unixforum.org/index
aleksis
Аватар пользователя aleksis
Не в сети
Последнее посещение: 10 лет 2 месяца назад
Регистрация: 04/07/2013 - 17:57
В продолжение темы

Итак, в целом у меня все получилось, я выиграл спор у коллеги - ярого дебианщика - в том плане, что на openSUSE у меня все заработает, и РДП сервер, и доменная авторизация, и смена раскладки ... вообщем все решилось не очень красиво ... но решилось. Сделал следующее:
1. Для смены языка в файл /etc/X11/xdm/Xsession (есть еще один файл Xsession, но от него толку не было) после строки "set +e > /dev/null 2>&1" добавить


setxkbmap -layout "us,ru(winkeys)" -model "pc105" -option "grp:ctrl_shift_toggle,grp_led:scroll"

с виджетом индикатора клавиатуры работало не очень корректно, но языки переключались
2. Для доменной авторизации я уже писал выше, но дополнительно необходимо в файл /etc/samba/smb.conf в секцию [CLOBAL] добавить строчку
winbind use default domain = yes

тогда при авторизации после имени доменного пользователя не надо будет писать @ДОМЕН.
3. Может кто знает, как сделать переключение раскладок клавиатуры при использовании "sesman-Xvnc", потому как описанный способ для xrdp тут не работает.
Всем удачи

я не фанат, просто предпочитаю разумные решения

aleksis
Аватар пользователя aleksis
Не в сети
Последнее посещение: 10 лет 2 месяца назад
Регистрация: 04/07/2013 - 17:57
интересно

интересно, как это все будет в 13.1 реализовано

я не фанат, просто предпочитаю разумные решения

lexaan
Аватар пользователя lexaan
Не в сети
Последнее посещение: 7 лет 5 месяцев назад
Регистрация: 18/07/2013 - 15:04
Пока не очень интересно...

Пока не очень интересно... третий день эксперементирую... пока только в FailSafe Mode...

stinov
Аватар пользователя stinov
Не в сети
Последнее посещение: 6 лет 11 месяцев назад
Регистрация: 26/03/2017 - 17:42
вопрос к aleksis

вопрос к aleksis
КАК вы это сделали? )))