Как настроить раздачу лицензий 1С через HASP LM при использовании нескольких серверов на Linux

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

В процессе эксплуатации крупномасштабных систем на базе «1С:Предприятия» часто возникает ситуация, когда необходимо распределить лицензии между несколькими серверами. Типичный сценарий: на основном сервере установлен аппаратный ключ (USB) и активированы программные лицензии, а новый дополнительный сервер не «видит» эти ресурсы. В данной статье мы подробно разберем, как обеспечить стабильную работу системы лицензирования в среде Linux (на примере CentOS 7), правильно настроить файл nethasp.ini и обойти ограничения протоколов поиска.

Разбор фундаментальных различий: HASP LM и программные ключи

Прежде чем приступать к настройке конфигурационных файлов, проанализируем важный технический нюанс. В системе 1С существуют два принципиально разных типа защиты: аппаратные USB-ключи и программные лицензии (файлы с расширением .lic).

Важно понимать, что служба HASP License Manager (HASP LM) работает исключительно с аппаратными ключами. Она не способна видеть программные лицензии и транслировать их по сети. Если на вашем первом сервере установлены оба типа защиты, то через HASP LM будут «раздаваться» только те 20 лицензий, которые находятся на USB-носителе. Программные лицензии раздаются либо самим сервером 1С (через менеджер кластера), либо клиентским приложением напрямую.

Настройка файла nethasp.ini для поиска лицензий по сети

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

Выясним причину, по которой 1С может игнорировать настройки. В среде Linux крайне важен регистр имен и путь к файлу. Рассмотрим правильное расположение файла настроек:

cat ~/.1cv8/1C/1cv8/conf/nethasp.ini

Внутри файла необходимо задать параметры в секциях [NH_COMMON] и [NH_TCPIP]. Разберем по шагам содержание рабочих настроек:

  1. Включение протокола TCP/IP: Убедимся, что параметр NH_TCPIP находится в состоянии Enabled.
  2. Указание адреса сервера: Это ключевой момент. В параметре NH_SERVER_ADDR следует указать адрес сервера, где физически установлен USB-ключ и запущен HASP LM.

Проанализируем пример корректного заполнения секций:


[NH_COMMON]
NH_TCPIP = Enabled

[NH_TCPIP]
NH_SERVER_ADDR = server1c83 # Используйте DNS-имя вместо IP, если по IP соединение нестабильно
NH_TCPIP_METHOD = TCP
NH_USE_BROADCAST = Disabled

Обратите внимание: опыт показывает, что использование доменного имени (FQDN) иногда срабатывает лучше, чем прямой IP-адрес. Это связано с тем, как операционная система Linux обрабатывает разрешение имен и маршрутизацию пакетов UDP/TCP на порту 475.

Особенности раздачи лицензий самим сервером 1С

В клиент-серверном варианте (например, при использовании связки 1С и PostgreSQL) существует два способа получения лицензии клиентом. Разберем их подробнее, так как от этого зависит место размещения файла nethasp.ini:

Способ 1: Выдача лицензий сервером 1С. В свойствах информационной базы в консоли администрирования кластера установлена опция «Разрешить выдачу лицензий сервером 1С:Предприятия» в значение «Да». В этом случае именно сервер (под пользователем usr1cv8) обращается к ключу. Следовательно, файл nethasp.ini должен быть настроен в профиле пользователя usr1cv8 на том сервере, где запущена база.

Способ 2: Самостоятельное получение лицензии клиентом. Если опция выдачи сервером отключена, каждое клиентское приложение на рабочих станциях пользователей само ищет ключ. В этом случае nethasp.ini должен быть настроен на каждом компьютере пользователя.

Работа с несколькими ключами одной серии

Рассмотрим ситуацию, когда у вас имеется несколько аппаратных ключей одной серии (например, два ключа по 20 пользователей серии ORGL8). Выясним важную особенность: один экземпляр HASP License Manager не может корректно работать с двумя ключами одной серии на одной физической машине. Он «увидит» только один из них.

Если вам нужно суммировать лицензии с двух таких ключей, попробуйте следующие решения:

Специфика Linux (CentOS 7) и сетевые настройки

При работе на Linux необходимо учитывать настройки сетевого экрана (Firewall). Для работы HASP LM требуется открыть порт 475 для протоколов UDP и TCP. Проверим состояние портов командами в терминале:


firewall-cmd --permanent --add-port=475/udp
firewall-cmd --permanent --add-port=475/tcp
firewall-cmd --reload

Если широковещательный флад (broadcast) в вашей сети отключен или ограничен, 1С не сможет найти менеджер лицензий автоматически. Именно в этой ситуации явное указание сервера в nethasp.ini становится единственным способом заставить систему работать.

Современная альтернатива: Сервер лицензирования

Начиная с версии платформы 8.3.15, разработчики 1С рекомендуют использовать встроенный «Сервер лицензирования». Это позволяет уйти от низкоуровневой настройки nethasp.ini. Сервер лицензирования в составе кластера 1С может централизованно собирать информацию о доступных программных и аппаратных лицензиях и распределять их между рабочими процессами. Это особенно актуально для сложных инфраструктур с множеством серверов приложений.

Подведем итог: для успешного решения проблемы на Linux убедитесь, что файл конфигурации лежит по пути ~/.1cv8/1C/1cv8/conf/nethasp.ini, права доступа позволяют пользователю 1С его прочитать, а в самом файле указано корректное имя сервера, на котором запущен HASP LM с аппаратным ключом. Помните, что программные лицензии настраиваются отдельно и не имеют отношения к работе менеджера лицензий HASP.

← На главную