Сервер лицензий 1С: развёртывание на Windows и Linux
Содержание
Сервер лицензий 1С нужен, когда ключи защиты и лицензии лежат на одной машине, а работают с них десятки клиентов по сети. Для аппаратных ключей HASP это драйвер защиты с менеджером лицензий, для программных лицензий — файлы лицензий на сервере, к которым обращаются клиенты и кластер серверов .
Порядок такой: выбрать схему, подготовить машину и открыть порты, поставить драйвер, прописать адрес сервера на клиентах в nethasp.ini, загрузить лицензии и проверить, что клиенты их видят. Ниже все шаги для Windows и Linux.
Какая схема лицензирования вам нужна
Сначала определите, что именно вы раздаёте по сети. От этого зависит всё остальное.
| Вариант | Где хранится лицензия | Что ставить | Когда подходит |
|---|---|---|---|
| Аппаратный ключ HASP, локально | USB-ключ в компьютере пользователя | Драйвер защиты | Один-два рабочих места |
| Аппаратный ключ HASP в сети | USB-ключ в сервере | Драйвер + менеджер лицензий на сервере, nethasp.ini на клиентах | Офис с общим ключом на 5–100 мест |
| Программная лицензия | Файл лицензии на сервере, привязка к его параметрам | Ничего лишнего, только активация | Виртуальные машины, где USB-ключ не пробросить |
| Лицензия сервера 1С:Предприятия | Ключ или программная лицензия на машине кластера | Драйвер или активация на той же машине | Клиент-серверный режим, терминальный сервер |
Если сервер виртуальный, USB-ключ придётся пробрасывать через гипервизор или специальное устройство. Это частый источник сбоев после миграции виртуальных машин. Программная лицензия здесь удобнее.
Клиентские лицензии (на 5, 10, 20 мест) и лицензия сервера — разные вещи. Сервер 1С:Предприятия не заработает на клиентской лицензии, и наоборот. Проверьте, что именно записано на ключе или в пин-коде.
Подготовка машины и сетевых параметров
Машина под сервер лицензий должна быть включена всегда. Если ключ вынут или служба остановлена, у всех пользователей разом появится ошибка поиска лицензии.
Что подготовить заранее:
- 🖥 Постоянный IP-адрес сервера, а не выданный по DHCP на короткий срок. Клиенты будут искать сервер именно по нему.
- 🔌 Свободный USB-порт на самой машине. Хабы без питания и удлинители часто дают нестабильное чтение.
- 🧱 Открытые порты в брандмауэре сервера и между подсетями.
- 🕑 Окно для работ. Перезапуск службы драйвера оборвёт обращения к лицензиям, пользователи потеряют доступ.
Порты, которые нужны менеджеру лицензий:
| Порт | Протокол | Назначение |
|---|---|---|
475 | TCP и UDP | Обмен клиентов с менеджером лицензий HASP |
1947 | TCP и UDP | Веб-интерфейс администрирования и обнаружение |
Если между клиентами и сервером стоят маршрутизаторы, широковещательный поиск не пройдёт: он не выходит за пределы подсети. Поэтому в nethasp.ini адрес сервера лучше прописывать явно, как показано ниже.
Не вставляйте ключ в сервер, пока не поставлен драйвер. Windows подберёт универсальный драйвер, и потом придётся удалять его вручную.
Драйвер защиты и менеджер лицензий
Windows
- Скачайте с сайта поддержки 1С актуальный дистрибутив драйвера защиты. Он поставляется отдельно от платформы и имеет собственный номер версии.
- Запустите установку от имени администратора. Во время неё нужно оставить отмеченным установку службы менеджера лицензий (на сервере она обязательна).
- Дождитесь окончания и вставьте ключ в USB-порт.
- Откройте оснастку служб (
services.msc) и убедитесь, что служба менеджера лицензий запущена, а тип запуска — «Автоматически».
Если устанавливаете драйвер поверх старого, сначала удалите прежний. Смешанные версии дают то «ключ не виден», то «найден, но недоступен».
Linux
Для Linux в дистрибутиве 1С есть пакеты драйвера защиты в форматах deb и rpm. Менеджер лицензий работает как системная служба.
# Debian / Ubuntu
sudo dpkg -i имя_пакета_драйвера.deb
# RPM-дистрибутивы
sudo rpm -ivh имя_пакета_драйвера.rpm
Точные имена пакетов зависят от версии драйвера, поэтому подставьте то, что лежит в скачанном архиве. После установки проверьте, что служба запущена, и включите автозапуск:
sudo systemctl status haspd
sudo systemctl enable --now haspd
В некоторых сборках служба называется иначе. Найти её можно командой systemctl list-units | grep -i hasp.
Проверка через веб-интерфейс
Менеджер лицензий поднимает страницу администрирования. На самом сервере откройте в браузере http://localhost:1947. Там есть разделы «Ключи Sentinel» и «Сеансы»: в первом должен появиться ваш ключ, во втором — подключённые клиенты.
Чтобы заходить на страницу с других компьютеров, в настройках («Конфигурация») разрешите удалённый доступ и ограничьте его адресами администраторов. Открытая во весь интернет страница администрирования — лишний риск.
Настройка nethasp.ini и сетевых правил
Клиентам нужно сказать, где искать сервер лицензий. Для этого служит файл nethasp.ini. Он лежит в каталоге conf рядом с установленной платформой, например C:\Program Files\1cv8\conf\nethasp.ini. Если файла нет, создайте его.
Рабочий пример для сервера 192.168.1.10:
[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.10
NH_USE_BROADCAST = Disabled
NH_PORT_NUMBER = 475
NH_TCPIP_METHOD = UDP
Что здесь важно:
NH_SERVER_ADDR— адрес сервера лицензий. Можно указать несколько адресов через запятую, если серверов лицензий два.NH_USE_BROADCAST = Disabled— запрещаем широковещательный поиск, он нестабилен в сложных сетях.NH_PORT_NUMBER— порт менеджера, по умолчанию475.NH_TCPIP_METHOD = UDP— способ обмена.
Файл нужно положить на каждый компьютер, где запускается платформа, включая терминальные серверы. На тонких клиентах, которые работают через веб-доступ, он не нужен: там лицензию берёт сервер.
Если клиентов много, раздавайте nethasp.ini групповой политикой или скриптом входа. Править сорок файлов руками — путь к забытому компьютеру.
Правила брандмауэра на сервере:
New-NetFirewallRule -DisplayName "HASP 475 UDP" -Direction Inbound -Protocol UDP -LocalPort 475 -Action Allow
New-NetFirewallRule -DisplayName "HASP 475 TCP" -Direction Inbound -Protocol TCP -LocalPort 475 -Action Allow
Для Linux с ufw:
sudo ufw allow 475
sudo ufw allow from 192.168.1.0/24 to any port 1947
Вторая строка открывает веб-интерфейс только для вашей подсети.
Регистрация программных лицензий и пин-кодов
Программная лицензия привязывается к параметрам компьютера, на котором её получили. Поэтому получать её нужно на той машине, где она будет работать, а не на рабочем месте администратора.
Последовательность:
- Подготовьте регистрационный номер продукта и пин-код из комплекта поставки.
- Запустите на сервере Конфигуратор или любое приложение 1С и вызовите получение лицензии: платформа сама предложит это, если лицензии нет.
- Выберите получение лицензии по пин-коду, введите данные владельца и пин-код.
- Если на сервере нет интернета, выберите вариант с отправкой запроса через другой компьютер. Платформа сформирует файл запроса, вы получите ответ и загрузите его обратно.
- Убедитесь, что в каталоге лицензий появился файл с расширением
.lic.
Каталог хранения лицензий на Windows обычно находится в C:\ProgramData\1C\licenses, на Linux — в /var/1C/licenses. При резервном копировании сервера этот каталог тоже нужно включать.
Программная лицензия привязана к конфигурации машины. Смена материнской платы, перенос виртуальной машины на другой хост или клонирование образа могут её сломать. Перед такими работами проверьте условия переноса у партнёра, обслуживающего вашу лицензию, и заранее освободите лицензию через сервис получения.
Пин-код действует ограниченное число активаций. Если вы активировали лицензию на тестовой машине «для проверки», этот расход уже не вернуть без обращения в поддержку.
Диагностика проблем и анализ логов
Начинайте с вопроса, где обрывается цепочка: ключ — служба — сеть — клиент. Идите по ней от сервера к клиенту.
nethasp.ini и сверьте адрес. Затем проверьте доступность порта 475 с клиента, например командой Test-NetConnection 192.168.1.10 -Port 475. Учтите, что проверка TCP не доказывает прохождение UDP: если TCP открыт, а работа не идёт, смотрите правила для UDP.journalctl -u haspd на Linux. Если в это время обновлялась система или менялся сетевой адаптер, служба могла потерять привязку к интерфейсу. Перезапуск службы оборвёт обращения клиентов к лицензиям, поэтому делайте его в нерабочее время.Логи и журналы:
- 📄 Веб-интерфейс на порту
1947показывает журнал доступа и ошибок. - 📄 На Windows смотрите «Просмотр событий» → «Журналы Windows» → «Приложение» по источнику службы менеджера лицензий.
- 📄 На Linux —
journalctlпо имени службы. - 📄 В платформе 1С журнал регистрации и технологический журнал фиксируют отказ в получении лицензии на стороне клиента.
Если проблема плавающая, включите на странице администрирования подробный журнал на день-два и сравните время отказа с событиями в сети. Часто выясняется, что отказы совпадают с перезагрузкой коммутатора или ночным обновлением.
Как проверить работу с клиентского компьютера
Когда всё настроено, проверьте цепочку с обычного рабочего места, а не с сервера. Так вы увидите то, что видит пользователь.
- Закройте все окна 1С на клиенте, чтобы платформа заново прочитала
nethasp.ini. - Запустите информационную базу обычным способом. Если лицензия найдена, база откроется без запроса ключа.
- Откройте на сервере страницу
http://localhost:1947и перейдите в «Сеансы». Там должна появиться строка с адресом клиента и временем подключения. - Закройте 1С на клиенте и обновите страницу: занятое место освободится через короткое время.
Если база открылась, а сеанса в списке нет, значит, лицензию взяла другая машина: на клиенте остался локальный ключ или старый nethasp.ini смотрит на прежний сервер. Это стоит проверить до того, как раздавать настройки всем.
Что делать, когда сервер лицензий переезжает
Замена машины — обычная задача. Порядок такой:
- 📌 Поставьте драйвер и службу на новую машину и убедитесь, что ключ виден в веб-интерфейсе.
- 📌 Для программных лицензий заранее освободите лицензию на старой машине и получите новую на новой.
- 📌 Не меняйте адрес на клиентах по одному: подготовьте новый
nethasp.iniи разложите его одновременно, в нерабочее время. - 📌 Старый сервер выключайте только после того, как в «Сеансах» нового появились все ожидаемые клиенты.
Если можете оставить прежний IP-адрес за новой машиной, nethasp.ini на клиентах менять вообще не придётся. Это самый безболезненный вариант переезда.
Частые ошибки при развёртывании
- ❌ Ключ вставлен до установки драйвера. Windows ставит свой, и потом сервер лицензий не видит устройство.
- ❌ Брандмауэр пропускает TCP, а UDP режет. Клиенты то находят сервер, то нет.
- ❌ Клиентский
nethasp.iniостался от прошлого сервера с другим адресом. - ❌ Лицензию получили на машине администратора, а использовать собираются на сервере.
- ❌ Сервер лицензий поднят на ноутбуке или рабочем компьютере, который выключают на ночь.
Нужен ли отдельный сервер только под лицензии?
Сколько клиентов выдержит один сервер лицензий?
Можно ли держать два сервера лицензий?
NH_SERVER_ADDR перечисляют несколько адресов, клиент обращается к ним по очереди. Это удобно, если ключи разных типов лежат на разных машинах.