Какие порты открыть для кластера 1С, СУБД и клиентов: схема, команды для Windows и Linux

· 10 мин

Содержание

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

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

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

Подключение идёт не по одному порту, а цепочкой. Если хотя бы одно звено закрыто, клиент не войдёт в базу.

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

Отсюда главный вывод: открыть только 1540 и 1541 недостаточно — первые два шага пройдут, а на третьем клиент упрётся в закрытый порт рабочего процесса.

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

Что меняется для разных клиентов

  • 🖥️ Толстый и тонкий клиент в клиент-серверном режиме — 1540, 1541, 1560–1591 до сервера 1С.
  • 🌐 Тонкий клиент или браузер через веб-публикацию — только 80 или 443 до веб-сервера. Сам веб-сервер (IIS или Apache) ходит к кластеру по тем же 1540/1541/1560–1591.
  • 📁 Файловая база в общей папке — порты сервера 1С не нужны совсем, работа идёт по SMB (TCP 445).

Таблица портов сервера 1С:Предприятие 8.3

Значения ниже — по умолчанию, при установке без изменения параметров. Все порты TCP, кроме отмеченных.

ПортКомпонентКто подключаетсяОбязателен
1540Агент сервера ragentКлиенты, консоль, другие серверы кластераДа
1541Главный менеджер кластера rmngrКлиенты, рабочие процессыДа
1560–1591Рабочие процессы rphost, дополнительные менеджерыКлиенты, другие серверы кластераДа
1545Сервер администрирования rasУтилита rac, внешние консолиЕсли используете rac
1542Сервер хранилища конфигураций crserverКонфигураторы разработчиковЕсли хранилище по TCP
1550Сервер отладки dbgsКонфигуратор, EDTТолько при отладке
475 TCP/UDPМенеджер лицензий HASP (hasplm)Клиенты с аппаратными ключамиЕсли сетевой USB-ключ
80 / 443Веб-сервер с публикацией базыБраузер, тонкий клиент по HTTPЕсли есть веб-доступ
1433MS SQL ServerТолько сервер 1СДа, при MS SQL
1434 UDPSQL Server BrowserТолько сервер 1СЕсли именованный экземпляр без фиксированного порта
5432PostgreSQLТолько сервер 1СДа, при PostgreSQL
1521Oracle Database (листенер)Только сервер 1СДа, при Oracle

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

Постоянные порты и диапазон рабочих процессов: где их поменять

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

"C:\Program Files\1cv8\8.3.xx.xxxx\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
  • -port — порт агента;
  • -regport — порт главного менеджера кластера;
  • -range — диапазон портов для рабочих процессов;
  • -d — каталог служебных файлов кластера srvinfo.

Второй экземпляр сервера на той же машине

Когда на одном компьютере живут две версии платформы (например, рабочая и тестовая), второй экземпляр поднимают со смещёнными портами. Общепринятая схема — сдвиг на тысячу: 2540, 2541, 2560:2591. Главное — диапазоны не должны пересекаться, а у каждого экземпляра должен быть свой каталог srvinfo.

Клиент при этом указывает порт явно: в списке баз, в поле кластера, пишут srv1c:2541. Без номера клиент постучится на 1541 и попадёт в другой экземпляр.

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

Диапазон из -range действует при первом запуске. Дальше им управляют в консоли администрирования: Кластеры → <кластер> → Рабочие серверы → <сервер> → Свойства, поле «Диапазоны IP портов». Там же — параметры отказоустойчивости и требования назначения функциональности.

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

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

Порты СУБД: MS SQL, PostgreSQL, Oracle

Связь «сервер 1С — СУБД» проще всего держать внутри одной машины или одной серверной сети. Тогда порт СУБД открывают только для IP сервера 1С, а для остальных он закрыт.

Microsoft SQL Server

Экземпляр по умолчанию слушает TCP 1433. Именованный экземпляр (SRV\SQL2019) по умолчанию получает динамический порт, а клиент узнаёт его через службу SQL Server Browser на UDP 1434. Для фаервола это неудобно: порт может меняться после перезапуска.

Как закрепить порт за именованным экземпляром:

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

После этого в настройках базы 1С можно указывать сервер как SRV,14330 — через запятую, без участия SQL Server Browser.

PostgreSQL

Порт по умолчанию — 5432, он задаётся в postgresql.conf параметром port. Чтобы сервер вообще принимал внешние подключения, там же правят listen_addresses:

listen_addresses = '*'
port = 5432

Затем в pg_hba.conf разрешают доступ только серверу 1С:

host    all    all    10.0.0.15/32    scram-sha-256

Метод аутентификации (scram-sha-256 или md5) должен совпадать с тем, как задан пароль пользователя. После правки перезапустите службу PostgreSQL. Если СУБД стоит на той же машине, что и сервер 1С, наружу порт открывать не нужно вовсе.

Oracle и IBM Db2

У Oracle листенер по умолчанию слушает 1521, у IBM Db2 порт задаётся при создании экземпляра. Логика та же: открыть порт только для сервера 1С.

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

Правила создают на машине, где работает сервер 1С, во входящем направлении. Быстрее всего — одной командой из командной строки, запущенной от имени администратора.

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

То же самое в PowerShell:

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

Если удобнее мышью:

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

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

Клиентским компьютерам входящие правила для 1С не нужны: клиент сам инициирует соединение. Исключение — сторонний фаервол или антивирус с контролем исходящего трафика. Тогда разрешите исходящие подключения для 1cv8.exe, 1cv8c.exe и 1cv8s.exe.

Настройка firewalld, ufw и iptables на Linux

На Linux состав портов тот же. Команды зависят от того, какой фаервол стоит в дистрибутиве.

firewalld (РЕД ОС, Astra Linux с firewalld, CentOS, RHEL-подобные)

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

Без --permanent правило проживёт до перезагрузки. Последняя команда показывает, что действительно открыто.

ufw (Ubuntu, Debian)

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

iptables

sudo iptables -A INPUT -p tcp --dport 1540:1541 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 1560:1591 -j ACCEPT
sudo iptables -A INPUT -p tcp -s 10.0.0.15 --dport 5432 -j ACCEPT

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

Если на сервере политика по умолчанию DROP, а вы работаете по SSH, сначала добавьте разрешение для порта 22. Иначе, применив правила, вы отрежете себе доступ к машине.

Проверка портов и разбор ошибок подключения

Начинайте с проверки, что порт вообще слушается на сервере, а потом — что он доступен с клиента.

На сервере Windows:

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

В колонке состояния должно быть LISTENING. Номер PID в последней колонке сверьте с процессами ragent.exe, rmngr.exe, rphost.exe в диспетчере задач.

На сервере Linux:

sudo ss -tlnp | grep -E 'ragent|rmngr|rphost'

С клиентского компьютера:

Test-NetConnection srv1c -Port 1541

Строка TcpTestSucceeded : True значит, что порт доступен. Проверьте так же 1540 и один-два порта из диапазона, на которых сейчас слушают рабочие процессы. На Linux вместо этого подойдёт nc -zv srv1c 1541.

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

Ещё один частый случай — сервер 1С за NAT или VPN-шлюзом. Проброс только 1541 наружу не работает : кластер отдаёт клиенту внутреннее имя или адрес рабочего сервера, и клиент снаружи до него не дотянется. Для удалённых сотрудников надёжнее VPN в серверную сеть или веб-публикация по 443 с HTTPS.

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

Нужно ли открывать порт 1433 или 5432 на компьютерах пользователей?
Нет. С СУБД работает только сервер 1С. Клиенты подключаются к кластеру, а данные из базы им отдают рабочие процессы.
Можно ли сузить диапазон 1560–1591?
Можно, но в нём должно хватать портов на все рабочие процессы и дополнительные менеджеры кластера. Слишком узкий диапазон приведёт к тому, что новые процессы не смогут стартовать.
Какой порт нужен для веб-клиента 1С?
Только порт веб-сервера: 80 для HTTP или 443 для HTTPS. Пользователь к портам кластера напрямую не обращается, это делает веб-сервер.
Безопасно ли открыть порты сервера 1С в интернет?
Не стоит. Ограничьте правила локальной сетью или подсетью VPN через поле удалённых адресов. Для доступа извне используйте VPN или веб-публикацию с HTTPS.
Где посмотреть порт сервера хранилища конфигураций?
В параметрах запуска службы crserver: ключ -port, по умолчанию 1542. В Конфигураторе адрес хранилища пишут как tcp://srv1c:1542/имя_хранилища.