Порты сервера 1С:Предприятие 8.3: что открыть в брандмауэре и как проверить

· 9 мин

Содержание

Для работы клиентов с сервером 1С 8.3 открывают входящие TCP-порты 1540 (агент сервера), 1541 (менеджер кластера) и диапазон 1560–1591 (рабочие процессы). Это значения по умолчанию, их можно поменять в параметрах службы агента.

Частая ошибка — открыть только 1540 и удивляться, что клиент видит кластер, но база не открывается. Агент лишь отвечает, куда идти дальше, а сам сеанс работает через рабочий процесс из диапазона. Если диапазон закрыт, подключение обрывается по таймауту. Ниже полный список портов сервера 1С, СУБД, лицензирования и служебных компонентов, а также команды для настройки и проверки.

Как клиент подключается к серверу 1С

Чтобы понимать, какие порты нужны, полезно знать порядок соединений. Клиент в строке подключения указывает имя сервера и базы, например Srvr="srv1c";Ref="buh";.

Дальше происходит следующее:

  1. Клиент обращается к агенту сервера (ragent) на порт 1540.
  2. Агент направляет его к менеджеру кластера (rmngr) на порт 1541.
  3. Менеджер кластера выделяет рабочий процесс (rphost), и клиент соединяется с ним напрямую по одному из портов диапазона.
  4. Рабочий процесс сам ходит в СУБД — клиенту доступ к SQL не нужен.

Отсюда практический вывод: брандмауэр на сервере 1С должен пропускать все три группы портов от клиентских машин. А порт СУБД нужен только между сервером 1С и сервером базы данных.

Рабочий процесс сообщает клиенту адрес по имени компьютера сервера. Если клиент не может разрешить это имя (нет записи в DNS), подключение не состоится даже при открытых портах. Решение — запись в DNS или строка в C:\Windows\System32\drivers\etc\hosts на клиенте.

Консоль администрирования серверов 1С тоже подключается через агент, по порту 1540.

Список портов сервера 1С:Предприятие 8.3

Сводная таблица значений по умолчанию:

КомпонентПроцессПорт по умолчаниюПротоколКому открывать
Агент сервераragent1540TCPклиентам, консоли
Менеджер кластераrmngr1541TCPклиентам
Рабочие процессы и доп. менеджерыrphost, rmngr1560–1591TCPклиентам
Сервер администрированияras1545TCPтолько администраторам
Сервер хранилища конфигурацииcrserver1542TCPразработчикам
Сервер отладкиdbgs1550TCPразработчикам
Веб-сервер (веб-клиент, HTTP-сервисы)IIS / Apache80, 443TCPпользователям веб-клиента

Диапазон 1560–1591 — это 32 порта. Каждый рабочий процесс занимает порт из диапазона, ещё порты занимают дополнительные менеджеры кластера, если включён режим нескольких менеджеров. На крупном сервере с большим числом процессов диапазон расширяют, например до 1560:1691.

Где задаются порты кластера

Порты передаются агенту параметрами командной строки службы:

ragent.exe -srvc -agent -port 1540 -regport 1541 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"

Посмотреть текущие значения в Windows: services.msc → служба «Агент сервера 1С:Предприятия 8.3» → свойства → поле «Исполняемый файл». В Linux — в unit-файле службы или в скрипте запуска srv1cv8.

Диапазон рабочих процессов можно также изменить в консоли администрирования: кластер → «Рабочие серверы» → свойства рабочего сервера → поле диапазона IP-портов. Изменение применяется после перезапуска процессов.

Перезапуск службы агента обрывает все сеансы пользователей. Меняйте порты вне рабочего времени и предупредите людей заранее.

Два кластера на одном сервере

Когда на одной машине ставят второй экземпляр сервера (например, другую версию платформы для тестов), ему нужны свои порты. Принято сдвигать всю схему на тысячу:

ЭкземплярАгентМенеджерДиапазон
Основной154015411560–1591
Второй254025412560–2591

В строке подключения к базе второго кластера порт указывают через двоеточие: Srvr="srv1c:2541". Номер берут именно менеджера кластера, а не агента.

Порты СУБД: MS SQL Server и PostgreSQL

Сервер 1С подключается к СУБД от имени рабочих процессов. Если СУБД стоит на той же машине, внешний порт открывать не нужно. Если на отдельной — открывайте порт только для IP-адреса сервера 1С.

СУБДПорт по умолчаниюПротоколПримечание
MS SQL Server, экземпляр по умолчанию1433TCPосновной порт
MS SQL Server Browser1434UDPнужен для именованных экземпляров
PostgreSQL5432TCPзадаётся в postgresql.conf

MS SQL: именованный экземпляр

Именованный экземпляр (например, SQLSRV\SQL2019) по умолчанию получает динамический порт, который меняется после перезапуска. Для брандмауэра это неудобно. Порядок действий:

  1. Откройте SQL Server Configuration Manager.
  2. Перейдите в «Сетевая конфигурация SQL Server» → протоколы вашего экземпляра → TCP/IP.
  3. На вкладке IP-адресов, в блоке IPAll, очистите поле динамических портов и укажите фиксированный порт, например 1435.
  4. Перезапустите службу SQL Server.
  5. Откройте этот порт в брандмауэре для сервера 1С.

После фиксации порта можно указать его в карточке базы в 1С явно: SQLSRV,1435. Тогда SQL Browser и UDP 1434 не нужны.

PostgreSQL: два файла настройки

Открыть порт 5432 мало. PostgreSQL по умолчанию слушает только localhost, поэтому:

  • 🔧 в postgresql.conf задайте listen_addresses — адрес сетевого интерфейса или '*';
  • 🔒 в pg_hba.conf добавьте строку, разрешающую подключение только с IP сервера 1С;
  • 🔄 перезапустите службу PostgreSQL.

Пример строки в pg_hba.conf:

host    all    all    192.168.10.15/32    scram-sha-256

Метод аутентификации (md5 или scram-sha-256) должен совпадать с тем, как задан пароль пользователя. Иначе получите ошибку аутентификации при открытых портах.

Порты лицензирования: HASP-ключи и программные лицензии

Программные лицензии

Программные (электронные) лицензии активируются на сервере 1С и выдаются клиентам через кластер. Отдельного порта для них нет — хватает портов кластера из таблицы выше.

Сетевой HASP-ключ

Если клиентские лицензии на USB-ключе HASP, на машине с ключом работает менеджер лицензий. Клиенты ищут его по сети.

КомпонентПортПротокол
HASP License Manager (hasplm)475UDP и TCP
Sentinel License Manager (hasplms), веб-панель1947TCP и UDP

Поиск ключа по умолчанию идёт широковещательным запросом. В сетях с маршрутизаторами и VPN он не проходит. Тогда на каждом клиенте в файле nethasp.ini (лежит в каталоге conf платформы) указывают адрес явно:

[NH_COMMON]
NH_TCPIP = Enabled

[NH_TCPIP]
NH_SERVER_ADDR = 192.168.10.20
NH_USE_BROADCAST = Disabled

Состояние ключей и подключённых клиентов видно в веб-панели Sentinel: http://localhost:1947 на машине с ключом.

Если ключ воткнут прямо в сервер 1С и лицензии берёт сам кластер (серверный ключ), клиентам порт 475 открывать не нужно — лицензию запрашивает рабочий процесс локально.

Как открыть порты в брандмауэре Windows и Linux

Windows Server

Через PowerShell от имени администратора:

New-NetFirewallRule -DisplayName "1C Server Cluster" -Direction Inbound -Protocol TCP -LocalPort 1540,1541,1560-1591 -Action Allow

Чтобы ограничить доступ только локальной сетью, добавьте параметр -RemoteAddress 192.168.10.0/24. Для RAS создайте отдельное правило с адресами только администраторов.

То же через графику: wf.msc → «Правила для входящих подключений» → «Создать правило» → тип «Для порта» → TCP → перечислите порты через запятую, диапазон через дефис.

Linux (Ubuntu, Debian)

С ufw:

sudo ufw allow proto tcp from 192.168.10.0/24 to any port 1540,1541
sudo ufw allow proto tcp from 192.168.10.0/24 to any port 1560:1591

С firewalld (Astra, РЕД ОС, CentOS):

sudo firewall-cmd --permanent --add-port=1540-1541/tcp
sudo firewall-cmd --permanent --add-port=1560-1591/tcp
sudo firewall-cmd --reload

Сервер администрирования RAS

RAS нужен для удалённого управления кластером через rac и сторонние консоли. Запуск вручную:

ras cluster --port=1545 localhost:1540

Для постоянной работы RAS регистрируют службой. После этого с машины администратора можно проверить доступ: rac cluster list srv1c:1545. Набор остальных команд смотрите в rac help.

Как проверить, что порты открыты

Проверку делайте с двух сторон: на сервере — слушает ли процесс порт, с клиента — доходит ли соединение.

На сервере

Windows:

netstat -ano | findstr ":1540 :1541 :1545"

В последней колонке будет PID процесса. Сверьте его с диспетчером задач: на 1540 должен висеть ragent.exe, на 1541 — rmngr.exe.

Linux:

sudo ss -tlnp | grep -E ':15[4-9][0-9]'

С клиента

PowerShell:

Test-NetConnection srv1c -Port 1541

Строка TcpTestSucceeded : True значит, что порт доступен. Проверьте 1540, 1541 и хотя бы один порт рабочего процесса — его номер видно в netstat на сервере.

В Linux то же делает nc -zv srv1c 1541.

Диагностика: выберите симптом

Безопасность: какие порты не стоит открывать наружу

Сервер 1С не рассчитан на прямую публикацию в интернет. Не пробрасывайте порты 1540, 1541 и диапазон рабочих процессов на внешний адрес роутера. Протокол кластера не шифруется по умолчанию, а администратор кластера часто остаётся без пароля.

Как организовать удалённый доступ безопаснее:

  • 🛡️ VPN до офисной сети — клиент работает как в локальной сети, порты наружу закрыты;
  • 🖥️ терминальный сервер (RDP через шлюз) — пользователь работает на сервере рядом с кластером;
  • 🌐 веб-публикация через веб-сервер с HTTPS на порту 443 — наружу открыт только он, а сам веб-сервер обращается к кластеру внутри сети.

Внутри сети тоже действует принцип минимума:

  • 🔒 порт СУБД — только для IP сервера 1С;
  • 🔒 RAS (1545) — только для машин администраторов;
  • 🔒 сервер хранилища (1542) и отладки (1550) — только для разработчиков;
  • 🔑 задайте администратора кластера с паролем в консоли администрирования, иначе любой, кто дотянулся до 1540, сможет управлять кластером.

Частые ошибки при настройке портов

  • ❌ Открыли порты только на клиенте. Входящие правила нужны на сервере 1С. Исходящие на клиентах обычно разрешены по умолчанию.
  • ❌ Расширили диапазон в консоли, но не в брандмауэре. Новые рабочие процессы получают порты, которые брандмауэр режет. Ошибки появляются «через раз» — когда клиент попадает на новый процесс.
  • ❌ Сменили порт агента, а в строке подключения оставили старый. В Srvr указывается порт менеджера кластера; если он не 1541, его надо прописать явно.
  • ❌ Антивирус со своим сетевым экраном. Правила в брандмауэре Windows есть, но корпоративный антивирус блокирует трафик своими правилами. Проверяйте оба.
  • ❌ Открыли SQL на весь мир. Порт 1433 или 5432 доступен из интернета — это прямой путь к перебору паролей к базе.
Нужно ли открывать порты на компьютерах пользователей?
Нет. Входящие подключения принимает сервер. На клиентах достаточно разрешённых исходящих соединений, а они обычно не ограничены.
Какой порт указывать в строке подключения к базе?
Порт менеджера кластера. Для стандартного 1541 его можно не указывать. Для нестандартного пишут Srvr="srv1c:2541".
Нужен ли файловой базе какой-то порт?
Нет. Файловая база работает через общую сетевую папку, это протокол SMB (TCP 445) — порты кластера 1С тут не участвуют.
Хватит ли диапазона 1560–1591?
Для небольшого сервера с несколькими рабочими процессами хватит. При большом числе процессов или нескольких менеджерах кластера диапазон расширяют, синхронно меняя правило брандмауэра.
Можно ли поменять стандартные порты ради безопасности?
Можно, но это не защита: сканер найдёт порт за минуты. Защищают VPN, ограничение по IP и пароль администратора кластера.