В статье рассматриваются нюансы установки и настройки терминального сервера по протоколу RDP для работы с базами 1с на платформе 8.3 на базе дистрибутива Xubuntu 14.04 с учетом возможностей последней версии сервера xrdp и опыта реальной эксплуатации.

Не так давно (в конце декабре 2016 года) вышел в свет очередной релиз сервера xrdp версии 0.9.1. Одновременно с этим была выпущена стабильная версия одного из «бекендов» xrdp — xorgxrdp v 0.2.0. Эти версии мы и будем использовать далее при установке.

Небольшое, но важное отступление


В составе дистрибутивов linux в-основном содержится устаревшая версия сервера xrdp версии 0.6.x, в которой имеются баги, которые мешают нормально работать с 1с (например, не работает нормально буфер обмена с русскими символами).

В основном, когда рассматривается установка терминального сервера на базе протокола rdp на linux, рассматриваются варианты установки сервера xrdp со сборкой X11Rdp бекенда с помощью специальных скриптов, например, X11RDP-o-Matic (для ubuntu) — статья на хабре, статья на infostart.

Использование бекэнда X11Rdp несет в себе несколько минусов:

  • Достаточно долгое время сборки
  • Сложно решить проблему с переключением языков. После переподключения к сеансу переключение языков может перестать работать. Автор регестрировал проблему на сайте разработчиков — гарантированное решение было найдено автором только для бекенда xorgxrdp правкой исходно кода (далее этот метод используется в статье)
  • Скорость отрисовки может оказаться недостаточно быстрой для комфортной работы пользователей

Использование бекэнда xorgxrdp позволяет указанных проблем избежать.

В статье рассматривается установка на Xubuntu версии 14.04 LTS, а не более свежей версии 16.04 LTS, по причине падения производительности при прорисовке удаленного экрана. Есть зарегистрированная проблема по данной ситуации. Кому-то помогало отключение compositor в настройках, но автору статьи не удалось добиться такой же скорости прорисовки, как на версии Xubuntu 14.04.

Рекомендации по установке операционной системы


Для установки используем 32-битную версию ОС Xubuntu 14.04. Ссылка на образ.

Система может быть установлена как на хост, на и в виртуальную среду. Я обычно предпочитаю виртуализацию KVM, рабочие сервера ставились на ней.

При разбивке дисков использовалась классическая схема (не LVM), файловая система ext4. В виртуальную машину подключено 3 диска фиксированного размера:

  • 22 Гбайта: 18 Гигабайт точка монтирования /, остальное под swap
  • 5 Гбайт: точка монтирования /var
  • 5 Гбайт: точка монтирования /tmp

Данное разбиение — это предпочтение автора с учетом удобства эксплуатации. В любом случае, при планировании дискового пространства необходимо учитывать возможную нагрузку на файловую систему. При использовании файловых баз данных желательно использовать SSD диск(и).

Для сервера необходимо установить статический IP-адрес.

Для удобства ввода команд для последующей установки необходимо установить OpenSSH-сервер:

sudo apt-get install openssh-server
sudo restart ssh

При активированном firewall открываем порт 22:

firewall-cmd --add-port 22/tcp --permanent
firewall-cmd --reload

Установка и настройка сервера xrdp with xorgxrdp backend


На сайте разработчиков есть инструкция для установки на debian 8, используем ее за основу.

Устанавливаем необходимые зависимости:

sudo apt-get install git autoconf libtool pkg-config gcc g++ make libssl-dev libpam0g-dev libjpeg-dev libx11-dev libxfixes-dev libxrandr-dev flex bison libxml2-dev intltool xsltproc xutils-dev python-libxml2 g++ xutils libfuse-dev libmp3lame-dev nasm libpixman-1-dev xserver-xorg-dev git

Создаем каталог для загрузки дистрибутивов:

mkdir -p ~/xrdp-xorg
cd ~/xrdp-xorg
BD=`pwd`
cd "${BD}"

Клонируем из репозитория текущую последнюю сборку xrdp и собираем с кодеком rfxcodec:

git clone git://github.com/neutrinolabs/xrdp
cd xrdp
git submodule init
git submodule update
cd librfxcodec
./bootstrap
./configure
make
cd ..
./bootstrap
./configure --enable-fuse --enable-rfxcodec --disable-ipv6
make

Устанавливаем xrdp в систему:

sudo make install
sudo ln -s /usr/local/sbin/xrdp{,-sesman} /usr/sbin
sudo update-rc.d xrdp defaults

Скачиваем дистрибутив xorg-xrdp бекенда:

// Build and install xorgxrdp
wget https://github.com/neutrinolabs/xorgxrdp/releases/download/v0.2.0/xorgxrdp-0.2.0.tar.gz
cd "${BD}"
tar xvfz xorgxrdp-0.2.0.tar.gz
cd "${BD}"/xorgxrdp-0.2.0

Устанавливаем жесткое правило переключения раскладки с русского на английский язык сочетанием клавиш Ctrl+Shift для решения проблемы переключения раскладок. Корректность проверяется созданием сессии — 1-я проверка, отключаемся, подключаемся еще раз в ту же сессию — заново еще раз проверяем.

В терминале присваиваем значения временных переменных:

kb_model="pc105"
kb_layout="us,ru"
kb_options="grp:ctrl_shift_toggle"

Делаем замену кода в исходном файле:

sed -ri.bak "s/(set.model)[^;]+/\1 = \"$kb_model\"/;s/(set.layout)[^;]+/\1 = \"$kb_layout\"/;s/(set.options)[^;]+/\1 = \"$kb_options\"/" xrdpkeyb/rdpKeyboard.c

Компилируем и устанавливаем в систему xorg-xrdp бекэнд:

./bootstrap
./configure
make
sudo make install

Желательно в файле /etc/xrdp/xrdp.ini поменять местами блоки [X11rdp] и [Xorg], чтобы у пользователя по умолчанию был правильный бэкэнд. При подключении к серверу нужно выбирать Xorg в списке сессий.

При необходимости изменения порта по умолчанию с 3389 на другой, редактируем файл /etc/xrdp/xrdp.ini: в разделе [Globals] меняем значение переменной port=3389 на требуемый.

При активированном firewall открываем порт 3389(либо тот, на который стандартный был изменен):

firewall-cmd --add-port 3389/tcp --permanent
firewall-cmd --reload

После настроек перезапускаем службу

service xrdp restart

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

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

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

Установка клиента 1С: Предприятие версии 8.3.9


В связи с тем, что в последних версиях платформы компания 1с довела нативного клиента для ОС на базе linux до состояния, с которым можно более менее комфортно работать, будем использовать именно его, а не пытаться установить wine, а поверх клиента для ОС Windows.

Устанавливаем дополнительные компоненты, необходимые для корректной работы:

sudo apt-get install libgsf-1-114
sudo apt-get install ttf-mscorefonts-installer
sudo apt-get install imagemagick

Скачиваем в папку с сайта 1с дистрибутив клиента и сервера:

sudo dpkg -i *.deb
sudo apt-get -f install

Так как компонеты сервера 1с нужны были только для удовлетворения зависимостей, отключаем службу:

sudo update-rc.d srv1cv83 disable

Если используется сетевой hasp-ключ, то пропишем параметры поиска:

sudo mkdir /opt/1C/v8.3/i386/conf
sudo su
echo [NH_COMMON] >/opt/1C/v8.3/i386/conf/nethasp.ini
echo  NH_TCPIP = Enabled>>/opt/1C/v8.3/i386/conf/nethasp.ini
echo [NH_TCPIP]>>/opt/1C/v8.3/i386/conf/nethasp.ini
echo  NH_SERVER_ADDR = 192.168.0.100>>/opt/1C/v8.3/i386/conf/nethasp.ini
echo  NH_TCPIP_METHOD = UDP>>/opt/1C/v8.3/i386/conf/nethasp.ini

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

Корректная настройка с временными файлами, создаваемыми платформой 1С


В процессе работы столкнулись с проблемой, когда у одного пользователя внешняя обработка заполнения табличной части работает, а у другого нет — выдается сообщение о нарушении прав доступ. Проблема заключается в том, что платформа 1С создает временные файл /tmp/PrnForm.tmp, т.е. путь до файла одинаковый у разных пользователей. Соответственно, первый пользователь, который воспользовался обработкой, неявно создал во временной папке файл, на который есть доступ на изменение только у него. Другой пользователь уже не может переписать файл.

Решение заключается в правильной настройке общесистемной umask, отнесение пользователей к одинаковой группе, а также правильной настройкой прав на временную папку /tmp.

Редактируем общесистемную маску. Правим файл:

/etc/login.defs 

в нем меняем значение на:

umask 002

Всех терминальных пользоватлей относим в группу Users (если не были отнесены ранее, можно и в другую группу).

Меняем права на папку tmp

chown -R root:Users /tmp
chmod g+s /tmp

Если используется обмен с сайтом Битрикс, то аналогичные настройки нужно сделать для папки /var/log/bitrix.

Вариант решения подобной проблемы применительно 1С описан в статье.

Решение проблемы с невозможностью выгрузки деклараций из баз ЗУП 2.5 и Бух 2.0


Есть одна неприятная особенность, которая может помешать бухгалтерам на клиенте 1C для linux выгружать декларации из зарплатной базы и бухгалтерии — после выбора файла и попытке выгрузить будет выдаваться сообщение вида «Нет доступа к каталогу [НазваниеКаталога]. Проверьте корректность имени каталога выгрузки!

Решение найдено и заключается в необходимости замены кода „Кат = Новый Файл(ПутьДляВыгрузки + “NUL»);" на «Кат = Новый Файл(ПутьДляВыгрузки);» в «Обработка.ОбщиеОбъектыРегламентированнойОтчетности.Форма.НастройкаПараметровСохраненияРегламентированногоОтчета.Форма.Модуль». К сожалению, для таких изменений придется конфигурацию снимать с поддержки.

Рекомендации по организации обмена файлами и печати с удаленных офисов


В случае, если с сервером работа ведется только в рамках локальной сети, проблем никаких нет — samba работает хорошо.

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

Для обмена файлами удобно использовать выделенный аккаунт dropbox — выделенная папка на сервере синхронизируется с облаком, а на клиентах либо через предоставление общего доступа к папке dropbox либо с тем же самым аккаунтом настраивается клиент.

Для печати на удаленные принтеры удобно использовать схему построения виртуальной частной сети, в этом случае решается проблема даже с теми удаленными точками, на которых нет фиксированного IP-адреса. Доступ к принтеру будет доступен по IP-адресу внутри VPN-сети. Как вариант, предлагаю использовать NeoRouter Free. Настройка данного продукта выходит за рамки данной статьи.

Возможные альтернативы


К сожалению, стабильно работающих бесплатных альтернатив на текущий момент я не вижу. Был достаточно успешный опыт использования связки OpenSuse 11.2+FreeNX (от etersoft) + WineEtersoft (купленный) для работы с конфигурациями на базе платформ 8.1, но на текущий момент такая связка для новых установок потеряла актуальность — не все пакеты можно найти для установки, на более свежих версиях ОС Linux и конфигурациях 1С скорость отрисовки ужасная.

Было достаточно много времени потрачено на тестирование других продуктов типа x2Go, но там также есть много НО: при подключении со свежих версий ОС типа Windows 8, Windows 10 есть артефакты при отрисовке изображения и т.п. В общем, если для административных функций альтернативные решения еще как-то подходят, то для реальной работы с решениями фирмы 1С не очень.

Заключение


При рассмотрении возможности перехода не рассмотренное решение нужно учесть такой фактор, как наличие торгового оборудования. Не все торговое оборудование поддерживается в linux, а тем более мало, что можно запустить через RDP.

В целом же при желании сэкономить на лицензиях Windows можно обойтись и решениями на базе LINUX, тем более в последнее время разработка XRDP идет ударными темпами. В марте этого года планируется выпуск версии 0.9.2 — это следует из опубликованных Release notes.

Дополнение 31.03.2017


Коллеги, обращаю внимание, что вчера разработчики xrdp выпустили новую версию xrdp 0.9.2 и xordxrdp 0.2.1.
Исходя из Release notes теперь RemoteFX кодек теперь поддерживается по-умолчанию, поэтому по идее теперь не нужно его собирать отдельно, как я указывал в статье. Также по-умолчанию теперь используется бекенд xorgxrdp. Чуть позже проверю, как теперь происходит установка и сделаю правки в статью.
Поделиться с друзьями
-->

Комментарии (70)


  1. mickvav
    29.03.2017 14:40

    А проблему с /tmp не решает установка индивидуальных временных папок по домашним директориям и прописывание переменных окружения соответствующим образом? А то трогать системный umask — как-то стремновато, умолчание там все же разумное. Или у 1C в этом месте захардкоженный /tmp?


    1. romzat
      29.03.2017 18:19

      Дельное замечание, проверю чуть позже и дам знать


  1. cleaner_it
    29.03.2017 15:07

    Вместо снятия с поддержки можно написать расширение конфигурации


    1. romzat
      29.03.2017 18:23

      Насколько я знаю, для работы расширений требуется совместимость конфигурации не ниже платформы 8.3.6, а в типовых конфигурациях на неупрвляемых формах стоит более низкие требования к платформе, поэтому расширения не работают (по крайней мере так было раньше, поправьте меня, если я не прав)


  1. Busla
    29.03.2017 15:07

    Сейчас по-моему актуальные конфигурации адекватно работают на лёгком клиенте. А файловая БД — всё равно вариант для «полутора землекопов».


    1. romzat
      29.03.2017 18:25

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


      1. romzat
        29.03.2017 18:27

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


  1. fishca
    29.03.2017 16:43

    Сколько клиентов(рабочих мест) реально работает?
    Параметры железа можно в студию?
    Какая конфигурация используется (БП, ЗУП, УТ)?
    Параметры железа клиентских компьютеров?
    Какой релиз 8.3.9 используется реально в работе?


    1. romzat
      06.04.2017 05:01

      До 15.
      На виртуалке 3 ядра AMD Phenom II X6 Black 1090T
      БУХ 2.0, ЗУП 2.5, УТ 10.3
      Клиентские компьютеры разные (точно не знаю), смесь linux+windows
      Платформа 8.3.9.2033


  1. sergling
    29.03.2017 19:03

    Все же мне кажется что данное решение теряет свою актуальность, т.к. гораздо более верным будет использование новых конфигураций на управляемых формах через тонкий или веб-клиент. Хотя бы даже потому, что указанные в статье бух 2.0 и зуп 2.5 поддерживаются последний год.


    1. romzat
      29.03.2017 20:01
      +1

      Если рассматривать только конфигурации Бух 2.0 и Зуп 2.5, то отчасти вы правы — с конфигурациями на управляемых формах гораздо легче организовать совместную работу пользователей, в том числе и для файловой версии через веб-сервер. Не стоит забывать, что есть такие конфигурации, как УТ 10.3, пользователи которой не всегда видят необходимость переходить на УТ 11, в том числе из-за того, что такие конфигурации достаточно сильно дописываются под особенности бизнес-процессов предприятия — в этом случае актуальность все еще остается. Плюс есть еще достаточно много отраслевых конфигураций, которые также еще не все переведены на управляемые формы.
      Хотелось бы обратить внимание читателей на то, что хоть я и пытался в статье сделать акценты на применении сервера терминалов для работы с 1с, на самом деле сама технология работы с сервером linux по протоколу rdp может быть полезна не только пользователям 1с, но также администраторам и разработчикам, которым необходима работа с графической оболочкой в linux-системах.


  1. mike_y_k
    29.03.2017 20:08

    Собственно проблему и с /tmp, и с декларациями можно и нужно решать с самой 1С. При достаточной настойчивости они в итоге допиливают нужный функционал.
    А статья полезная, стоит попробовать благо и полигон имеется, и задача скоро встанет, таки лучше на опережение сработать ;).


    1. romzat
      29.03.2017 20:11
      +1

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


  1. altervision
    29.03.2017 22:37

    Коллеги, разъясните, пожалуйста, дилетанту ответ на следующий вопрос.
    Достаточно мощный сервер для удобной работы хотя бы десятка пользователей с 1С обойдётся в 150-200 тыс. руб. Лицензия на сам 1С-сервер стоит порядка 80к. Клиентская лицензия на 10 рабочих мест — ещё 40к. Конкретные конфигурации тоже имеют весьма немалую цену. Например, корпоративная версия ЗуП — около 100к. Полный комплект для предприятия набегает на солидную сумму.
    Поэтому возникает вопрос: при вложении в 350-500к в оборудование и лицензии, не будет ли 50к за Windows Server 2016 не настолько уж и серьёзной суммой, чтобы не прилагать столько усилий и получить в целом стабильно работающее решение?
    Или же существуют какие-то свои подводные камни кроме цены, которые не дают использовать данный вариант? Какие-либо государственные ограничения?


    1. Khoss
      29.03.2017 23:09
      +1

      50к за windows server плюс ms sql сервер лицензия, плюс CAL плюс лицензии на терминал.
      Корпоративный ЗУП для 10 человек, кстати, чем оправдан? Недостаточно обычного?


      1. altervision
        29.03.2017 23:14

        Потому, собственно, и уточняю, как это всё правильно делается и какие есть требования.
        Теперь картина стала куда яснее и понятнее.
        Получается, MS SQL Express для работы с 1С будет уже недостаточно? Одно только это значительно увеличит стоимость лицензий, тут и спорить не о чем.
        Терминальные также лицензии увеличат стоимость самого Windows Server как минимум вдвое.
        Спасибо!


        1. navion
          30.03.2017 00:27
          +1

          Express мало для чего достаточно, но Postgres под виндой тоже работает.


        1. manserg
          03.04.2017 13:40

          Некоторые достаточно успешно используют для 1С базы Postgres, но это тоже весьма компромиссное решение, т.к. изначально 1С проектировалось исключительно под инфраструктуру MS Windows.
          Тут каждый решает, какое решение для него более оптимальное — либо копание в потрохах linux + postgres(кстати тоже небесплатное удовольствие т.к. хорошие спецы стоят хороших денег), либо заплатить за лицензии и особо не вдаваться в детали при установке и настройке системы (если конечно это не высоконагруженный проект)…


  1. ITLav
    29.03.2017 22:57
    +1

    Решение найдено и заключается в необходимости замены кода „Кат = Новый Файл(ПутьДляВыгрузки + “NUL»);"

    Чтобы не править конфигурацию, можно просто создать каталог с названием NUL в том каталоге, который указывается в файловом диалоге для выгрузки отчёта. И не надо ничего править.


  1. mindtester
    30.03.2017 04:24
    +1

    просто как инфа к теме: в ubuntu 17,07 xrdp 0.9.1 идет «из коробки» и где то со бета-2 вполне себе работает именно «из коробки» во всех деривативах ubuntu (или в тех что я пробовал по крайней мере):

    sudo apt install xrdp
    sudo systemctl enable xrdp
    sudo systemctl starp xrdp

    //enjoy… собственно и unity запускается, но с бубном — на черном поле в экране rdp сеанса — правой кнопкой мыши — открыть терминал. набрать unity…


    1. romzat
      30.03.2017 04:30

      Дождемся финальной версии и проверим, как там обстоят дела с качеством и скоростью прорисовки. Пока по результатам моей субъективной оценки, в версиях после 14.04 есть проблемы со скоростью отрисовки. Причем, если ты до этого не видел, как работает на 14.04, то может показаться, что и на более поздних версиях не плохо — все познается в сравнении. Будем недеяться, что разработчики xrdp решат проблемы, подвижки для этого есть, но на сайте техподдержки я пока не видел однозначного ответа, что все решено (я приводил в статье ссылку на зарегестрированную проблему пользователя)


      1. mindtester
        30.03.2017 09:49

        пробовал сборку по инструкции разработчиков для debian с многими версиями ubuntu, а так же mint. не заметил разницы в скорости отрисовки. то же самое и с 17.04. имхо это вопрос к xrdp/xorgxrdp (зато в мяте даже звук с полпинка поднялся, см инструкцию там же на github разработчиков xrdp)

        так же пробовал open suse, там уже давно xrdp запускается из коробки и обычно без бубнов, но там бекенд строго vnc. как следствие палитра 24 бита, возможно именно по этой причине отрисовка субъективно чуть-чуть по живее, но однозначно медленнее, чем у родных (виндовых) удаленных машин

        в коллекции был даже bunsenlabs. но итоговый выбор ubuntu достаточно очевиден — и доступность инфы/софта и даже то что карманный линукс в 10ке на основе еяже )))

        о bunsenlabs — если то то выдержит аскетизм его среды, а так же требуется linux в среде hyper-v — экономнее всех потребляет память. имеется в в виду динамическое выделение памяти гипервизора


        1. mindtester
          30.03.2017 19:37

          еще пару слов — если главная задача это только терминальный сервер 1С и работа в других приложениях не интересует, ограничены ресурсы сервера по памяти, а обслуживать надо далеко не одного пользователя — лучший выбор bunsenlabs, выигрыш по памяти сервера на терминальную сессию будет заметным по сравнению и с xfce, и с lxde.


          1. romzat
            31.03.2017 05:09

            Еще не натыкался ни разу на bunsenlabs, попробую при случае, как себя поведет. Спасибо.


            1. mindtester
              01.04.2017 10:24

              поискал в закладках «индикатор/переключатель клавиатуры в openbox» и к сожалению не нашел. но я точно помню что вопрос был решен быстро…

              пробуйте эти словосочетания в гугле, решения в итоге есть во множестве и все просто

              я прошу прощения, сам виндузятник, просто для себя подбирал «карманный» линукс, для развития эрудиции. из оболочек милее кеды, а основа скорее юбунту

              а bunsenlabs вне конкуренции, по тому что винда показывает все по памяти. а также там все компилится и запускается с полпинка (xrdp)


      1. mindtester
        03.04.2017 19:57

        заметил в обсуждениях что тема скорости отрисовки актуальна. повторюсь — я давно (и нудно, года с 2010) искал работоспособные комбинации. к сожалению уверенно могу сказать что это вопрос реализации бэкенда RDP (то есть сам xrdp в купе со своим бэкендом в X-сервере)

        одно время думал может контрибы майкрософта в ядро на что то влияют, но по ходу — нет

        то что отдают ОС от МС (и с какой скоростью) в RDP это проприетарные фишки, увы. но можно надеяться что neutrinolabs однажды сравняются ))


  1. WBuilder
    30.03.2017 10:18

    Почему выбор сделан в пользу именно 32-х разрядной версии Xubuntu?


    1. romzat
      30.03.2017 10:20

      В данном случае выбор был обусловлен лишь моим предположением, что 32 битная версия клиента 1с «допилена» лучше, ну и, соответственно и ОС также взял 32-х битную. А так можно пробовать и на 64-х битах.


      1. WBuilder
        30.03.2017 18:07

        Тогда да, логично, благодарю за ответ!


  1. avsavchenko
    30.03.2017 11:17

    на дворе 2017, ну не стоит в пакетных дистрибутивах использовать make лучше checkinstall


  1. lieff
    30.03.2017 12:18

    У меня есть подозрение что при апдейте меняется движок енкодера. На выбор кодека может быть хитрая логика навернута или в старом может не быть одного из них. Можете посмотреть какая из 3х строчек печатается в логе на 12.04 и более поздних?
    LLOGLN(0, («xrdp_encoder_create: starting h264 codec session»));
    LLOGLN(0, («xrdp_encoder_create: starting jpeg codec session»));
    LLOGLN(0, («xrdp_encoder_create: starting rfx codec session»));

    Так же я вижу он умеет использовать расширение XVideo (libxv1), маловероятно конечно, но может он не установлен? Или не работает, в каком-нибудь vlc\mplayer можно проверить.

    Так же можете попробовать добавить в багу вывод perf top, может сразу будет видно что включается не оптимизированный yuv->rgb или stretch_RGB32_RGB32.


    1. romzat
      30.03.2017 14:09

      Я у себя в логах не вижу таких сообщений. Видимо, нужно дебаг включить?
      И как в багу сделать вывод perf log?


      1. lieff
        30.03.2017 15:15

        По коду логироваться должно, через g_writeln, куда оно потом попадает и включено ли пока не знаю. Возможно на клиентах есть аналогичное инфо о текущем кодеке.

        По профайлеру, perf в пакете linux-tools, просто набрать sudo perf top в консоли, в убунте оно может сначала заругаться и скажет какой пакет доставить. Далее подергать rdp и через некоторе время в консоли нажать q, на экране останется последний топ функций. Так же можно записать все, sudo perf record -a -g, так же подождать нагружая rdp, выйти ctrl-c, и приаттачить файл perf.data.


      1. lieff
        31.03.2017 00:35

        Провел эксперимент на ubuntu 16.10 и mate desktop окружением. Пробовал 16\8 бит на пиксел, лагов никаких, на глаз работает точно так же как под виндой. 8bpp конечно ощутимо быстрее, я обычно его использую и на винде, только в десяточке в mstsc его убрали зачем то. Может bpp и изменился? Можно еще попробовать объем трафика сравнить.


        1. romzat
          31.03.2017 05:44

          Проверьте, какая версия стоит? 30.03.2017 вышли обновления версий, возможно, там стало лучше.


          1. lieff
            31.03.2017 12:04

            0.9.0, не самый последний. Прокрутка страницы в бравзере при 8бит я бы сказал даже плавнее чем в винде, плавность на высоте, хотя я сейчас через инет (при прокрутке страницы трафик 600кб\с, при рабочем iftop — 6кб\с), xrdp и Xorg при этом потребляют по 20% от одного ядра, firefox потребляет 50%, то есть в целом примерно одно ядро. При просто запущенном топе — по 1-2% загрузка.


            1. romzat
              31.03.2017 12:11

              Если ли разница, между прокруткой страниц с картинками и просто с текстом?


              1. lieff
                31.03.2017 12:29

                Нет, и картинки и даже с видео все плавно и само видео бодренькое. Только качество 256цветов на винде выше, там оно явно подбирает оптимальную палитру динамически, а тут как будто зафиксировали один раз и не меняют.


                1. romzat
                  03.04.2017 08:46

                  У вас машина, на которой стоит xrdp физическая или виртуальная? Если физическая, установлена ли внешняя видеокарта?


                  1. lieff
                    03.04.2017 12:25

                    Физическая, с nvidia картой, может быть в этом дело, да. Но nvidia GLX под XRDP не используется, если пути переключить на софтварный mesa, gl работает и тормозов тоже нет (в пределах на что способен софтварынй gl, сам rdp не тормозит). Так же можно запустить хардварный gl, если постараться.


                    1. romzat
                      03.04.2017 13:24

                      Ну в общем у меня при подключении с Windows 7 и выборе 15 бит картинка с youtube проигрывается плавно, но смотреть это не очень приятно, т.к. цветность маленькая. В связи с тем, что за рендеринг отвечает процессор даже при использовании RemoteFX, то добиться такой же скорости проигрывания видео/листания сайтов с картинками, как на Windows Server навряд ли получится.
                      Видимо, из-за того, что начиная с Xubuntu 16.04 были изменения по части отображения эффектов рабочего стола, мне визуально и казалось, что картинка отображается с тормозами на том же самом железе (i5-3570) по сравнению с Xubuntu 14.04. По крайней мере так получается в связке xrdp+xorgxrdp, которую разработчики рекомендуют как используемую по умолчанию.
                      Но для работы с 1с на Xubuntu 14.04 у меня претензий не было.


                      1. romzat
                        03.04.2017 13:44

                        Вообще хотелось бы понять, у кого-то получалось запустить просмотр видео по RDP при использовании xrdp при качестве 32 бита? По факту это не особо нужно, но уже спортивный интерес одолевает (на windows-то работает).


                      1. lieff
                        03.04.2017 14:10

                        Я читал что RFX на WS может включить аппаратное ускорение и рендер на сервере, по идее тогда и dx и gl должны заработать. Но на деле у меня это не получалось сделать, даже opencl/CUDA контекст не создается, там то ли платная лицензия нужна на TS толи еще что. Здесь же у меня получилось включить ускорение и даже игры запускаются, навряд ли дело в этом, в обычном кейсе кодек на винде тоже явно софтовый или покрайней мере затык не в этом (на моих тестах лучше чем обычная десктопная винда в качестве сервера). Думаю дело в другом, чтобы включить 32bpp и нормально смотреть видео — нужен проброс видео через h264 кодек. Как я понял для этого в плеерах есть поддержка отдельного канала для видео. Здесь по коду поддержка тоже есть в xrdpvr, и есть некий vrplayer. Пока не до конца разобрался с этим.


                        1. romzat
                          04.04.2017 08:16

                          В общем, удалось мне добиться на клиенте Windows 10 более менее плавного проигрывания видео с youtube. Как оказалось, необходимо было:
                          — в параметрах подключения «Подключения к удаленному рабочему столу» на вкладке «взаимодействие» выбрать «Локальная сеть (10 Мбит/сек и выше» вместо «Определять качество соединения автоматически» — только в этом случае работает кодек RemoteFX (я тестировал на 16 битах). О необходимости включения именно LAN сказано, например, в статье.
                          — компьютер клиента должен быть подключен по LAN. В моем случае, когда изначально ноутбук был подключен по WiFi скорости самого соединения не хватало для передачи пакетов без задержки и поэтому видео отображалось с большими рывками.

                          Самое интересное, после этого я попробовал подключиться и с типом «Глобальная сеть (10 Мбит или выше с большой задержкой) — видео также отображалось более менее плавно, хотя при этом кодек RemoteFX не работал (судя по логам при отладке xrdp).


                          1. lieff
                            04.04.2017 11:37

                            У меня изначально был LAN, видимо в этом и было отличие. RFX это как я понял не панацея, это кодек на основе jpeg2000 и дает чуть более большое сжатие ценой небольшого увеличения загрузки CPU (GPU тут возможно использовать, но кардинального ускорения не будет, на трансфер данных уйдет много, а мелкие блоки вообще не выгодно). Для видео куда важнее чтобы h264 задействовался, хотя при большом сетевом канале можно и так.


  1. pro100_mixa
    31.03.2017 06:29

    У всех эта связка потребляет немеряно процессорного времени? Прокрутка страниц в браузере дико грузит процессор, тут и 8 ядер не хватит на 15 человек


    1. romzat
      03.04.2017 13:25

      На каком процессоре тестировали?


  1. astralplus
    01.04.2017 19:18

    Много лет эксплуатируем линуксовые терминалы под Mint'ом в связке с Remmin'ой — ни каких проблем ни со скоростью отрисовки экрана ни с раскладками клавиатуры. Единственный баг — это раз в полгода блокировка сертификатов терминала — но чистится каталог freerdp и пересоздаются сессии и счастье опять есть.


    1. romzat
      01.04.2017 19:19

      Какую версию используете xrdp? Какой бекенд? Делали ли какие-то настройки, чтобы переключались языки, в том числе после переподключения к сессии? Отрисовку экрана на чем проверяли?


      1. astralplus
        02.04.2017 09:21

        Верите — даже не смотрел последнее время — использую Минт 18 — раз в 3 месяца у пользователей провожу обновление. У реммины с версии 1.хх (из ее репозитария) практически все проблемы, что встречаются в базовых поставках дистрибутивов Линукс — исчезли, ну кроме описанной выше полугодовой периодичностью блокировки сертификатов сессий RDP Windows Server и все! Все разрешения поддерживаются, отрисовка на АДСЛ-каналах с неустойчивой скоростью — тоже отличная как по качеству так и по производительностью, трех языковая раскладка за много лет эксплуатации ни разу не сбоила. Так что чем строить «огород» — пользуйтесь Ремминой ;)


        1. romzat
          03.04.2017 08:21

          Какое окружение Mint 18 вы используете? Можете попробовать подключиться к серверу не с linux, а с windows клиента, желательно, Windows 8/10. Попробуйте запустить youtube, будет изображение идти плавно?
          P.S. Я попробовал поставить Mint 18 с окружением Mate, у меня скорость прорисовки при подключении с клиента Windows 10 вообще ужасная, даже не проверял сайты с графикой открывать, тем более youtube.


          1. mindtester
            03.04.2017 20:11

            xrdp однозначно уступает виндовым удаленкам, но по моим последним опытам не так катастрофически

            окружение:
            — хост win 10 pro, i5-3330 16 Gb RAM
            — в гостях перебывали SUSE (42.1/2, перекатиполе — не все с ними просто), минты 17,*/18,*, циннамон, мате, кеды; юбунты 16.04(сейчас 17.04) юнити (не все просто), мате, кеды (мой выбор)
            — вход по RDP

            так вот ютуб я вообще то смотрел без проблем везде (но не везде звук с полпинака поднимается )))

            пояснение — в 17.04 и SUSE, xrdp из коробки, во все остальных сборка по инструкции https://github.com/neutrinolabs/xrdp/wiki/Building-on-Debian-8
            (звук — https://github.com/neutrinolabs/xrdp/wiki/Audio-Output-Virtual-Channel-support-in-xrdp)


            1. romzat
              04.04.2017 05:29

              Хочу уточнить: «ютуб без проблем» — это значит, что видео проигрывалось без рывков? Какой гипервизор использовали?
              P.S. Я на хост на процессоре i5-3570 ставил Mint 18, Xubuntu 16.04 — если при подключении с 15 битами видео отображается без рывков, то при подключении с 32 битами видео уже идет с рывками.


              1. mindtester
                04.04.2017 08:26

                хост win 10 pro, i5-3330 16 Gb RAM
                то есть родной hyper-v, RemoteFX не активирован, карта бюджетная, да и xrdp на него ни как не реагировал (виндовые гости скорее даже глючили артефактами)

                вообще то для оценки производительности больше опирался на http://oortonline.gl/ и на хосте и в гостях

                ни vmware ни virtualbox не впечатлили, даже если ставить основной системой linux и подгонять ему свежие драйвера nvidia. за год экспериментов пришел к твердому убеждению что на личном компе только винда на реальном железе, и linux под hyper-v, «раскрывают потенциал» как модно сейчас говорить (или всем реальное железо давать)

                для продакшена — hyper-v вроде как существует в виде отдельной, бесплатной редакции сервера, так что тоже вполне возможный вариант


                1. mindtester
                  04.04.2017 09:10

                  кажется немного смешали контексты?
                  гипервизор по моему еще более далек от темы скорости отрисовки ютуба по RDP

                  мой рецепт — xrdp 0.9.1, звук от туда же, и если мы говорим о FifeFox — обязательно обновить флешплеер, или заменить плагином, который использует плеер хромиума. ссылки не предлагаю, дело было месяцы назад

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


          1. astralplus
            04.04.2017 09:57

            Вообще задача пускать пользователей с терминала в Интернет не стояла. Основная работа у них — бухгалтерия, офисные приложения и т.д. — а в Интернет они ходят с локальных машин.


  1. laigor
    03.04.2017 08:35

    Для поддержки русской раскладки и возможности сменять раскладки нет необходимости влезать в исходный код. На сайте проекта есть пример файла xrdp_keyboard.ini как раз для русского языка. Причем в этой конфигурации учтено что клавиатура у клиента в момент подключения может быть в русской раскладке.


    1. romzat
      03.04.2017 08:36

      Спасибо, проверю такой вариант.


    1. romzat
      05.04.2017 08:29

      Проверил, заменил содержимое файла xrdp_keyboard.ini, как рекомендовано — не помогло. У меня бекенд xorgxrdp. Вы на каком бекенде проверяли?


      1. laigor
        05.04.2017 09:59

        Именно xorgxrdp. Я использую xrdp в продакшене в нескольких организациях и везде работает. Вы не забыли вернуть внесенные изменения в исходный код?


        1. romzat
          05.04.2017 10:06

          Странно. Я делал чистую установку без изменений исходного кода.


        1. romzat
          05.04.2017 10:08

          Вы с какого клиента подключаетесь? Я пробую с Windows 10


      1. laigor
        05.04.2017 10:29

        Только что скомпилировал 0.9.2
        добавил строки в файл xrdp_keyboard.ini
        [rdp_keyboard_ru]
        keyboard_type=4
        keyboard_subtype=1
        model=pc105
        options=grp:alt_shift_toggle
        rdp_layouts=default_rdp_layouts
        layouts_map=layouts_map_ru

        [layouts_map_ru]
        rdp_layout_us=us,ru
        rdp_layout_ru=us,ru

        все работает как надо…
        в файле xrdp.ini есть параметр autorun указывающий секцию по умолчанию. Соответственно нужно его выставить:
        autorun=Xorg


        1. romzat
          05.04.2017 11:14

          Проделал, как вы сказали (до этого я просто заменил содержимое файла, как вы говорили выше) — т.е. добавил строки в файл xrdp_keyboard.ini, в файле xrdp.ini установил autorun=Xorg. Не работает.
          Я также пробую на версии xrdp 0.9.2 и xorgxrdp 0.2.1. Пробую на Mint 18. Подключаюсь с Windows 10. Не понимаю, что я делаю не так…


          1. laigor
            05.04.2017 19:35

            Попробуйте так:
            [rdp_keyboard_ru]
            keyboard_type=4
            keyboard_type=7
            keyboard_subtype=1
            model=pc105
            options=grp:alt_shift_toggle
            rdp_layouts=default_rdp_layouts
            layouts_map=layouts_map_ru

            [layouts_map_ru]
            rdp_layout_us=us,ru
            rdp_layout_ru=us,ru

            А что бы не зависеть от раскладки на клиентской стороне попробуйте:
            cp km-00000409.ini km-00000419.ini


            1. romzat
              06.04.2017 05:46

              Подтверждаю, в таком варианте заработало. Причем после cp km-00000409.ini km-00000419.ini — еще и язык в окне ввода пароля стал по умолчанию на английском, не зависимо от того, что на клиенте стоял русский. Спасибо.
              Может, имеет смысл в Wiki на GitHub более подробно описать, что нужно сделать, а то будут такие же как я, у которых не будет получаться.


          1. mindtester
            05.04.2017 21:01

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

            хочу отметить что ни в исходники xrdp/xorgxrdp, ни в ini-шники ни разу не лазил по данной теме, но как правило (хотя и не всегда) надо было в сеансе RDP просто повторно выполнить настройку для клавиатуры штатными средствами. в смысле гуевыми, как если мы только что установили ось на реальный компьютер. один раз.

            сложнее было с bunsenlabs — там нет гуевых средств настройки данного вопроса, но помог клавиатурный индикатор, какой уже точно не помню, но из этой статьи https://wiki.archlinux.org/index.php/Openbox_Themes_and_Apps_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#Fbxkb.2C_xxkb.2C_axkb


          1. mindtester
            05.04.2017 21:36

            эмм… но если вопрос к тому «а что делать когда 500 терминальных пользователей?» — очевидно что гуевые тулзы меняют инишники все таки где в профиле. я не готов подсказать…

            но наверное можно сделать снимок виртуалки до настройки и после… и получить хардкорное линуксовое решение — какие иншники и как править


            1. romzat
              06.04.2017 05:08

              Изначально мы как раз «гуевыми» тулзами и пользовались, даже работало по началу. Пока не столкнулись с проблемой, что после пепеподключения к сеансу переключение перестало работать. На тот момент (это было чуть больше года назад) я перепробовал разные способы, которые находил по этой теме в интернете — у меня так и не получилось найти стабильное решение. Поэтому я полез в исходники xorgxrdp и нашел там кусок кода, отвечающий за это, после чего внес правки, которые заключались в том, что сочетание клавиш переключения раскладок и языки жестко задавались в коде — после чего уже не было никаких проблем с необходимость настраивать дополнительные параметры. Меня такой вариант устроил и его я и привожу в статье.


  1. mindtester
    03.04.2017 20:21

    не смотря на то что вики для arch — https://wiki.archlinux.org/index.php/Openbox_Themes_and_Apps_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#Fbxkb.2C_xxkb.2C_axkb, я для openboxa (bunsenlabs) использовал кого то из перечисленных

    но если верить гуглу, все они достаточно универсальны