К статье
Практический материал

Администрирование · 11 мин

Какие порты открыть для сервера 1С и PostgreSQL

Какие порты нужно открыть для сервера 1С:Предприятие и PostgreSQL: 1540–1541, 1560–1591, 5432. Настройка firewall, проверка доступности, типичные ошибки.

При развёртывании клиент-серверной архитектуры 1С:Предприятие с СУБД PostgreSQL недоступность портов — самая частая причина ошибок «сервер 1С не обнаружен» и «ошибка соединения с сервером баз данных». Кластер серверов 1С и PostgreSQL используют строго определённые диапазоны портов, и все они должны быть открыты на каждом узле, участвующем в обмене трафиком.

Стандартная схема выглядит так: клиентские приложения (тонкий, толстый клиент, веб-клиент через веб-сервер) подключаются к агенту сервера 1С, агент перенаправляет их на рабочие процессы кластера, а рабочие процессы обращаются к PostgreSQL. Каждое из этих звеньев требует своих портов, и закрытие любого из них разрывает цепочку.

Важно понимать, что правила файрвола настраиваются не только на сервере, но и на промежуточном сетевом оборудовании, если клиенты и серверы находятся в разных сегментах сети. Ниже разобраны все необходимые порты, порядок их открытия в Windows и Linux, методы проверки и типичные ошибки.

Какие порты использует сервер 1С:Предприятие

Кластер серверов 1С при установке по умолчанию занимает три группы портов. Порт 1540 — основной порт агента сервера (srv1cv8), через него клиенты находят кластер. Порт 1541 используется менеджером кластера (rmngr) для внутренней координации и подключения консоли администрирования. Диапазон 1560–1591 выделяется под рабочие процессы (rphost) — именно с ними клиенты работают после первичного подключения.

Частая ошибка — открыть только 1540 и 1541, посчитав диапазон рабочих процессов необязательным. В этом случае клиент проходит этап обнаружения сервера, но зависает или получает ошибку на этапе подключения к информационной базе, потому что rphost недоступен. Открывать нужно весь диапазон целиком.

Если на одном физическом сервере развёрнуто несколько кластеров, второй кластер по умолчанию получает порты со смещением: 1640, 1641, 1660–1691, третий — 1740 и так далее. Проверить фактические порты конкретного кластера можно в консоли администрирования серверов 1С в свойствах кластера.

Порт PostgreSQL и правила его доступа

PostgreSQL по умолчанию слушает порт 5432. Если при установке кластера СУБД был указан другой порт, точное значение смотрите в параметре port файла postgresql.conf. На сервере 1С ничего дополнительно для СУБД открывать не требуется — исходящие соединения обычно не блокируются.

Ключевой принцип безопасности: порт 5432 должен быть доступен только с сервера 1С (и, при необходимости, с рабочей станции администратора БД). Открывать PostgreSQL для всей локальной сети или тем более наружу категорически нельзя — это создаёт прямой вектор атаки на базы данных, включая подбор паролей и эксплуатацию известных уязвимостей СУБД.

Если 1С и PostgreSQL установлены на одном сервере, внешний доступ к 5432 можно не открывать вовсе: достаточно разрешить подключения через localhost в файле pg_hba.conf. Это самый безопасный вариант для небольших развёртываний.

Открытие портов в Windows Server

На Windows Server правила создаются через «Брандмауэр Защитника Windows — Правила для входящих подключений». Удобнее создать два правила: одно для диапазона кластера 1С, второе — для PostgreSQL с ограничением по адресу источника.

Быстрее всего это делается через PowerShell, запущенный от имени администратора:

powershell
New-NetFirewallRule -DisplayName "1C Server Agent" -Direction Inbound -Protocol TCP -LocalPort 1540-1541,1560-1591 -Action Allow
New-NetFirewallRule -DisplayName "PostgreSQL from 1C" -Direction Inbound -Protocol TCP -LocalPort 5432 -RemoteAddress 192.168.0.15 -Action Allow

Во второй команде подставьте реальный IP-адрес сервера 1С вместо 192.168.0.15. Если сервер 1С и СУБД — одна машина, правило для 5432 можно не создавать, а в pg_hba.conf оставить только строки для 127.0.0.1.

Дополнительно проверьте профиль сети: если сетевой адаптер определён как «Общедоступная сеть», правила могут работать иначе, чем ожидается. Для серверных сегментов корректный профиль — «Частная» или «Доменная». Также убедитесь, что служба «Агент сервера 1С:Предприятия» запущена и слушает порты — правила файрвола не помогут, если сам процесс не работает.

Открытие портов в Linux

В дистрибутивах с firewalld (CentOS, RHEL, AlmaLinux, Rocky) порты открываются командами firewall-cmd с последующим сохранением правил. Для PostgreSQL лучше использовать rich-правило с ограничением по источнику.

bash
firewall-cmd --permanent --add-port=1540-1541/tcp --add-port=1560-1591/tcp
firewall-cmd --permanent --new-zone=pg1c
firewall-cmd --permanent --zone=pg1c --add-source=192.168.0.15/32
firewall-cmd --permanent --zone=pg1c --add-port=5432/tcp
firewall-cmd --reload

В системах с ufw (Ubuntu, Debian) синтаксис проще: ufw allow 1540:1541/tcp, ufw allow 1560:1591/tcp и ufw allow from 192.168.0.15 to any port 5432 proto tcp. После добавления правил проверьте статус командой ufw status verbose.

Кроме файрвола, в Linux для PostgreSQL обязательно проверьте параметр listen_addresses в postgresql.conf: если там стоит localhost, СУБД не примет внешние подключения независимо от правил файрвола. Для работы с отдельным сервером 1С укажите адрес интерфейса или *, а фильтрацию доверьте pg_hba.conf и файрволу.

Порядок действий
  1. 1
    Уточните фактические порты кластера в консоли администрирования 1С и порт PostgreSQL в postgresql.conf
  2. 2
    Откройте на сервере 1С порты 1540, 1541 и 1560–1591 для подсети клиентов
  3. 3
    На сервере PostgreSQL откройте порт 5432 только для IP-адреса сервера 1С
  4. 4
    Настройте listen_addresses и pg_hba.conf на приём соединений с сервера 1С
  5. 5
    Перезапустите службы или примените правила файрвола, затем проверьте доступность портов с клиентской машины

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

После настройки каждый порт нужно проверить с той стороны, откуда идёт подключение. С клиентской машины проверяются порты кластера 1С, с сервера 1С — порт PostgreSQL. Универсальный способ в Windows — командлет PowerShell Test-NetConnection:

powershell
Test-NetConnection -ComputerName srv1c -Port 1541
Test-NetConnection -ComputerName srv1c -Port 1560
Test-NetConnection -ComputerName pgsrv -Port 5432

Значение TcpTestSucceeded: True означает, что порт доступен. В Linux используйте nc -zv srv1c 1541 или telnet srv1c 1541. Проверять стоит не только 1541, но и несколько портов из диапазона рабочих процессов — например, 1560 и 1591, чтобы убедиться, что открыт весь диапазон.

На самом сервере убедиться, что процессы слушают нужные порты, помогают команды netstat -ano | findstr 154 в Windows и ss -tlnp | grep -E "154|5432" в Linux. Если процесс не слушает порт, проблема в службе, а не в файрволе.

Контрольные точки

Как проверить результат

Test-NetConnection к порту 1541 с клиента
Норма

TcpTestSucceeded: True

Тревожный признак

False — проверяйте службу агента и правила файрвола

Подключение к нескольким портам 1560–1591
Норма

Доступны и начало, и конец диапазона

Тревожный признак

Открыта только часть диапазона — клиенты будут периодически отваливаться

Доступность 5432 с посторонней машины
Норма

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

Тревожный признак

Порт открыт всей сети — риск компрометации базы

Типичные ошибки и дополнительные сценарии

Наиболее распространённая ошибка — открытие только портов 1540 и 1541 без диапазона рабочих процессов. Вторая по частоте — правила файрвола созданы, но на пути трафика есть ещё аппаратный межсетевой экран или ACL на коммутаторе, о котором забыли. Третья — PostgreSQL слушает только localhost, хотя сервер 1С вынесен на отдельную машину.

Если доступ к 1С организован через веб-сервер (Apache или IIS), клиентам порты кластера открывать не нужно — достаточно 80 или 443 на веб-сервере. Но между веб-сервером и кластером 1С порты 1540–1591 по-прежнему должны быть доступны.

При работе через VPN или между филиалами учитывайте, что провайдерские и корпоративные шлюзы могут фильтровать нестандартные порты. В таких схемах предпочтителен веб-доступ по HTTPS — трафик идёт через стандартный 443 порт, а порты кластера остаются внутри защищённого сегмента.

Типичные ошибки
01
Открыт только порт 1541 без диапазона 1560–1591 — клиент видит сервер, но не может подключиться к базе
02
Порт 5432 открыт для всей сети — база данных становится доступна любому устройству в сегменте
03
Правила созданы в файрволе, но PostgreSQL слушает только localhost — соединения с сервера 1С отклоняются
04
Не учтён аппаратный файрвол или VLAN-ACL между клиентами и сервером — диагностика на сервере ничего не показывает
05
Проверка порта выполнена с самого сервера, а не со стороны клиента — ложный вывод о доступности
Маршрут решения

Как выбрать действие

1С и PostgreSQL на одном сервереНе открывайте 5432 наружу, в pg_hba.conf оставьте только localhost
Клиенты подключаются тонким клиентом по сетиОткройте 1540–1541 и 1560–1591 на сервере 1С для клиентской подсети
Доступ идёт через интернет или филиалыПубликуйте веб-клиент по 443, порты кластера держите закрытыми снаружи
Клиент видит сервер, но не подключается к базеПроверяйте диапазон рабочих процессов 1560–1591 и связку 1С → PostgreSQL

FAQ

Можно ли изменить стандартные порты кластера 1С?

Да, порты задаются при создании кластера и меняются в консоли администрирования серверов 1С в свойствах кластера. После изменения нужно перезапустить службу агента сервера и обновить правила файрвола под новые значения. Учтите, что все клиенты и веб-публикации, где указан нестандартный порт, должны использовать актуальные значения.

Нужно ли открывать порты UDP?

Нет. Сервер 1С:Предприятие и PostgreSQL работают по протоколу TCP. Создавать правила для UDP не требуется, а лишние разрешения только расширяют поверхность атаки.

Клиент пишет «сервер баз данных не обнаружен», порт 5432 открыт — в чём причина?

Проверьте три вещи: параметр listen_addresses в postgresql.conf (должен разрешать внешние подключения), строку для адреса сервера 1С в pg_hba.conf и корректность имени сервера БД в свойствах информационной базы. Также убедитесь, что имя сервера PostgreSQL разрешается DNS с сервера 1С.

Опасно ли открывать диапазон 1560–1591 всей локальной сети?

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

Как проверить, какие порты реально слушает кластер 1С?

В Windows выполните netstat -ano | findstr "154 156" и сопоставьте PID с процессами ragent, rmngr и rphost в диспетчере задач. В Linux — ss -tlnp, где имена процессов видны сразу. Это надёжнее, чем ориентироваться на значения по умолчанию, особенно если на сервере несколько кластеров.

Нужны ли отдельные порты для консоли администрирования 1С?

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

Итог

Что важно запомнить

Серверу 1С нужны порты 1540, 1541 и весь диапазон 1560–1591, PostgreSQL — порт 5432, открытый только для сервера 1С. Проверяйте доступность с той стороны, откуда идёт подключение, и не публикуйте порты СУБД и кластера за пределами защищённого сегмента.