Администрирование · 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, запущенный от имени администратора:
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-правило с ограничением по источнику.
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С и порт PostgreSQL в postgresql.conf
- 2Откройте на сервере 1С порты 1540, 1541 и 1560–1591 для подсети клиентов
- 3На сервере PostgreSQL откройте порт 5432 только для IP-адреса сервера 1С
- 4Настройте listen_addresses и pg_hba.conf на приём соединений с сервера 1С
- 5Перезапустите службы или примените правила файрвола, затем проверьте доступность портов с клиентской машины
Проверка доступности портов
После настройки каждый порт нужно проверить с той стороны, откуда идёт подключение. С клиентской машины проверяются порты кластера 1С, с сервера 1С — порт PostgreSQL. Универсальный способ в Windows — командлет PowerShell Test-NetConnection:
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. Если процесс не слушает порт, проблема в службе, а не в файрволе.
Как проверить результат
TcpTestSucceeded: True
False — проверяйте службу агента и правила файрвола
Доступны и начало, и конец диапазона
Открыта только часть диапазона — клиенты будут периодически отваливаться
Порт закрыт для всех, кроме сервера 1С
Порт открыт всей сети — риск компрометации базы
Типичные ошибки и дополнительные сценарии
Наиболее распространённая ошибка — открытие только портов 1540 и 1541 без диапазона рабочих процессов. Вторая по частоте — правила файрвола созданы, но на пути трафика есть ещё аппаратный межсетевой экран или ACL на коммутаторе, о котором забыли. Третья — PostgreSQL слушает только localhost, хотя сервер 1С вынесен на отдельную машину.
Если доступ к 1С организован через веб-сервер (Apache или IIS), клиентам порты кластера открывать не нужно — достаточно 80 или 443 на веб-сервере. Но между веб-сервером и кластером 1С порты 1540–1591 по-прежнему должны быть доступны.
При работе через VPN или между филиалами учитывайте, что провайдерские и корпоративные шлюзы могут фильтровать нестандартные порты. В таких схемах предпочтителен веб-доступ по HTTPS — трафик идёт через стандартный 443 порт, а порты кластера остаются внутри защищённого сегмента.
Как выбрать действие
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С. Проверяйте доступность с той стороны, откуда идёт подключение, и не публикуйте порты СУБД и кластера за пределами защищённого сегмента.