Почему один компьютер занимает несколько аппаратных лицензий 1С и как это исправить?

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

В крупных локальных сетях, где внедрена защищенная IT инфраструктура и используется несколько аппаратных ключей защиты Sentinel HASP (например, серии ORGL8 на 10 и 20 пользователей), часто возникает ситуация, когда один и тот же компьютер при запуске нескольких экземпляров программы 1С:Предприятие потребляет лицензии с разных ключей одновременно. Это приводит к преждевременному исчерпанию лимита лицензий и невозможности работы других пользователей.

Рассмотрим природу этой проблемы и разберем по шагам, опираясь на справочник по администрированию Windows/Linux, как настроить систему так, чтобы один компьютер занимал ровно одну лицензию вне зависимости от количества запущенных информационных баз.

Выясним причину: почему происходит "размножение" лицензий

Проанализируем ситуацию: по умолчанию клиентское приложение 1С ищет ключи защиты с помощью широковещательного запроса (Broadcast) по протоколу UDP на порт 475. Если в сети находятся два сервера лицензий (в нашем случае на базе CentOS 7), клиент может получить ответ от обоих. Правило "одна лицензия на один компьютер" безукоризненно работает только в рамках одного менеджера лицензий (HASP License Manager). Если первый экземпляр 1С "зацепился" за сервер А, а второй экземпляр (из-за микрозадержек сети или особенностей широковещания) отправил запрос и получил ответ от сервера Б, система защиты посчитает их разными сессиями в разных "корзинах" лицензий. В итоге будут списаны две лицензии вместо одной.

Также важно учитывать фактор имен серверов. Если на обоих Linux-серверах менеджеры лицензий имеют одинаковые имена по умолчанию, это вносит путаницу в кэширование ответов клиентской частью защиты.

Шаг 1. Настройка клиентской части через nethasp.ini

Первым делом нам необходимо жестко ограничить область поиска ключей для клиентских машин. Вместо непредсказуемого широковещания мы будем использовать прямое обращение по IP-адресам. Найдем файл nethasp.ini. В Windows он обычно располагается в папке C:\Program Files\1cv8\conf\ или в папке с конкретной версией платформы. В Linux (если используются тонкие клиенты) — в каталоге установки 1С (автоматизировать процесс развертывания поможет сценарий установки 1С).

Отредактируем секцию [NH_TCPIP] следующим образом:


[NH_COMMON]
NH_TCPIP = Enabled

[NH_TCPIP]
; Указываем конкретные IP-адреса серверов, где установлены ключи
NH_SERVER_ADDR = 192.168.1.10, 192.168.1.11 
; Отключаем широковещательный поиск
NH_USE_BROADCAST = Disabled
; Устанавливаем протокол TCP для стабильности
NH_TCPIP_METHOD = TCP
; Ограничиваем время ожидания ответа
NH_SESSION_TIMEOUT = 5
NH_SEND_RCV_TIMEOUT = 5

Разберем подробнее, что дают эти настройки. Параметр NH_SERVER_ADDR заставляет 1С обращаться только к указанным узлам. Отключение NH_USE_BROADCAST гарантирует, что программа не будет пытаться "кричать" в сеть в поисках других ключей. Это не только решает проблему с дублированием лицензий, но и значительно ускоряет запуск 1С, так как исключаются таймауты при ожидании ответов от несуществующих серверов.

Шаг 2. Настройка уникальных имен серверов в CentOS 7 (по аналогии с тем, как выполняется запуск нескольких экземпляров сервера 1С)

Теперь перейдем к настройке серверов на CentOS 7. Чтобы менеджеры лицензий корректно идентифицировались в сети, им нужно присвоить уникальные имена. Это делается в файле конфигурации hasplm.ini (обычно он находится в /etc/hasplm/hasplm.ini или создается вручную в директории бинарного файла).

На первом сервере пропишем:


[NHS_SERVER]
NHS_SERVERNAMES = HASP_SERVER_1

На втором сервере:


[NHS_SERVER]
NHS_SERVERNAMES = HASP_SERVER_2

После внесения изменений обязательно перезапустим службу менеджера лицензий командой:

systemctl restart hasplm (или аналогичной, в зависимости от способа установки драйвера).

Присвоение уникальных имен позволяет механизму защиты на стороне клиента четко понимать, что HASP_SERVER_1 и HASP_SERVER_2 — это разные сущности. В сочетании с настройками nethasp.ini это минимизирует риск ошибочного захвата лицензий из разных источников.

Шаг 3. Управление через Admin Control Center (ACC)

Для мониторинга и тонкой настройки на серверах Linux рекомендуем использовать веб-интерфейс Sentinel Admin Control Center. По умолчанию он доступен по адресу http://localhost:1947. Если вам нужен удаленный доступ к этой панели, в файле hasplm.ini проверьте права доступа.

В интерфейсе ACC мы можем выполнить следующие действия:

  1. Проанализировать вкладку Sessions, чтобы увидеть, какие IP-адреса занимают лицензии и сколько сессий открыто для каждого хоста.
  2. В разделе Configuration -> Access to Remote License Managers на стороне клиента можно также продублировать список серверов, что является альтернативой правке nethasp.ini для современных версий драйверов.
  3. Проверить параметр Idle Timeout. Если пользователь некорректно завершил работу (например, произошел сбой сети), лицензия может "подвиснуть". Установка разумного таймаута поможет быстрее освобождать "зомби-лицензии".

Шаг 4. Особенности иерархии поиска лицензий

Проанализируем ситуацию, если на предприятии используются и аппаратные, и программные лицензии. 1С всегда следует строгому алгоритму поиска:

  1. Локальный аппаратный ключ (USB-флешка в самом ПК).
  2. Многопользовательский аппаратный ключ по сети (то, что мы настраиваем через nethasp.ini).
  3. Программная лицензия (локальный файл-запрос).
  4. Лицензия, выдаваемая сервером 1С:Предприятие (в случае клиент-серверного варианта).

Важный момент: если вы хотите, чтобы лицензии выдавал именно клиент (для экономии серверных лицензий или при работе в терминальном режиме), убедитесь, что в настройках информационной базы (в консоли администрирования или при запуске) не стоит приоритет "Разрешить выдачу лицензий сервером 1С".

Рекомендации по оптимизации

Для стабильной работы системы защиты рекомендуется:

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

← На главную