Сетевой ключ 1С и менеджер NHSRV: как раздать лицензии на все рабочие места
Содержание
Чтобы лицензии 1С из сетевого USB-ключа работали на нескольких компьютерах, нужны три вещи. На машину с ключом ставят драйвер защиты и менеджер лицензий NHSRV (HASP License Manager) в режиме службы. В брандмауэре этой машины открывают порт 475 для UDP и TCP. На клиентах в файле nethasp.ini прописывают адрес этого компьютера.
Настройка относится к платформе 1С:Предприятие 8.3 в целом и не зависит от конфигурации: Бухгалтерия, ЗУП и УТ получают лицензию одинаково. Ниже по шагам — установка, конфигурационные файлы, связка с программными лицензиями и разбор ошибок.
Что делает NHSRV и в каких случаях он нужен
NHSRV — менеджер лицензий фирмы Aladdin (сейчас Thales/Sentinel) для аппаратных ключей серии NetHASP. Исполняемый файл службы называется nhsrvice.exe, в списке служб Windows она видна как HASP Loader.
Менеджер работает посредником. Клиент 1С на рабочем месте не видит USB-порт чужого компьютера. Он отправляет запрос по сети, NHSRV принимает его, проверяет число свободных мест в ключе и выдаёт или не выдаёт лицензию.
NHSRV нужен, если:
- 🔴 у вас многопользовательский клиентский ключ (на 5, 10, 20, 50 и более мест);
- 🖥️ ключ вставлен в один компьютер, а работают с 1С на нескольких;
- 🌐 ключ стоит на терминальном сервере или отдельной машине, а пользователи подключаются по сети.
NHSRV не нужен, если ключ однопользовательский и вставлен прямо в компьютер пользователя. Его не используют и для ключа сервера 1С:Предприятия: тот читается локально, только на компьютере, где работает кластер.
Какие ключи и лицензии 1С совместимы с менеджером NHSRV
Сначала проверьте, что у вас за ключ. Тип написан на самом ключе и в регистрационной анкете из коробки.
| Вид защиты | Где находится | Нужен NHSRV |
|---|---|---|
| Однопользовательский клиентский ключ | В компьютере пользователя | Нет |
| Многопользовательский (сетевой) клиентский ключ | На одном компьютере в сети | Да |
| Ключ сервера 1С:Предприятия | На компьютере кластера | Нет |
| Программная лицензия (пинкод) | Файл лицензии на диске | Нет, это другой механизм |
Многопользовательский ключ раздаёт столько одновременных подключений, сколько указано в его серии. Учёт идёт по компьютерам: два сеанса 1С с одного рабочего места в файловом режиме занимают одну лицензию.
Ключи разной серии (например, на 5 и на 10 мест) можно вставить в один компьютер — один менеджер NHSRV обслужит оба. Два ключа одной и той же серии надёжнее разнести на разные компьютеры, иначе один из них может не учитываться.
Установка драйвера и службы HASP License Manager
Всё делается на компьютере, куда вставлен ключ. Это может быть сервер, терминальный сервер или просто постоянно включённая рабочая станция.
1. Драйвер защиты
Установщик драйвера есть в дистрибутиве платформы — пункт установки драйвера защиты в программе setup.exe при выборе компонентов. Если драйвер нужно поставить отдельно, используйте утилиту из комплекта Sentinel:
haspdinst.exe -i
После установки вставьте ключ. Светодиод на нём должен гореть ровно, а в Диспетчере устройств появиться устройство защиты без жёлтого значка.
2. Менеджер лицензий
- Запустите установщик менеджера лицензий
lmsetup.exe(он лежит в каталоге NetHASP на диске ИТС или в комплекте платформы). - На вопросе о типе установки выберите вариант «Service» — служба. Режим «Application» работает, только пока пользователь вошёл в систему, для сервера он не подходит.
- Оставьте каталог по умолчанию. Обычно это
C:\Program Files (x86)\Aladdin\HASP LM\. - После установки откройте
services.msc, найдите службуHASP Loaderи проверьте, что тип запуска — «Автоматически».
3. Брандмауэр
NHSRV слушает порт 475. Откройте его входящими правилами для обоих протоколов. В PowerShell от администратора:
New-NetFirewallRule -DisplayName "NetHASP UDP 475" -Direction Inbound -Protocol UDP -LocalPort 475 -Action Allow
New-NetFirewallRule -DisplayName "NetHASP TCP 475" -Direction Inbound -Protocol TCP -LocalPort 475 -Action Allow
Если между клиентами и сервером стоит аппаратный межсетевой экран, порт 475 открывают и там.
4. Ограничения на стороне сервера: nhsrv.ini
Файл nhsrv.ini лежит в каталоге менеджера. Без него NHSRV обслуживает всех, кто до него достучится. Пример для одной подсети:
[NHS_SERVER]
NHS_IP_LIMIT = 192.168.1.*
[NHS_IP]
NHS_USE_UDP = Enabled
NHS_USE_TCP = Enabled
NHS_IP_LIMIT пускает к ключу только адреса из указанного диапазона. Это полезно, когда в одной сети работают две фирмы со своими ключами. После правки файла службу HASP Loader нужно перезапустить.
Перезапуск службы снимает все выданные лицензии. Пользователи, которые сейчас работают в 1С, при следующем обращении к ключу получат ошибку. Делайте это до начала рабочего дня или после того, как все вышли из программы.
Программные лицензии и NHSRV: как они уживаются
Программные лицензии (пинкоды) менеджер NHSRV не обслуживает вообще. Это частая путаница: после покупки дополнительных мест в виде пинкода пытаются «добавить их в NHSRV», и ничего не выходит.
Программная лицензия активируется на конкретный компьютер и хранится в файле. В 8.3 файлы лицензий лежат в каталоге C:\ProgramData\1C\licenses\. Активация идёт через мастер получения лицензии, который платформа сама предлагает, если не нашла ни ключа, ни файла.
Совмещать оба вида можно. Типичная схема:
- 🔴 старые 10 мест — на сетевом ключе, раздаются через NHSRV;
- 📄 докупленные 5 мест — программная лицензия, активированная на сервере 1С.
В клиент-серверном варианте программные клиентские лицензии, активированные на компьютере кластера, выдаёт сам сервер 1С. В свойствах информационной базы в консоли администрирования для этого есть параметр о выдаче лицензий сервером 1С:Предприятия. Он определяет, получает ли клиент лицензию от кластера или ищет её у себя и в сети.
Проверить, какую лицензию взял конкретный сеанс, можно командой утилиты rac:
rac session list --cluster=<id_кластера> --licenses
В выводе для каждого сеанса видно, программная это лицензия или аппаратный ключ, и на каком компьютере она найдена.
Пинкод привязывается к параметрам оборудования. Если на сервере, где активирована программная лицензия, планируется замена дисков или переезд на новую виртуальную машину, сначала уточните порядок восстановления лицензии. С ключом NetHASP такой проблемы нет: переставили ключ — переставили лицензии.
Настройка рабочих мест: файл nethasp.ini
Драйвер защиты на клиентах для сетевого ключа не нужен. Клиенту достаточно найти NHSRV в сети.
Без настройки клиент 1С ищет менеджер широковещательным запросом. В маленькой сети без маршрутизаторов это срабатывает. Но широковещание не проходит между подсетями, через VPN и часто блокируется на коммутаторах. Надёжнее указать адрес явно.
Файл nethasp.ini кладут в каталог bin\conf установленной версии платформы, например C:\Program Files\1cv8\8.3.24.1586\bin\conf\nethasp.ini. Если на компьютере несколько версий платформы, файл нужен в каждой.
Минимальное содержимое:
[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.10
NH_PORT_NUMBER = 475
NH_USE_BROADCAST = Disabled
NH_TCPIP_METHOD = UDP
Что означают параметры:
| Параметр | Значение |
|---|---|
NH_SERVER_ADDR | IP-адрес компьютера с ключом. Можно перечислить несколько через запятую |
NH_PORT_NUMBER | Порт менеджера, по умолчанию 475 |
NH_USE_BROADCAST | Disabled отключает широковещательный поиск, клиент идёт сразу по адресу |
NH_TCPIP_METHOD | UDP или TCP. TCP стабильнее через VPN и между филиалами |
После правки файла перезапустите 1С на рабочем месте. Перезагружать компьютер не нужно.
При обновлении платформы появляется новый каталог версии, и nethasp.ini в нём будет стандартным, с закомментированными строками. Скопируйте свой файл в новый bin\conf сразу после обновления. Именно это — самая частая причина ошибки «утром после обновления никто не может зайти».
Удобно держать эталонный nethasp.ini на сетевом ресурсе и копировать его в новый каталог скриптом входа или групповой политикой.
Ошибки при работе с сетевым ключом и что с ними делать
Главная диагностическая программа — Aladdin Monitor (aksmon). Поставьте её на любой компьютер в сети. Она показывает, какие менеджеры NHSRV видны, какие ключи в них вставлены и с каких адресов заняты лицензии.
Если Monitor видит ключ, а 1С — нет, проблема в клиенте. Если Monitor не видит и менеджер, проблема на стороне сервера или в сети.
Ещё один источник путаницы — веб-панель Sentinel по адресу http://localhost:1947. Её ставит современный драйвер, но она обслуживает другие типы ключей. Сетевые ключи 1С раздаёт именно NHSRV на порту 475, и диагностировать их надо через Aladdin Monitor.
Зависшую лицензию можно освободить, закрыв процесс 1cv8.exe или 1cv8c.exe на компьютере, адрес которого показывает Monitor. Перед этим предупредите пользователя: несохранённые данные в его сеансе пропадут.
Оптимизация NHSRV в крупных сетях и на терминальных серверах
Когда лицензий десятки, а рабочих мест сотни, настройка «по умолчанию» начинает подводить. Что помогает:
- Явные адреса вместо широковещания. На всех клиентах
NH_USE_BROADCAST = Disabledи конкретныйNH_SERVER_ADDR. Сеть перестаёт засоряться запросами, клиент находит ключ быстрее. - Статический IP для машины с ключом. Зарезервируйте адрес в DHCP или задайте вручную. Сменившийся адрес ломает все рабочие места разом.
- Ключ — на сервер, который не выключают. Рабочая станция бухгалтера с ключом рано или поздно уйдёт в перезагрузку посреди дня.
- Разграничение по подсетям. Через
NHS_IP_LIMITзакройте доступ к ключу из гостевой сети и чужих сегментов. - Несколько менеджеров. При двух ключах на разных серверах перечислите оба адреса в
NH_SERVER_ADDRчерез запятую. Клиент возьмёт лицензию там, где есть свободное место. - Терминальный сервер. Если все пользователи работают через RDP, держите ключ и NHSRV прямо на терминальном сервере. Сетевая часть тогда почти не участвует, и проблем с портами нет.
- Виртуализация. Хост-гипервизор не всегда корректно пробрасывает USB в виртуальную машину. Для ключа в виртуальной среде используют USB-over-IP концентратор или проброс конкретного порта, а NHSRV ставят в гостевую систему, которая видит ключ.
Отдельно о росте. Если мест не хватает, докупить их можно и программной лицензией: её не нужно встраивать в NHSRV, платформа сама учтёт оба источника. А вот при переходе на клиент-серверный вариант стоит заранее решить, где будут жить лицензии — на ключе в сети или у кластера. Смешанная схема работает, но её сложнее диагностировать.