Не так давно (в конце декабре 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)
cleaner_it
29.03.2017 15:07Вместо снятия с поддержки можно написать расширение конфигурации
romzat
29.03.2017 18:23Насколько я знаю, для работы расширений требуется совместимость конфигурации не ниже платформы 8.3.6, а в типовых конфигурациях на неупрвляемых формах стоит более низкие требования к платформе, поэтому расширения не работают (по крайней мере так было раньше, поправьте меня, если я не прав)
Busla
29.03.2017 15:07Сейчас по-моему актуальные конфигурации адекватно работают на лёгком клиенте. А файловая БД — всё равно вариант для «полутора землекопов».
romzat
29.03.2017 18:25В статье я не делал жесткой привязки к режиму работы с базой данных. В данном проекте базы данных расположены на Postgesql
romzat
29.03.2017 18:27Не все организации перешли на работу с конфигурациями на управляемых формах и многие не собираются, поэтому предложенный вами вариант им не подходит
fishca
29.03.2017 16:43Сколько клиентов(рабочих мест) реально работает?
Параметры железа можно в студию?
Какая конфигурация используется (БП, ЗУП, УТ)?
Параметры железа клиентских компьютеров?
Какой релиз 8.3.9 используется реально в работе?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
sergling
29.03.2017 19:03Все же мне кажется что данное решение теряет свою актуальность, т.к. гораздо более верным будет использование новых конфигураций на управляемых формах через тонкий или веб-клиент. Хотя бы даже потому, что указанные в статье бух 2.0 и зуп 2.5 поддерживаются последний год.
romzat
29.03.2017 20:01+1Если рассматривать только конфигурации Бух 2.0 и Зуп 2.5, то отчасти вы правы — с конфигурациями на управляемых формах гораздо легче организовать совместную работу пользователей, в том числе и для файловой версии через веб-сервер. Не стоит забывать, что есть такие конфигурации, как УТ 10.3, пользователи которой не всегда видят необходимость переходить на УТ 11, в том числе из-за того, что такие конфигурации достаточно сильно дописываются под особенности бизнес-процессов предприятия — в этом случае актуальность все еще остается. Плюс есть еще достаточно много отраслевых конфигураций, которые также еще не все переведены на управляемые формы.
Хотелось бы обратить внимание читателей на то, что хоть я и пытался в статье сделать акценты на применении сервера терминалов для работы с 1с, на самом деле сама технология работы с сервером linux по протоколу rdp может быть полезна не только пользователям 1с, но также администраторам и разработчикам, которым необходима работа с графической оболочкой в linux-системах.
mike_y_k
29.03.2017 20:08Собственно проблему и с /tmp, и с декларациями можно и нужно решать с самой 1С. При достаточной настойчивости они в итоге допиливают нужный функционал.
А статья полезная, стоит попробовать благо и полигон имеется, и задача скоро встанет, таки лучше на опережение сработать ;).romzat
29.03.2017 20:11+1Исходя из моего опыта обращения в техподдержку 1с по багам типовых конфигураций из 10-ти заявок они по факту максимум по одной отработали и внесли изменение, но там баг был критический и связан с возмещением НДС. Многие обращения они по факту оставляли без ответа, хотя несколько раз напоминал о себе. В данном случае вариантов особо не было, пришлось оперативно исправлять недочет.
altervision
29.03.2017 22:37Коллеги, разъясните, пожалуйста, дилетанту ответ на следующий вопрос.
Достаточно мощный сервер для удобной работы хотя бы десятка пользователей с 1С обойдётся в 150-200 тыс. руб. Лицензия на сам 1С-сервер стоит порядка 80к. Клиентская лицензия на 10 рабочих мест — ещё 40к. Конкретные конфигурации тоже имеют весьма немалую цену. Например, корпоративная версия ЗуП — около 100к. Полный комплект для предприятия набегает на солидную сумму.
Поэтому возникает вопрос: при вложении в 350-500к в оборудование и лицензии, не будет ли 50к за Windows Server 2016 не настолько уж и серьёзной суммой, чтобы не прилагать столько усилий и получить в целом стабильно работающее решение?
Или же существуют какие-то свои подводные камни кроме цены, которые не дают использовать данный вариант? Какие-либо государственные ограничения?Khoss
29.03.2017 23:09+150к за windows server плюс ms sql сервер лицензия, плюс CAL плюс лицензии на терминал.
Корпоративный ЗУП для 10 человек, кстати, чем оправдан? Недостаточно обычного?altervision
29.03.2017 23:14Потому, собственно, и уточняю, как это всё правильно делается и какие есть требования.
Теперь картина стала куда яснее и понятнее.
Получается, MS SQL Express для работы с 1С будет уже недостаточно? Одно только это значительно увеличит стоимость лицензий, тут и спорить не о чем.
Терминальные также лицензии увеличат стоимость самого Windows Server как минимум вдвое.
Спасибо!manserg
03.04.2017 13:40Некоторые достаточно успешно используют для 1С базы Postgres, но это тоже весьма компромиссное решение, т.к. изначально 1С проектировалось исключительно под инфраструктуру MS Windows.
Тут каждый решает, какое решение для него более оптимальное — либо копание в потрохах linux + postgres(кстати тоже небесплатное удовольствие т.к. хорошие спецы стоят хороших денег), либо заплатить за лицензии и особо не вдаваться в детали при установке и настройке системы (если конечно это не высоконагруженный проект)…
ITLav
29.03.2017 22:57+1Решение найдено и заключается в необходимости замены кода „Кат = Новый Файл(ПутьДляВыгрузки + “NUL»);"
Чтобы не править конфигурацию, можно просто создать каталог с названием NUL в том каталоге, который указывается в файловом диалоге для выгрузки отчёта. И не надо ничего править.
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…romzat
30.03.2017 04:30Дождемся финальной версии и проверим, как там обстоят дела с качеством и скоростью прорисовки. Пока по результатам моей субъективной оценки, в версиях после 14.04 есть проблемы со скоростью отрисовки. Причем, если ты до этого не видел, как работает на 14.04, то может показаться, что и на более поздних версиях не плохо — все познается в сравнении. Будем недеяться, что разработчики xrdp решат проблемы, подвижки для этого есть, но на сайте техподдержки я пока не видел однозначного ответа, что все решено (я приводил в статье ссылку на зарегестрированную проблему пользователя)
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 — экономнее всех потребляет память. имеется в в виду динамическое выделение памяти гипервизораmindtester
30.03.2017 19:37еще пару слов — если главная задача это только терминальный сервер 1С и работа в других приложениях не интересует, ограничены ресурсы сервера по памяти, а обслуживать надо далеко не одного пользователя — лучший выбор bunsenlabs, выигрыш по памяти сервера на терминальную сессию будет заметным по сравнению и с xfce, и с lxde.
romzat
31.03.2017 05:09Еще не натыкался ни разу на bunsenlabs, попробую при случае, как себя поведет. Спасибо.
mindtester
01.04.2017 10:24поискал в закладках «индикатор/переключатель клавиатуры в openbox» и к сожалению не нашел. но я точно помню что вопрос был решен быстро…
пробуйте эти словосочетания в гугле, решения в итоге есть во множестве и все просто
я прошу прощения, сам виндузятник, просто для себя подбирал «карманный» линукс, для развития эрудиции. из оболочек милее кеды, а основа скорее юбунту
а bunsenlabs вне конкуренции, по тому что винда показывает все по памяти. а также там все компилится и запускается с полпинка (xrdp)
mindtester
03.04.2017 19:57заметил в обсуждениях что тема скорости отрисовки актуальна. повторюсь — я давно (и нудно, года с 2010) искал работоспособные комбинации. к сожалению уверенно могу сказать что это вопрос реализации бэкенда RDP (то есть сам xrdp в купе со своим бэкендом в X-сервере)
одно время думал может контрибы майкрософта в ядро на что то влияют, но по ходу — нет
то что отдают ОС от МС (и с какой скоростью) в RDP это проприетарные фишки, увы. но можно надеяться что neutrinolabs однажды сравняются ))
avsavchenko
30.03.2017 11:17на дворе 2017, ну не стоит в пакетных дистрибутивах использовать make лучше checkinstall
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.romzat
30.03.2017 14:09Я у себя в логах не вижу таких сообщений. Видимо, нужно дебаг включить?
И как в багу сделать вывод perf log?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.
lieff
31.03.2017 00:35Провел эксперимент на ubuntu 16.10 и mate desktop окружением. Пробовал 16\8 бит на пиксел, лагов никаких, на глаз работает точно так же как под виндой. 8bpp конечно ощутимо быстрее, я обычно его использую и на винде, только в десяточке в mstsc его убрали зачем то. Может bpp и изменился? Можно еще попробовать объем трафика сравнить.
romzat
31.03.2017 05:44Проверьте, какая версия стоит? 30.03.2017 вышли обновления версий, возможно, там стало лучше.
lieff
31.03.2017 12:040.9.0, не самый последний. Прокрутка страницы в бравзере при 8бит я бы сказал даже плавнее чем в винде, плавность на высоте, хотя я сейчас через инет (при прокрутке страницы трафик 600кб\с, при рабочем iftop — 6кб\с), xrdp и Xorg при этом потребляют по 20% от одного ядра, firefox потребляет 50%, то есть в целом примерно одно ядро. При просто запущенном топе — по 1-2% загрузка.
romzat
31.03.2017 12:11Если ли разница, между прокруткой страниц с картинками и просто с текстом?
lieff
31.03.2017 12:29Нет, и картинки и даже с видео все плавно и само видео бодренькое. Только качество 256цветов на винде выше, там оно явно подбирает оптимальную палитру динамически, а тут как будто зафиксировали один раз и не меняют.
romzat
03.04.2017 08:46У вас машина, на которой стоит xrdp физическая или виртуальная? Если физическая, установлена ли внешняя видеокарта?
lieff
03.04.2017 12:25Физическая, с nvidia картой, может быть в этом дело, да. Но nvidia GLX под XRDP не используется, если пути переключить на софтварный mesa, gl работает и тормозов тоже нет (в пределах на что способен софтварынй gl, сам rdp не тормозит). Так же можно запустить хардварный gl, если постараться.
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 у меня претензий не было.romzat
03.04.2017 13:44Вообще хотелось бы понять, у кого-то получалось запустить просмотр видео по RDP при использовании xrdp при качестве 32 бита? По факту это не особо нужно, но уже спортивный интерес одолевает (на windows-то работает).
lieff
03.04.2017 14:10Я читал что RFX на WS может включить аппаратное ускорение и рендер на сервере, по идее тогда и dx и gl должны заработать. Но на деле у меня это не получалось сделать, даже opencl/CUDA контекст не создается, там то ли платная лицензия нужна на TS толи еще что. Здесь же у меня получилось включить ускорение и даже игры запускаются, навряд ли дело в этом, в обычном кейсе кодек на винде тоже явно софтовый или покрайней мере затык не в этом (на моих тестах лучше чем обычная десктопная винда в качестве сервера). Думаю дело в другом, чтобы включить 32bpp и нормально смотреть видео — нужен проброс видео через h264 кодек. Как я понял для этого в плеерах есть поддержка отдельного канала для видео. Здесь по коду поддержка тоже есть в xrdpvr, и есть некий vrplayer. Пока не до конца разобрался с этим.
romzat
04.04.2017 08:16В общем, удалось мне добиться на клиенте Windows 10 более менее плавного проигрывания видео с youtube. Как оказалось, необходимо было:
— в параметрах подключения «Подключения к удаленному рабочему столу» на вкладке «взаимодействие» выбрать «Локальная сеть (10 Мбит/сек и выше» вместо «Определять качество соединения автоматически» — только в этом случае работает кодек RemoteFX (я тестировал на 16 битах). О необходимости включения именно LAN сказано, например, в статье.
— компьютер клиента должен быть подключен по LAN. В моем случае, когда изначально ноутбук был подключен по WiFi скорости самого соединения не хватало для передачи пакетов без задержки и поэтому видео отображалось с большими рывками.
Самое интересное, после этого я попробовал подключиться и с типом «Глобальная сеть (10 Мбит или выше с большой задержкой) — видео также отображалось более менее плавно, хотя при этом кодек RemoteFX не работал (судя по логам при отладке xrdp).lieff
04.04.2017 11:37У меня изначально был LAN, видимо в этом и было отличие. RFX это как я понял не панацея, это кодек на основе jpeg2000 и дает чуть более большое сжатие ценой небольшого увеличения загрузки CPU (GPU тут возможно использовать, но кардинального ускорения не будет, на трансфер данных уйдет много, а мелкие блоки вообще не выгодно). Для видео куда важнее чтобы h264 задействовался, хотя при большом сетевом канале можно и так.
pro100_mixa
31.03.2017 06:29У всех эта связка потребляет немеряно процессорного времени? Прокрутка страниц в браузере дико грузит процессор, тут и 8 ядер не хватит на 15 человек
astralplus
01.04.2017 19:18Много лет эксплуатируем линуксовые терминалы под Mint'ом в связке с Remmin'ой — ни каких проблем ни со скоростью отрисовки экрана ни с раскладками клавиатуры. Единственный баг — это раз в полгода блокировка сертификатов терминала — но чистится каталог freerdp и пересоздаются сессии и счастье опять есть.
romzat
01.04.2017 19:19Какую версию используете xrdp? Какой бекенд? Делали ли какие-то настройки, чтобы переключались языки, в том числе после переподключения к сессии? Отрисовку экрана на чем проверяли?
astralplus
02.04.2017 09:21Верите — даже не смотрел последнее время — использую Минт 18 — раз в 3 месяца у пользователей провожу обновление. У реммины с версии 1.хх (из ее репозитария) практически все проблемы, что встречаются в базовых поставках дистрибутивов Линукс — исчезли, ну кроме описанной выше полугодовой периодичностью блокировки сертификатов сессий RDP Windows Server и все! Все разрешения поддерживаются, отрисовка на АДСЛ-каналах с неустойчивой скоростью — тоже отличная как по качеству так и по производительностью, трех языковая раскладка за много лет эксплуатации ни разу не сбоила. Так что чем строить «огород» — пользуйтесь Ремминой ;)
romzat
03.04.2017 08:21Какое окружение Mint 18 вы используете? Можете попробовать подключиться к серверу не с linux, а с windows клиента, желательно, Windows 8/10. Попробуйте запустить youtube, будет изображение идти плавно?
P.S. Я попробовал поставить Mint 18 с окружением Mate, у меня скорость прорисовки при подключении с клиента Windows 10 вообще ужасная, даже не проверял сайты с графикой открывать, тем более youtube.mindtester
03.04.2017 20:11xrdp однозначно уступает виндовым удаленкам, но по моим последним опытам не так катастрофически
окружение:
— хост 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)romzat
04.04.2017 05:29Хочу уточнить: «ютуб без проблем» — это значит, что видео проигрывалось без рывков? Какой гипервизор использовали?
P.S. Я на хост на процессоре i5-3570 ставил Mint 18, Xubuntu 16.04 — если при подключении с 15 битами видео отображается без рывков, то при подключении с 32 битами видео уже идет с рывками.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 вроде как существует в виде отдельной, бесплатной редакции сервера, так что тоже вполне возможный вариантmindtester
04.04.2017 09:10кажется немного смешали контексты?
гипервизор по моему еще более далек от темы скорости отрисовки ютуба по RDP
мой рецепт — xrdp 0.9.1, звук от туда же, и если мы говорим о FifeFox — обязательно обновить флешплеер, или заменить плагином, который использует плеер хромиума. ссылки не предлагаю, дело было месяцы назад
в не самых свежих сборках линуксов, не самый свежий фаерфокс, имеет жутко древний флеш. возможно проблема просто в нем. он действительно вообще все показывает рывками
astralplus
04.04.2017 09:57Вообще задача пускать пользователей с терминала в Интернет не стояла. Основная работа у них — бухгалтерия, офисные приложения и т.д. — а в Интернет они ходят с локальных машин.
laigor
03.04.2017 08:35Для поддержки русской раскладки и возможности сменять раскладки нет необходимости влезать в исходный код. На сайте проекта есть пример файла xrdp_keyboard.ini как раз для русского языка. Причем в этой конфигурации учтено что клавиатура у клиента в момент подключения может быть в русской раскладке.
romzat
05.04.2017 08:29Проверил, заменил содержимое файла xrdp_keyboard.ini, как рекомендовано — не помогло. У меня бекенд xorgxrdp. Вы на каком бекенде проверяли?
laigor
05.04.2017 09:59Именно xorgxrdp. Я использую xrdp в продакшене в нескольких организациях и везде работает. Вы не забыли вернуть внесенные изменения в исходный код?
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=Xorgromzat
05.04.2017 11:14Проделал, как вы сказали (до этого я просто заменил содержимое файла, как вы говорили выше) — т.е. добавил строки в файл xrdp_keyboard.ini, в файле xrdp.ini установил autorun=Xorg. Не работает.
Я также пробую на версии xrdp 0.9.2 и xorgxrdp 0.2.1. Пробую на Mint 18. Подключаюсь с Windows 10. Не понимаю, что я делаю не так…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.iniromzat
06.04.2017 05:46Подтверждаю, в таком варианте заработало. Причем после cp km-00000409.ini km-00000419.ini — еще и язык в окне ввода пароля стал по умолчанию на английском, не зависимо от того, что на клиенте стоял русский. Спасибо.
Может, имеет смысл в Wiki на GitHub более подробно описать, что нужно сделать, а то будут такие же как я, у которых не будет получаться.
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
mindtester
05.04.2017 21:36эмм… но если вопрос к тому «а что делать когда 500 терминальных пользователей?» — очевидно что гуевые тулзы меняют инишники все таки где в профиле. я не готов подсказать…
но наверное можно сделать снимок виртуалки до настройки и после… и получить хардкорное линуксовое решение — какие иншники и как правитьromzat
06.04.2017 05:08Изначально мы как раз «гуевыми» тулзами и пользовались, даже работало по началу. Пока не столкнулись с проблемой, что после пепеподключения к сеансу переключение перестало работать. На тот момент (это было чуть больше года назад) я перепробовал разные способы, которые находил по этой теме в интернете — у меня так и не получилось найти стабильное решение. Поэтому я полез в исходники xorgxrdp и нашел там кусок кода, отвечающий за это, после чего внес правки, которые заключались в том, что сочетание клавиш переключения раскладок и языки жестко задавались в коде — после чего уже не было никаких проблем с необходимость настраивать дополнительные параметры. Меня такой вариант устроил и его я и привожу в статье.
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) использовал кого то из перечисленных
но если верить гуглу, все они достаточно универсальны
mickvav
А проблему с /tmp не решает установка индивидуальных временных папок по домашним директориям и прописывание переменных окружения соответствующим образом? А то трогать системный umask — как-то стремновато, умолчание там все же разумное. Или у 1C в этом месте захардкоженный /tmp?
romzat
Дельное замечание, проверю чуть позже и дам знать