Сетевые порты сервера 1С 8.3: агент, кластер, рабочие процессы, HASP и веб-публикация
Содержание
Сервер 1С:Предприятия 8.3 по умолчанию работает на портах TCP 1540 (агент сервера), 1541 (менеджер кластера) и диапазоне 1560–1591 (рабочие процессы). Именно эти три позиции нужно открыть на фаерволе сервера для входящих подключений, чтобы клиенты в клиент-серверном режиме увидели базы. Остальное зависит от состава системы: сервер администрирования RAS — 1545, хранилище конфигурации — 1542, сетевой ключ HASP — 475, веб-публикация — 80 или 443, СУБД — 1433 (MS SQL) или 5432 (PostgreSQL).
Если открыть только 1540 и 1541, клиент подключится к кластеру, но не сможет работать с базой: соединение с рабочим процессом пойдёт на порт из диапазона и упрётся в фаервол. Это самая частая причина ситуации «с сервера всё работает, с рабочих мест — нет».
Как устроено сетевое взаимодействие клиента и кластера 1С
На сервере 1С работают три типа процессов. Каждый слушает свой порт, и у каждого своя роль.
| Процесс | Что делает | Порт по умолчанию |
|---|---|---|
ragent — агент сервера | Управляет кластерами на машине, к нему подключается консоль администрирования | 1540 |
rmngr — менеджер кластера | Хранит реестр кластера, распределяет сеансы по рабочим процессам | 1541 |
rphost — рабочий процесс | Выполняет код конфигурации, обращается к СУБД | диапазон 1560–1591 |
Порядок подключения такой:
- Клиент обращается к кластеру по имени сервера (порты 1540–1541).
- Кластер выбирает рабочий процесс и сообщает клиенту его адрес и порт.
- Дальше клиент работает с рабочим процессом напрямую, по порту из диапазона.
Отсюда важная деталь. Кластер возвращает клиенту имя рабочего сервера, под которым тот зарегистрирован в кластере, а не IP-адрес. Если на рабочем месте это имя не разрешается в адрес, подключение не состоится, даже когда все порты открыты.
Если DNS в сети нет или он настроен с ошибками, пропишите имя сервера в файл C:\Windows\System32\drivers\etc\hosts на клиентах и на веб-сервере: 192.168.1.10 srv1c. Имя должно совпадать с тем, что указано в свойствах рабочего сервера в консоли кластера.
Файловый режим к этим портам отношения не имеет. Файловая база открывается через общую сетевую папку, а значит нужен только доступ по SMB (TCP 445) к машине с каталогом базы.
Порт агента 1540 и менеджера кластера 1541
Агент и главный менеджер кластера — две «точки входа». Их номера задаются при установке службы и хранятся в её командной строке. Типичный путь исполняемого файла службы на Windows выглядит так:
"C:\Program Files\1cv8\8.3.24.1586\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
Здесь:
- 🔹
-port 1540— порт агента сервера; - 🔹
-regport 1541— порт главного менеджера кластера; - 🔹
-range 1560:1591— диапазон для рабочих процессов; - 🔹
-d— каталог реестра кластераsrvinfo.
В строке подключения к базе указывают порт менеджера кластера. Для стандартной установки порт не пишут: клиент сам подставит 1541. Строка в списке баз выглядит так: Srvr="srv1c";Ref="buh";. Если кластер поднят на нестандартных портах, имя сервера пишут с портом: srv1c:2541.
Второй кластер на той же машине
Две версии платформы на одном сервере (например, рабочая и тестовая) не могут делить одни порты. Принято сдвигать всю тройку на тысячу:
| Экземпляр | Агент | Менеджер | Диапазон |
|---|---|---|---|
| Основной | 1540 | 1541 | 1560:1591 |
| Тестовый | 2540 | 2541 | 2560:2591 |
| Ещё один | 3540 | 3541 | 3560:3591 |
Второй экземпляр регистрируют как отдельную службу с другим каталогом srvinfo. Делается это от имени администратора из каталога bin нужной версии:
ragent.exe -instsrvc -port 2540 -regport 2541 -range 2560:2591 -d "D:\srvinfo_test" -usr .\USR1CV8 -pwd ПарольПользователя
Лишнюю службу удаляют командой ragent.exe -rmsrvc с теми же параметрами портов.
Смена портов у работающего кластера требует перезапуска службы агента. Все сеансы пользователей при этом оборвутся. Делайте это вне рабочего времени и после предупреждения пользователей.
На Linux порты задаются в параметрах запуска того же ragent в описании службы systemd. Логика и номера портов такие же, как на Windows.
Диапазон портов рабочих процессов
Диапазон рабочих процессов чаще всего настраивают неверно. Каждый процесс rphost и служебные процессы кластера занимают по одному порту из диапазона. Стандартных 32 портов (1560–1591) хватает большинству серверов, но при большом числе рабочих процессов или нескольких рабочих серверах в одном кластере диапазон расширяют.
Где посмотреть и поменять:
- Откройте консоль администрирования серверов 1С.
- Раскройте
Кластеры → <ваш кластер> → Рабочие серверы. - Откройте свойства рабочего сервера.
- Найдите поле с диапазонами IP-портов. Можно указать несколько диапазонов через запятую, например
1560:1591, 1600:1650.
Диапазон относится к рабочему серверу, а не к кластеру целиком. Если в кластере два сервера, у каждого свой диапазон, и на каждом его нужно открыть в фаерволе.
При кластере из нескольких серверов порты нужны не только клиентам. Менеджеры и рабочие процессы разных серверов обмениваются данными между собой, поэтому разрешите входящие подключения на 1540, 1541 и диапазон на каждом сервере кластера со всех остальных.
Порты, которые ставят рядом с сервером 1С
| Компонент | Порт | Когда нужен |
|---|---|---|
Сервер администрирования ras | 1545 | Консоль через rac, сторонние консоли и мониторинг |
Сервер хранилища crserver | 1542 | Групповая разработка в хранилище по TCP |
Сервер отладки dbgs | 1550 | Отладка по протоколу HTTP |
| MS SQL Server | 1433 | Только между сервером 1С и сервером СУБД |
| PostgreSQL | 5432 | Только между сервером 1С и сервером СУБД |
Порт СУБД клиентам не нужен. Пользовательские рабочие места к СУБД не обращаются: с базой данных работают только рабочие процессы. Если 1С и СУБД стоят на одной машине, порт 1433 или 5432 вообще не надо открывать наружу.
Сервер администрирования запускают и подключаются к нему так:
ras cluster --port=1545 localhost:1540
rac localhost:1545 cluster list
Порты лицензирования: HASP и программные лицензии
Сетевой ключ HASP
Сетевой аппаратный ключ раздаёт лицензии через менеджер лицензий HASP License Manager. Он работает на порту 475 по UDP и TCP. Этот порт нужно открыть на машине, где стоит ключ и менеджер лицензий.
По умолчанию клиент ищет менеджер широковещательным запросом. В сети с несколькими подсетями или VPN такой поиск не доходит. Тогда адрес менеджера указывают явно в файле nethasp.ini в каталоге conf платформы:
[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.20
NH_PORT_NUMBER = 475
NH_USE_BROADCAST = Disabled
В клиент-серверном режиме клиентская лицензия берётся сервером 1С, а не рабочим местом. Значит, порт 475 должен быть доступен с сервера 1С до машины с ключом. Рабочим местам доступ к менеджеру лицензий нужен в файловом режиме.
Программные лицензии
Программные лицензии хранятся в файлах на компьютере, где их активировали. Отдельного порта для их выдачи внутри сети нет. В клиент-серверном варианте лицензии активируют на сервере 1С, и он выдаёт их сеансам сам. Интернет нужен только на этапе активации и повторной активации, если активация идёт не через файл или телефон.
Без доступной лицензии платформа не запустит базу. Если после закрытия портов пользователи получают ошибку получения лицензии, первым делом проверьте 475 для HASP-ключа или наличие лицензий на сервере для программной защиты.
Порты для веб-клиента, IIS и Apache
Веб-сервер с публикацией базы — это для кластера такой же клиент, как обычное рабочее место. Связь выглядит так:
- 🌐 браузер или тонкий клиент по HTTP/HTTPS → веб-сервер (IIS или Apache), порт 80 или 443;
- 🔗 модуль расширения веб-сервера
wsisapi.dll(IIS) или модуль Apache → сервер 1С, порты 1540, 1541 и диапазон рабочих процессов.
Отсюда два набора правил:
- На веб-сервере открыть входящие 80 и 443 для пользователей.
- На сервере 1С разрешить входящие 1540, 1541 и диапазон с адреса веб-сервера.
Если веб-сервер стоит в демилитаризованной зоне, а сервер 1С во внутренней сети, второй набор правил прописывают на межсетевом экране между зонами. И снова проверьте, что веб-сервер разрешает имя рабочего сервера 1С через DNS или hosts.
Открывать 1540–1591 в интернет ради удалённой работы не нужно и опасно. Для внешних пользователей есть два нормальных пути: публикация через HTTPS на 443 или VPN во внутреннюю сеть.
Правила фаервола для сервера 1С
Windows Server
Через PowerShell от имени администратора:
New-NetFirewallRule -DisplayName "1C Server 8.3" -Direction Inbound -Protocol TCP -LocalPort 1540,1541,1560-1591 -Action Allow
New-NetFirewallRule -DisplayName "1C RAS" -Direction Inbound -Protocol TCP -LocalPort 1545 -RemoteAddress 192.168.1.0/24 -Action Allow
То же самое через netsh:
netsh advfirewall firewall add rule name="1C Server 8.3" dir=in action=allow protocol=TCP localport=1540-1541,1560-1591
Для машины с HASP-ключом:
New-NetFirewallRule -DisplayName "HASP LM UDP" -Direction Inbound -Protocol UDP -LocalPort 475 -Action Allow
New-NetFirewallRule -DisplayName "HASP LM TCP" -Direction Inbound -Protocol TCP -LocalPort 475 -Action Allow
Linux
Для ufw:
sudo ufw allow 1540:1541/tcp
sudo ufw allow 1560:1591/tcp
Для firewalld:
sudo firewall-cmd --permanent --add-port=1540-1541/tcp
sudo firewall-cmd --permanent --add-port=1560-1591/tcp
sudo firewall-cmd --reload
Хорошая практика — сужать правило по источнику. Порты кластера нужны только из сети рабочих мест и с веб-сервера, порт RAS — только с машин администраторов.
Как проверить, что порты 1С открыты и слушаются
Проверку делают с двух сторон: на самом сервере (слушает ли процесс порт) и с клиента (доходит ли соединение).
На сервере
Убедитесь, что процессы слушают нужные порты:
netstat -ano | findstr ":1540 :1541 :156"
В выводе должны быть строки в состоянии LISTENING. По номеру PID в последней колонке видно, какой процесс держит порт: сверьте его с ragent.exe, rmngr.exe или rphost.exe в диспетчере задач. На Linux то же самое показывает ss -tlnp | grep -E "154|156".
Если 1540 не слушается — служба агента не запущена или стартовала с другими портами. Посмотрите её командную строку в свойствах службы.
С клиента
В PowerShell:
Test-NetConnection srv1c -Port 1541
Test-NetConnection srv1c -Port 1560
Строка TcpTestSucceeded : True означает, что порт доступен. Порт из диапазона проверяйте тот, который реально занят рабочим процессом: номер берите из вывода netstat на сервере. Свободный порт диапазона ответит отказом, даже если фаервол настроен правильно.
Частые вопросы
Можно ли оставить только порт 1541?
Какой порт указывать в списке баз при нестандартной установке?
srv1c:2541.