Сетевые порты 1С:Предприятия: что открыть на фаерволе и что держать закрытым

· 9 мин

Содержание

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

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

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

Порядок подключения тонкого или толстого клиента к клиент-серверной базе:

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

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

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

Файловая база работает иначе. Своих портов у неё нет: клиент читает файл 1Cv8.1CD по сетевой папке, то есть через SMB (TCP 445). Открывать 1540 и диапазон для файлового варианта бессмысленно.

Порты сервера 1С по умолчанию и как их поменять

Сводная таблица того, что слушает сервер 1С:Предприятия 8.3 в стандартной установке:

КомпонентПроцессПорт по умолчаниюКто подключается
Агент сервераragentTCP 1540клиенты, консоль администрирования
Менеджер кластераrmngrTCP 1541клиенты, другие серверы кластера
Рабочие процессыrphostTCP 1560–1591клиенты
Сервер администрированияrasTCP 1545утилита rac, сторонние консоли
Сервер отладкиdbgsTCP 1550Конфигуратор, EDT при отладке по HTTP
Сетевой ключ HASPменеджер лицензийTCP/UDP 475клиенты с аппаратной лицензией

Порты агента, менеджера и диапазон задаются ключами командной строки службы агента. Типовая строка запуска службы выглядит так:

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

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

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

Две разные версии платформы на одном сервере не должны делить порты. Принято сдвигать всю группу на тысячу:

  • 🅰️ первый экземпляр: 1540, 1541, 1560:1591;
  • 🅱️ второй экземпляр: 2540, 2541, 2560:2591, отдельный каталог -d.

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

Диапазон рабочих процессов

Диапазон для конкретного рабочего сервера задают в консоли администрирования: Кластер → Рабочие серверы → свойства сервера → Диапазоны IP портов. Там же можно добавить второй диапазон, если стандартных 32 портов не хватает: например, при нескольких рабочих процессах и включённых сервисах кластера.

Смена портов в строке службы требует перезапуска службы агента. Все сеансы пользователей при этом оборвутся — делайте это вне рабочего времени и после предупреждения пользователей.

Порты сервера баз данных

Сервер 1С работает с СУБД по её собственному протоколу. Порт открывают только на направлении «сервер 1С → сервер СУБД».

СУБДПорт по умолчаниюГде меняется
Microsoft SQL ServerTCP 1433 (экземпляр по умолчанию)SQL Server Configuration Manager → протокол TCP/IP
Служба SQL Server BrowserUDP 1434нужна только для именованных экземпляров
PostgreSQL (в том числе сборки для 1С)TCP 5432postgresql.conf, параметр port
Oracle DatabaseTCP 1521настройки listener
IBM Db2TCP 50000конфигурация экземпляра

Особый случай — именованный экземпляр MS SQL (SQLSRV\BUH). Он по умолчанию получает динамический порт, и клиент узнаёт его через SQL Server Browser по UDP 1434. Для сервера за фаерволом удобнее закрепить статический порт в свойствах TCP/IP экземпляра. Тогда в поле «Сервер баз данных» карточки информационной базы пишут адрес с портом через запятую: SQLSRV,1450.

Для PostgreSQL одного порта мало. Сервер должен ещё и принимать подключения с адреса сервера 1С:

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

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

Кластер из нескольких рабочих серверов

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

  • 🔗 между серверами кластера открывают 1540, 1541 и диапазоны рабочих процессов каждого сервера;
  • 📋 у каждого рабочего сервера свой диапазон в свойствах, они могут совпадать или различаться;
  • 👥 клиенты должны дотягиваться до диапазона любого сервера, на котором им могут выделить рабочий процесс.

Типичная ошибка при добавлении второго сервера — открыть порты только на первом. Тогда часть пользователей входит нормально, а часть получает ошибку сетевого доступа: им достался рабочий процесс на новой машине, до которой фаервол не пускает. Проверку Test-NetConnection делайте отдельно на каждый сервер кластера.

Порты для веб-клиента, публикации и удалённой работы

Публикация базы на веб-сервере (Apache или IIS) переводит пользователей на HTTP. Снаружи остаются открыты только порты веб-сервера:

  • 🌐 80 — HTTP, допустим внутри офисной сети или для перенаправления на HTTPS;
  • 🔒 443 — HTTPS, единственный разумный вариант для доступа из интернета.

Модуль веб-расширения на веб-сервере сам подключается к кластеру 1С. Если веб-сервер стоит на отдельной машине, между ним и сервером 1С должны быть открыты те же 1540, 1541 и диапазон рабочих процессов. Пользователь эти порты уже не видит.

Через тот же публикатор работают HTTP- и веб-сервисы конфигурации, мобильный клиент и подключение тонкого клиента по адресу https://…/имя_публикации. Отдельные порты под каждую службу не нужны.

Сравнение вариантов удалённого доступа:

СпособЧто открыть снаружиКогда подходитРиски
Публикация на веб-сервере443филиалы, удалённые сотрудникинужны сертификат и обновления веб-сервера
VPN до офисапорт VPN-шлюзаполный доступ к сети и печатинастройка клиентов VPN
Удалённый рабочий стол / RemoteApp3389 или шлюз RD на 443тяжёлые отчёты, старые обработкиRDP наружу без шлюза постоянно атакуют
Прямой проброс 1540–1591диапазон портов серверане рекомендуетсяоткрытый кластер в интернете

Как проверить, что порты открыты и слушаются

Проверку делают с двух сторон: на сервере (слушает ли процесс порт) и с клиента (доходит ли соединение).

На сервере Windows

Посмотреть, какие процессы держат порты 1С:

netstat -ano | findstr ":1540 :1541 :156"
tasklist /fi "imagename eq rphost.exe"

Последний столбец netstat — идентификатор процесса. Сверьте его с выводом tasklist: так видно, не занял ли нужный порт посторонний процесс.

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

В PowerShell:

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

Строка TcpTestSucceeded : True значит, что соединение проходит. Проверяйте не только 1540 и 1541, но и несколько портов из диапазона. Рабочий процесс должен быть запущен, иначе порт из диапазона никто не слушает и тест покажет False даже при открытом фаерволе.

На сервере Linux

ss -tlnp | grep -E 'ragent|rmngr|rphost'
nc -zv srv1c 1541
Диагностика: выберите симптом

Правила фаервола и защита сервера 1С

Минимальное правило для Windows Firewall на сервере 1С, разрешающее входящие подключения только из локальной подсети:

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

Для Linux с firewalld:

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

С ufw аналог — ufw allow from 192.168.10.0/24 to any port 1540:1591 proto tcp. Подсеть подставьте свою.

Порт СУБД открывайте точечно, только для IP сервера 1С:

netsh advfirewall firewall add rule name="MSSQL from 1C" dir=in action=allow protocol=TCP localport=1433 remoteip=192.168.10.5

Что ещё закрыть и настроить:

  • 🚫 Не пробрасывайте 1540–1591, 1433 и 5432 в интернет. Протоколы кластера и СУБД не предназначены для открытой сети.
  • 👤 Задайте администратора кластера в консоли. Без него любой, кто дотянулся до 1540, может управлять кластером и сеансами.
  • 🗝️ Включите аутентификацию в информационных базах: администратор базы и пароли пользователей, а не пустой список.
  • 🧱 Порт ras (1545) открывайте только для машин, с которых реально администрируют кластер.
  • 🔁 Сервер отладки и режим отладки на рабочем сервере держите выключенными, если сейчас никто не отлаживает.
  • 📜 Для веб-публикации используйте HTTPS с действующим сертификатом и не публикуйте базы с правами администратора у анонимного пользователя.
Перед вводом сервера 1С в работу
Выполнено: 0 / 6

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

Нужно ли открывать порты 1С для файловой базы?
Нет. Файловая база открывается через общую папку, то есть по SMB (TCP 445). Порты 1540–1591 используются только сервером 1С:Предприятия.
Можно ли сузить диапазон 1560–1591?
Можно, но в диапазоне должно хватать портов на все рабочие процессы и сервисы кластера. При нехватке процессы не стартуют. Сужать имеет смысл только с запасом.
Через какой порт работает утилита rac?
rac подключается к серверу администрирования ras, по умолчанию на 1545. Пример: rac srv1c:1545 cluster list. Сам ras при этом обращается к агенту на 1540.
Какой порт нужен для программной лицензии?
Отдельного порта нет. Программные лицензии получает сервер или клиент в рамках обычного соединения. Порт 475 нужен только сетевому аппаратному ключу HASP.
Что делать, если порт 1540 уже занят?
Найдите процесс через netstat -ano и tasklist. Если это старая служба агента другой версии, остановите её в нерабочее время или переведите второй экземпляр на 2540/2541.