Брандмауэр и сервер 1С:Предприятия 8.3: порты кластера, рабочих процессов и СУБД

· 9 мин

Содержание

Для работы клиентов с сервером 1С:Предприятия 8.3 на сервере открывают входящие TCP-порты 1540 (агент), 1541 (менеджер кластера) и диапазон 1560–1591 (рабочие процессы). Если база на MS SQL или PostgreSQL на другой машине, между сервером 1С и СУБД нужен ещё 1433 или 5432. Клиентским компьютерам порт СУБД не нужен.

Частая ошибка — открыть только 1541 и удивляться, что подключение то проходит, то обрывается. Клиент сначала стучится в кластер, а потом ему выдают адрес конкретного рабочего процесса. Если диапазон закрыт, база не откроется, даже когда telnet на 1541 отвечает.

Как клиент 1С добирается до базы на сервере

Соединение в клиент-серверном варианте идёт в несколько шагов. Понимать их нужно, чтобы не открывать лишнего и не забыть нужное.

  1. Клиент (толстый, тонкий или Конфигуратор) обращается к агенту сервера ragent на порт 1540.
  2. Агент направляет его к менеджеру кластера rmngr на порт 1541. Строка подключения Srvr="srv1c";Ref="buh"; по умолчанию ведёт именно на 1541.
  3. Менеджер выбирает рабочий процесс rphost и сообщает клиенту его адрес и порт из диапазона.
  4. Дальше клиент работает напрямую с рабочим процессом. Он же ходит в СУБД — клиент к SQL не подключается.

Отсюда два практических вывода:

  • 🔌 Все три группы портов должны быть открыты от клиентов к серверу 1С.
  • 🗄️ Порт СУБД открывают только от сервера 1С к серверу СУБД. Если они на одной машине, внешнее правило для SQL не нужно вовсе.

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

Порты агента, менеджера кластера и служебных компонентов

Ниже — значения по умолчанию для одного кластера на сервере.

ПортПротоколКто слушаетЗачемОткуда входящие
1540TCPragent — агент сервераПервое обращение клиентов, консоль кластераКлиенты, админы
1541TCPrmngr — менеджер кластераРегистрация баз, выдача рабочих процессовКлиенты
1560–1591TCPrphost, сервисы кластераОсновная работа сеансовКлиенты
1545TCPras — сервер администрированияУтилита rac, сторонние консолиТолько админы
1550TCPdbgs — сервер отладкиОтладка по HTTP из Конфигуратора и EDTТолько разработчики
475TCP и UDPHASP License ManagerСетевой аппаратный ключКлиенты (если ключ сетевой)
80 / 443TCPIIS или ApacheВеб-клиент, HTTP-сервисы, мобильные клиентыПользователи через браузер

Пояснения по строкам:

  • 1545 нужен, только если вы запускаете ras (обычно для rac или консолей под Linux). Стандартная оснастка администрирования серверов на Windows подключается к агенту через 1540.
  • 1550 открывать в рабочем контуре незачем. Отладку по HTTP включают на тестовом сервере и только для своей сети.
  • 475 нужен лишь для аппаратных сетевых ключей. Программные лицензии лежат на самом сервере и отдельного порта не требуют.
  • 80/443 нужны, если пользователи работают через веб-публикацию. Тогда наружу торчит только веб-сервер, а 1540–1591 можно не открывать для внешней сети вовсе.

Если на одном сервере работают два кластера (например, разные версии платформы), второму назначают смещённые порты, обычно 2540, 2541 и диапазон 2560:2591. Подключение ко второму кластеру — Srvr="srv1c:2541".

Порты агента задаются в параметрах запуска службы. На Windows это видно в свойствах службы «Агент сервера 1С:Предприятия 8.3», поле «Исполняемый файл»:

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

Здесь -port — порт агента, -regport — порт менеджера кластера, -range — диапазон для процессов. Номер версии в пути у вас будет свой.

Диапазон портов для рабочих процессов rphost

Диапазон из параметра -range — это только стартовое значение. Рабочий диапазон хранится в настройках рабочего сервера и меняется в консоли:

  1. Откройте «Администрирование серверов 1С Предприятия».
  2. Раскройте кластер → «Рабочие серверы».
  3. Откройте свойства нужного рабочего сервера.
  4. Найдите поле «Диапазоны IP портов» и задайте нужный, например 1560:1591.

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

Сколько портов нужно:

  • 📦 Каждый рабочий процесс занимает порт из диапазона. Сервисы менеджера кластера тоже берут порты оттуда.
  • 📈 Стандартных 32 портов хватает типовой установке на десятки пользователей с несколькими процессами.
  • ⚠️ Если процессов много (высокая нагрузка, настроено ограничение числа баз или соединений на процесс), диапазон расширяют. Иначе новым процессам не хватит портов, и они не стартуют.

Сужать диапазон до 2–3 портов «ради безопасности» нельзя: сервер упрётся в лимит, а ошибки будут выглядеть как случайные обрывы.

Изменение диапазона у работающего сервера применяется к новым процессам. Чтобы перевести всё сразу, службу агента перезапускают. При перезапуске оборвутся все сеансы — делайте это вне рабочего времени и предупредите пользователей.

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

Сервер 1С сам ходит в СУБД. Правило нужно на сервере СУБД, источник — IP сервера 1С.

СУБДПорт по умолчаниюПротоколПримечание
MS SQL Server, экземпляр по умолчанию1433TCPОсновной порт
MS SQL Server, именованный экземплярдинамический + 1434TCP + UDP1434/UDP — служба SQL Browser
PostgreSQL5432TCPПлюс разрешение в pg_hba.conf

Для именованного экземпляра MS SQL порт по умолчанию выбирается динамически и может меняться после перезапуска. Надёжнее зафиксировать его: в SQL Server Configuration Manager откройте протокол TCP/IP экземпляра, на вкладке IP-адресов очистите «Динамические порты» и укажите статический TCP-порт. Тогда в брандмауэре достаточно одного правила.

Для PostgreSQL открыть порт мало. Ещё нужно:

  • в postgresql.conf параметр listen_addresses должен включать адрес сетевого интерфейса, а не только localhost;
  • в pg_hba.conf добавить строку, разрешающую подключение с адреса сервера 1С;
  • перечитать конфигурацию или перезапустить службу PostgreSQL.

Пример строки для pg_hba.conf:

host    all    postgres    192.168.10.15/32    md5

Где 192.168.10.15 — адрес сервера 1С. Метод аутентификации выбирайте тот, что принят у вас (md5 или scram-sha-256).

Правила брандмауэра на Windows и Linux

Windows Server

Правила удобно добавить из командной строки, запущенной от администратора:

netsh advfirewall firewall add rule name="1C Server agent and manager" dir=in action=allow protocol=TCP localport=1540-1541
netsh advfirewall firewall add rule name="1C Server rphost range" dir=in action=allow protocol=TCP localport=1560-1591

Если нужен RAS, добавьте отдельное правило на 1545 и ограничьте его адресами админов через параметр remoteip=. Для сервера MS SQL:

netsh advfirewall firewall add rule name="MS SQL for 1C" dir=in action=allow protocol=TCP localport=1433 remoteip=192.168.10.15

То же можно сделать в оснастке «Брандмауэр Защитника Windows в режиме повышенной безопасности»: «Правила для входящих подключений» → «Создать правило» → «Для порта».

Linux

Для дистрибутивов с firewalld:

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

Для Ubuntu и Debian с ufw:

sudo ufw allow 1540:1541/tcp
sudo ufw allow 1560:1591/tcp
sudo ufw allow from 192.168.10.15 to any port 5432 proto tcp

Последняя строка — для сервера PostgreSQL: пускаем на 5432 только сервер 1С.

Если между клиентами и сервером стоит аппаратный межсетевой экран или маршрутизатор филиала, те же порты нужно разрешить и там. Локальный брандмауэр на сервере — только половина пути.

Распределённые базы и обмены: что открывать

РИБ и обмены через планы обмена не требуют отдельного «порта 1С». Транспорт определяется тем, как настроен обмен:

Способ обменаЧто открыть
Через общий сетевой каталог445/TCP (SMB) к файловому серверу
Через FTP21/TCP и пассивный диапазон портов FTP-сервера
Через электронную почтуПорты почтового сервера: SMTP 465 или 587, IMAP 993 или POP3 995
Через интернет (веб-сервис)443/TCP (или 80) к веб-публикации главного узла
Прямое подключение к базе на сервере 1С1540, 1541 и диапазон процессов

Практика для филиалов:

  • 🌐 Узлы в удалённых офисах лучше подключать через веб-публикацию по HTTPS. Наружу смотрит один порт 443, а сервер 1С остаётся во внутренней сети.
  • 🚫 Пробрасывать 1540–1591 в интернет без VPN не стоит. Протокол сервера 1С не рассчитан на открытую сеть.
  • 🔁 Если узлы обмениваются по расписанию из рабочего процесса сервера, исходящие соединения идут от сервера 1С. Проверьте, что исходящий трафик к FTP, почте или веб-сервису не режется.

Проверка доступности портов сервера 1С

Сначала убедитесь, что службы вообще слушают порты. На сервере Windows:

netstat -ano | findstr ":154"
netstat -ano | findstr ":156"

На Linux:

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

Потом проверьте путь с клиентского компьютера. В PowerShell:

Test-NetConnection srv1c -Port 1540
Test-NetConnection srv1c -Port 1541
Test-NetConnection srv1c -Port 1560

TcpTestSucceeded : True — порт доступен. На Linux то же даёт nc -zv srv1c 1541.

Учтите: порт из диапазона отвечает, только если на нём сейчас работает процесс. Номер конкретного процесса видно в консоли кластера, в списке рабочих процессов — колонка с портом. Проверяйте именно его.

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

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

  • ❌ Правило создано только для профиля «Домен». Если сетевой адаптер сервера оказался в профиле «Частная» или «Общедоступная», правило не сработает. Проверьте профиль правила и профиль сети.
  • ❌ Открыты порты одной версии, а запущен второй кластер. После установки новой платформы рядом со старой у второй службы другие порты. Сверьте параметры -port, -regport, -range в свойствах каждой службы.
  • ❌ Диапазон в брандмауэре не совпадает с диапазоном в консоли. Поменяли в консоли на 1560:1650, а в правиле осталось 1560-1591. Процессы на «новых» портах для клиентов недоступны.
  • ❌ Порт SQL открыт для всей сети. Пользователям он не нужен. Ограничьте правило адресом сервера 1С.
  • ❌ Антивирус со своим сетевым экраном. Некоторые антивирусы заменяют брандмауэр Windows своим. Правила netsh тогда ничего не дают — настраивайте исключения в консоли антивируса.

Частые вопросы

Нужен ли UDP для сервера 1С?
Сам кластер работает только по TCP. UDP встречается у HASP License Manager (475) и у службы SQL Browser (1434) для именованных экземпляров MS SQL.
Можно ли сменить стандартный порт 1541?
Да, через параметры службы агента: -regport и -port. После смены в строке подключения у пользователей указывают порт явно: Srvr="srv1c:3541".
Нужно ли открывать порты для файловой базы?
Портов сервера 1С файловой базе не нужно. Клиенты обращаются к общей папке по SMB, это 445/TCP на файловом сервере.
Какие порты нужны для работы через тонкий клиент по HTTP?
Только порт веб-сервера: 443 для HTTPS или 80. Веб-сервер с модулем 1С сам ходит к кластеру по 1540–1591 внутри сети.
Достаточно ли открыть порты, чтобы подключаться к серверу из интернета?
Технически да, но так делать небезопасно. Для удалённых пользователей используйте VPN, терминальный доступ или веб-публикацию по HTTPS.