Настройка терминального сервера RDP для работы с 1С
Статья в разработке
Взято тут и тут
Встал выбор при обновлении сервера 1С: Или покупать Windows 2012R2 + Клиентские + терминальные лицензии. Итого около 100круб или настроить терминальный сервер под Linux. Благо компания 1С выпустила версию под него.
Статей в инете очень много, но я попытаюсь обобщить свой опыт.
И так начнем.
Содержание
Установка ОС
- Для ОС выбираем 16.04 server)
- Устанавливаем ОС.
- Делаем все обновления.
sudo apt update && sudo apt upgrade -y && reboot
Установим mc и git
sudo apt install mc git
Настраиваем сеть.
Находим название сетевого интерфейса
$ ifconfig enp0s3 Link encap:Ethernet HWaddr 08:00:27:58:54:bb inet addr:172.16.130.143 Bcast:172.16.130.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fe58:54bb/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:3423 errors:0 dropped:0 overruns:0 frame:0 TX packets:878 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1989544 (1.9 MB) TX bytes:84171 (84.1 KB) lo Link encap:Локальная петля (Loopback) inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:166 errors:0 dropped:0 overruns:0 frame:0 TX packets:166 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:12178 (12.1 KB) TX bytes:12178 (12.1 KB)
В нашем случае - это enp0s3
$ sudo nano /etc/network/interfaces auto enp0s3 iface enp0s3 inet static address 172.16.130.99 netmask 255.255.255.0 gateway 172.16.130.25 dns-nameservers 172.16.130.1 8.8.8.8
Перезапускам сетевой интерфейс и проверяем настройки сети:
Самое смешное, что поменять ip адрес без перезагрузки, я так и не смог. Если у получится - напишите на misha@volmed.org.ru. Буду признателен.
sudo ifdown -a && sudo ifup -a $ifconfig eth0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx inet addr:172.16.130.99 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:126785 errors:0 dropped:0 overruns:0 frame:0 TX packets:135453 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:116474217 (116.4 MB) TX bytes:102473947 (102.4 MB) lo Link encap:Локальная петля (Loopback) inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:104371 errors:0 dropped:0 overruns:0 frame:0 TX packets:104371 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:720253620 (720.2 MB) TX bytes:720253620 (720.2 MB)
Устанавливаем графический стол Xubuntu
sudo apt install xubuntu-desktop
Компиляция пакетов XRDP
Для создания пакетов для установки и установки XRDP используем специальную программку x11rdp-o-matic.
Информацию по ключам установки, можно посмотреть тут
cd ~ mkdir install cd ~/install git clone https://github.com/scarygliders/X11RDP-o-Matic.git cd X11RDP-o-Matic sudo su ./X11rdp-o-matic.sh –justdoit --cleanup
стартует долгий процесс скачивания, проверки и компиляции модулей для xrdp, обязательно нужно дождаться завершения процедуры.
После сборки пакетов, в папке /X11RDP-o-Matic/packages/ лежат уже готовые собранные пакеты x11rdp_X.X.X-X_amd64.deb, xrdp_X.X.X-X_amd64.deb, пригодятся при переинсталированнии сервера без необходимости еще раз компилировать и собирать xrdp из исходников.
Проверяем установку xrdp:
sudo /etc/init.d/xrdp restart netstat -lntp |grep 3389
Ошибки и их устранение
Сервис не стартовал, выдав такую строку.
$ sudo service xrdp restart A dependency job for xrdp.service failed. See 'journalctl -xe' for details.
Решение
Решение нашел тут
Меняем строку
EnvironmentFile=/etc/sysconfig/xrdp
на
EnvironmentFile=/etc/default/xrdp
в файлах /lib/systemd/system/xrdp.service и /lib/systemd/system/xrdp-sesman.service.
После этого
# service xrdp start Warning: xrdp.service changed on disk. Run 'systemctl daemon-reload' to reload units. A dependency job for xrdp.service failed. See 'journalctl -xe' for details. # systemctl daemon-reload # service xrdp start # netstat -lntp |grep 3389
При вводе
$ sudo service xrdp restart
Выдавало строку
sudo: /etc/init.d/xrdp: команда не найдена
Решение
sudo cp /home/misha/install/X11RDP-o-Matic/work/xrdp/instfiles/init.d/xrdp /etc/init.d/ sudo chmod +755 /etc/init.d/xrdp
После очередной инсталляции, клиенты перестали подключаться к серверу. В файле /var/log/xrdp.log появились строки
[20160902-10:01:31] [CORE ] WARNING: Invalid x.509 certificate path defined, default path will be used: /etc/xrdp/cert.pem [20160902-10:01:31] [CORE ] WARNING: Invalid x.509 certificate path defined, default path will be used: /etc/xrdp/key.pem [20160902-10:01:31] [CORE ] XRDP cannot read file: /etc/xrdp/rsakeys.ini (check permissions)
Решение
Решение нашел [тут]
Выполняем в консоли команду
$sudo xrdp-keygen xrdp /etc/xrdp/rsakeys.ini
Добавление в автозагрузку
Ставим xrdp в автозагрузку:
sudo update-rc.d xrdp defaults sudo update-rc.d xrdp enable exit
Установка модуля HASP
Модули HASP для Uuntu 16.04 выпушены только для 32 разрядных систем. Для того что бы они работали в 64 разрядной системе, делаем следующее
sudo su dpkg --add-architecture i386 apt update && sudo apt upgrade apt-get -f install apt install login:i386 apt install make:i386 apt install libusb-1.0.0
Идем сюда и качаем пакеты HASP для нашей версии ubuntu
cd ~ mkdir /hasp cd hasp wget http://download.etersoft.ru/pub/Etersoft/HASP/last/Ubuntu/16.04/haspd_7.40-eter9ubuntu_i386.deb wget http://download.etersoft.ru/pub/Etersoft/HASP/last/Ubuntu/16.04/haspd-modules_7.40-eter9ubuntu_i386.deb
Устанавливаем пакеты
dpkg -i haspd-modules_7.40-eter9ubuntu_i386.deb dpkg -i haspd_7.40-eter9ubuntu_i386.deb
Мне еще пришлось повозиться, что бы HASP заработал. Напишу что делал чуть позже. Пока же инет Вам в руки.
Проверяем работу модуля
service haspd restart service haspd status exit
Если вставляете HASP уже после загрузки сервера, перезапустите демон haspd
service haspd restart
Установка 1С
Распаковываем файлы deb64.tar.gz и client.deb64.tar.gz из дистрибутива 1С 8.3 в одну папку.
Устанавливаем:
sudo dpkg -i 1c*.deb sudo apt-get -f install sudo apt-get install ttf-mscorefonts-installer sudo apt-get install imagemagick
До настройка системы
Добавляем индикатор клавиатуры в верхнюю панель.
Правая кнопка мыши по панели. Выбираем Панель -> Параметры панели
Вкладка Элементы. Жмем Плюс и добавляем Раскладки клавиатуры.
Добавляем иконки
В панели нажимаем кнопку списка программ (самая левая в панели) и в поиске напираем 1С. И перетаскиваем иконку 1С клиент на рабочий стол.
Таким же образом добавляем все нужные программы на рабочий стол.
Настраиваем «скелеты» для пользователей
Выполняем с правами рута
cd /home/Настроенный_Пользователь cp -R -f -b .config/ /etc/skel/ # настройки lxde cp -R -f -b Рабочий\ стол/ /etc/skel/ # Содержимое рабочего стола
Добавляем пользователей терминалов
sudo adduser term1 sudo adduser term2
Пароли при добавлении пользователей лучше создавать цифровыми, тк иногда может не переключаться раскладка клавиатуры в окне входа терминала.
Решение проблемы с раскладкой
После входа на компьютер через терминал не переключается раскладка клавиатуры. Пробовал добавить строку:
setxkbmap -layout "us,ru" -model "pc105" -option "grp:alt_shift_toggle,grp_led:scroll"
в файл /etc/X11/Xsession после строки: set -e - не получилось.
Пока сделал костыль: На рабочем столе создал файл klav.sh
#!/bin/sh setxkbmap -layout "us,ru" -model "pc105" -option "grp:alt_shift_toggle,grp_led:scroll"
И запускаю его, после входа в терминал.
Как быстро снять подвисшую сессию и все процессы пользователя
Можно одной командой снять сессию и все процессы связанные с данным пользователем. Такой способ снятия очень быстрый и эффективный:
/usr/bin/killall -9 -u ИмяПользователя
Взято тут.
Еще некоторые ссылки
- Настройка звука в XRDP для Linux Ubuntu
- Решение проблемы запуска сессий новых пользователей в XRDP
- Генерация штрих-кода для вставки его в 1С при работе в Linux
- Генерация изображения штрих-кода в 1С при работе в Linux.
- Вывод отладочной информации запуска 1С8.3 в Linux
- Настройка окружения LXDE для терминальных пользователей XRDP в Linux Ubuntu
- Создание кросс-платформенной и кросс-браузерной карты Google, выводящей много точек через 1С
- Снятие терминальной сессии пользователя в XRDP (Linux) и 1C
- Простейший способ создания штрих-кода в формате PNG из командной строки в Linux Ubuntu