Сетевой экран для кластера 1С 8.3: что пропустить, чтобы клиенты подключались

· 10 мин

Содержание

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

Остальное зависит от сценария. Удалённая утилита rac — порт 1545 сервиса RAS. Веб-клиент и HTTP-сервисы — 80 или 443 на веб-сервере. Хранилище конфигурации по TCP — 1542. Если кластер на нестандартных портах, ориентируйтесь на параметры запуска службы, а не на таблицы из интернета.

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

Понять порядок обращений важно: от него зависит, какой порт «виноват», когда подключение не проходит.

  1. Клиент обращается к агенту сервера (ragent) на порт 1540 и спрашивает, где кластер.
  2. Агент отдаёт адрес менеджера кластера (rmngr), обычно порт 1541.
  3. Менеджер кластера выбирает рабочий процесс (rphost) и сообщает клиенту его порт из диапазона 1560–1591.
  4. Клиент устанавливает прямое соединение с рабочим процессом. Дальше вся работа пользователя идёт через этот порт.
  5. Рабочий процесс сам ходит в СУБД: MS SQL Server, PostgreSQL или другую поддерживаемую.

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

💡 Вторая ловушка — имя сервера. Менеджер кластера сообщает клиенту адрес рабочего процесса по имени компьютера, под которым тот зарегистрирован в кластере. Если клиент это имя не разрешает (другая подсеть, VPN, нет записи в DNS), подключение не пройдёт даже при открытых портах. Лечится записью в DNS или строкой в файле hosts на клиенте.

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

Значения ниже — установка по умолчанию. Их можно поменять при регистрации службы.

ПортПротоколПроцессНазначениеКому открыть
1540TCPragentАгент сервера, точка входа клиентов и консоли администрированияВсем клиентам
1541TCPrmngrГлавный менеджер кластераВсем клиентам
1560–1591TCPrphost, rmngrРабочие процессы и дополнительные менеджерыВсем клиентам
1545TCPrasСервер администрирования для утилиты rac и сторонних консолейТолько администраторам
1542TCPcrserverСервер хранилища конфигурацииРазработчикам
1550TCPdbgsСервер отладки по HTTPРазработчикам, на время отладки
80 / 443TCPвеб-серверВеб-клиент, мобильный клиент, HTTP- и веб-сервисыПользователям веб-доступа

Консоль администрирования серверов 1С (оснастка MMC) подключается к агенту, то есть через тот же порт 1540. Отдельный порт ей не нужен. Утилита rac устроена иначе: она говорит с сервисом RAS, а RAS уже обращается к агенту.

Где посмотреть реальные порты своего сервера

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

"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" -debug
  • -port — порт агента;
  • -regport — порт главного менеджера кластера;
  • -range — диапазон портов рабочего сервера;
  • -debug — разрешение отладки на сервере.

Тот же диапазон виден в консоли администрирования: Кластеры → <кластер> → Рабочие серверы → <сервер> → Свойства, поле с диапазоном IP-портов.

Сколько портов нужно в диапазоне

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

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

Второй экземпляр сервера (например, другой версии платформы) регистрируют на других портах. Принятая практика — сдвиг на тысячу: 2540, 2541, диапазон 2560–2591. Для клиента имя сервера тогда пишут с портом: srv1c:2541. Правила в сетевом экране для второго кластера нужны отдельные.

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

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

СУБДПорт по умолчаниюПротоколЗамечание
MS SQL Server, экземпляр по умолчанию1433TCPЗадаётся в SQL Server Configuration Manager
MS SQL Server, именованный экземплярдинамический + 1434TCP + UDPUDP 1434 — служба SQL Server Browser
PostgreSQL5432TCPПараметр port в postgresql.conf

MS SQL: зафиксируйте порт именованного экземпляра

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

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

После этого в правиле достаточно одного TCP-порта. Службу SQL Server Browser и UDP 1434 можно не открывать, если в строке сервера базы в 1С указать порт явно: sqlsrv\INST,1450 или sqlsrv,1450.

PostgreSQL: порт и доступ с сервера 1С

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

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

Без записи в pg_hba.conf соединение отбивается самой СУБД, и сетевой экран тут ни при чём.

Правила брандмауэра Windows Server для 1С

Правила создают на компьютере с сервером 1С, для входящих подключений. Исходящие в Windows по умолчанию разрешены.

Через PowerShell

Запустите PowerShell от имени администратора:

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

Сервис RAS открывайте отдельным правилом и только для подсети администраторов:

New-NetFirewallRule -DisplayName "1C RAS" -Direction Inbound -Protocol TCP -LocalPort 1545 -RemoteAddress 10.0.10.0/24 -Action Allow

Через netsh

Тот же результат на любой Windows Server, в том числе из bat-файла:

netsh advfirewall firewall add rule name="1C Server 8.3" dir=in action=allow protocol=TCP localport=1540-1541,1560-1591

Через оснастку

  1. Откройте «Брандмауэр Защитника Windows в режиме повышенной безопасности» (wf.msc).
  2. Выберите «Правила для входящих подключений» → «Создать правило».
  3. Тип правила — «Для порта», протокол TCP, конкретные порты: 1540-1541, 1560-1591.
  4. Действие — разрешить подключение.
  5. Профили — отметьте тот, в котором работает сетевой адаптер сервера (чаще всего «Доменный»).
  6. Задайте понятное имя, например «1С Сервер 8.3».

Правило на неверный профиль — частая причина «порты открыты, а не пускает». Проверьте, в каком профиле адаптер: Get-NetConnectionProfile.

На сервере СУБД (если он отдельный) создайте правило на 1433 или 5432 и в области действия укажите удалённым адресом только IP сервера 1С.

Сетевой экран в Linux: firewalld, iptables, ufw

Сервер 1С на Linux использует те же порты. Команды выполняются от root.

firewalld (RHEL, РЕД ОС, Альт, Astra в некоторых сборках)

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

Чтобы пустить RAS только с одной подсети, удобнее rich-rule:

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.10.0/24" port port="1545" protocol="tcp" accept'
firewall-cmd --reload

iptables

iptables -A INPUT -p tcp -m multiport --dports 1540,1541,1560:1591 -j ACCEPT
iptables -A INPUT -p tcp -s 10.0.10.0/24 --dport 1545 -j ACCEPT

Правила iptables без сохранения пропадут после перезагрузки. Сохраните их способом своего дистрибутива: пакет iptables-persistent в Debian и Ubuntu или iptables-save в файл, который читается при старте.

ufw (Ubuntu, Debian)

ufw allow 1540:1541/tcp
ufw allow 1560:1591/tcp
ufw allow from 10.0.10.0/24 to any port 1545 proto tcp
ufw status

PostgreSQL на одном сервере с 1С слушает локальный адрес — для него в сетевом экране ничего добавлять не нужно. Если СУБД вынесена отдельно, на её машине разрешите 5432 только с адреса сервера 1С: ufw allow from 10.0.0.5 to any port 5432 proto tcp.

Проверка подключения и поиск закрытого порта

Идите по цепочке из первого раздела: агент → менеджер → рабочий процесс → СУБД.

Шаг 1. Слушает ли сервер нужные порты

На самом сервере:

  • Windows: netstat -ano | findstr ":154" — должны быть строки LISTENING на 1540 и 1541; номер процесса сверьте в диспетчере задач;
  • Linux: ss -tlnp | grep -E "ragent|rmngr|rphost".

Если 1540 никто не слушает — служба агента не запущена или работает на другом порту. Сетевой экран тут ни при чём.

Шаг 2. Доходит ли клиент до сервера

С компьютера пользователя:

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

TcpTestSucceeded : True значит, порт доступен. Порт из диапазона проверяйте тот, который реально слушает rphost на сервере: свободные порты диапазона закрыты, потому что их никто не занял.

На Linux-клиенте то же делает nc -zv srv1c 1540.

Шаг 3. Совпадает ли имя сервера

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

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

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

Сводная таблица: что открыть в разных схемах

СхемаНа сервере 1СНа сервере СУБДНа веб-сервере
1С и СУБД на одной машине, клиенты в локальной сети1540, 1541, 1560–1591——
СУБД на отдельной машине1540, 1541, 1560–15911433 или 5432 только с IP сервера 1С—
Плюс удалённое администрирование через rac+ 1545 с подсети админов——
Веб-клиент через IIS или Apache1540, 1541, 1560–1591 с адреса веб-серверакак выше80 и/или 443 для пользователей
Пользователи через RDP-ферму1540, 1541, 1560–1591 с адресов терминальных серверовкак выше—
Кластер из нескольких рабочих серверовпорты всех кластеров между серверами в обе стороныс IP каждого рабочего сервера—
Хранилище конфигурации на сервере+ 1542 для разработчиков——

Не публикуйте порты 1540–1591 в интернет напрямую. Для удалённых сотрудников используйте VPN, RDP-шлюз или веб-публикацию по HTTPS. Протокол клиента 1С не рассчитан на открытый доступ из сети.

Перед вводом сервера 1С в работу
Выполнено: 0 / 6

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

Нужно ли открывать порты на компьютерах пользователей?
Нет. Клиент сам устанавливает исходящие соединения, а исходящий трафик в Windows по умолчанию разрешён. Правила нужны на сервере 1С и, если он отдельный, на сервере СУБД.
Работает ли 1С по UDP?
Сервер 1С использует TCP. UDP может понадобиться только для службы SQL Server Browser (1434) или для старого менеджера лицензий HASP.
Какой порт нужен для сетевого ключа HASP?
Менеджер лицензий HASP LM работает на порту 475 (TCP и UDP). Если ключ стоит на сервере, а защищённые клиенты подключаются к нему по сети, откройте этот порт на машине с ключом.
Можно ли сузить диапазон 1560–1591 до нескольких портов?
Можно, но портов должно хватать на все рабочие процессы и их перезапуск. При нехватке сервер не сможет запустить новый процесс, и пользователи получат ошибки подключения.
Как подключиться к кластеру на нестандартном порту?
Укажите в имени сервера порт менеджера кластера через двоеточие, например srv1c:2541, а в строке подключения базы — Srvr="srv1c:2541";Ref="buh";.