Терминальный Сервер Для 1С По Протоколу Rdp В Linux: Рекомендации По Настройке, Основанные На Реальном Опыте Эксплуатации

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

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



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

Дистрибутивы Linux в основном содержат устаревшую версию xrdp-сервера версии 0.6.х, имеющую ошибки, мешающие нормально работать с 1с (например, некорректно работает буфер обмена с русскими символами).

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

Использование серверной части X11Rdp имеет несколько недостатков:

  • Довольно долгий срок сборки
  • Трудно решить проблему с переключением языков.

    После повторного подключения к сессии переключение языков может перестать работать.

    Автор зарегистрированный проблема на сайте разработчиков - гарантированное решение было найдено автором только для бэкенда xorgxrdp путем правки исходного кода (данный метод используется далее в статье)

  • Скорость рендеринга может быть недостаточно высокой для комфортного взаимодействия с пользователем.

Использование серверной части xorgxrdp позволяет избежать этих проблем.

В этой статье обсуждается установка версии 14.04 LTS на Xubuntu, а не более поздней версии 16.04 LTS из-за снижения производительности при рисовании удаленного экрана.

Есть сообщил о проблеме для этой ситуации.

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

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

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

Система может быть установлена как на хосте, так и в виртуальной среде.

Обычно я предпочитаю виртуализацию KVM; на нем были установлены производственные серверы.

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

  • 22 ГБ: 18 ГБ точка монтирования/, остальное под подкачку
  • 5 ГБ: точка монтирования /var
  • 5 ГБ: точка монтирования /tmp
Это разделение является предпочтением автора, основанным на простоте использования.

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

При использовании файловых баз данных рекомендуется использовать SSD-диски.

На сервере должен быть установлен статический IP-адрес.

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

  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
   

sudo apt-get install openssh-server sudo restart ssh

При активированном брандмауэре откройте порт 22:

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



Установка и настройка сервера xrdp с бэкэндом xorgxrdp

На сайте разработчиков есть инструкции для установки на дебиан 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

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

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

При активированном фаерволе открываем порт 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

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

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, т.е.

путь к файлу у разных пользователей одинаков.

Соответственно, первый пользователь, применивший обработку, неявно создал файл во временной папке, доступ к изменению которого имеет только он.

Другой пользователь больше не сможет перезаписать файл.

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

Редактирование файла:

/etc/login.defs

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

umask 002

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

Изменить права доступа к папке tmp

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

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



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

Есть одна неприятная особенность, которая может помешать бухгалтерам на клиенте 1С для Linux загрузить декларации из базы расчетов по заработной плате и бухгалтерии - после выбора файла и попытки загрузки появится сообщение типа «Нет доступа к каталогу [Имя каталога]».

отображается».

Проверьте правильность имени каталога для загрузки! Решение найденный и заключается в необходимости замены кода «Cat=New File (Path for Upload + «NUL»);» на «Cat=New File (Path for Upload);» в «Обработка.

Общие объекты регламентированной отчетности.

Форма.

Настройка параметров сохранения регламентированного отчета.

Форма.

Модуль».

К сожалению, для таких изменений вам придется снять конфигурацию с поддержки.



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

Если работать с сервером только внутри локальной сети, проблем нет - самба работает хорошо.

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

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

Принтер будет доступен по IP-адресу в сети VPN. В качестве альтернативы я предлагаю использовать НеоРоутер Бесплатно .

Настройка этого продукта выходит за рамки данной статьи.



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

К сожалению, стабильно работающих бесплатных альтернатив на данный момент я не вижу.

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

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

Заключение

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

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

В марте этого года планируется выход версии 0.9.2 - это следует из опубликованного Примечания к выпуску .



Обновление от 31.03.2017

Коллеги, обратите внимание, что вчера разработчики xrdp выпустили новую версию xrdp 0.9.2 и xordxrdp 0.2.1. Основанный на Примечания к выпуску Теперь кодек RemoteFX поддерживается по умолчанию, поэтому в теории нет необходимости собирать его отдельно, как я указал в статье.

Кроме того, по умолчанию теперь используется серверная часть xorgxrdp. Чуть позже проверю, как сейчас проходит установка и внесу правки в статью.

Теги: #*nix #Администрирование сервера #ubuntu #1c

Вместе с данным постом часто просматривают: