Сетевые порты сервера 1С 8.3: агент, кластер, рабочие процессы, HASP и веб-публикация

· 9 мин

Содержание

Сервер 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

Порядок подключения такой:

  1. Клиент обращается к кластеру по имени сервера (порты 1540–1541).
  2. Кластер выбирает рабочий процесс и сообщает клиенту его адрес и порт.
  3. Дальше клиент работает с рабочим процессом напрямую, по порту из диапазона.

Отсюда важная деталь. Кластер возвращает клиенту имя рабочего сервера, под которым тот зарегистрирован в кластере, а не 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.

Второй кластер на той же машине

Две версии платформы на одном сервере (например, рабочая и тестовая) не могут делить одни порты. Принято сдвигать всю тройку на тысячу:

ЭкземплярАгентМенеджерДиапазон
Основной154015411560:1591
Тестовый254025412560:2591
Ещё один354035413560: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. Откройте консоль администрирования серверов 1С.
  2. Раскройте Кластеры → <ваш кластер> → Рабочие серверы.
  3. Откройте свойства рабочего сервера.
  4. Найдите поле с диапазонами IP-портов. Можно указать несколько диапазонов через запятую, например 1560:1591, 1600:1650.

Диапазон относится к рабочему серверу, а не к кластеру целиком. Если в кластере два сервера, у каждого свой диапазон, и на каждом его нужно открыть в фаерволе.

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

Порты, которые ставят рядом с сервером 1С

КомпонентПортКогда нужен
Сервер администрирования ras1545Консоль через rac, сторонние консоли и мониторинг
Сервер хранилища crserver1542Групповая разработка в хранилище по TCP
Сервер отладки dbgs1550Отладка по протоколу HTTP
MS SQL Server1433Только между сервером 1С и сервером СУБД
PostgreSQL5432Только между сервером 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 и диапазон рабочих процессов.

Отсюда два набора правил:

  1. На веб-сервере открыть входящие 80 и 443 для пользователей.
  2. На сервере 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С
Выполнено: 0 / 6

Как проверить, что порты 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.
Нужно ли открывать порт MS SQL или PostgreSQL для пользователей?
Нет. С СУБД работают только рабочие процессы сервера 1С. Пользователям достаточно портов кластера.
Какие порты нужны файловой базе?
Только доступ к общей папке по SMB, TCP 445. Порты 1540–1591 используются лишь в клиент-серверном режиме.
Безопасно ли пробросить порты 1С в интернет?
Не рекомендуется. Для удалённой работы используйте VPN или публикацию базы на веб-сервере по HTTPS.