Брандмауэр и сервер 1С:Предприятия 8.3: порты кластера, рабочих процессов и СУБД
Содержание
Для работы клиентов с сервером 1С:Предприятия 8.3 на сервере открывают входящие TCP-порты 1540 (агент), 1541 (менеджер кластера) и диапазон 1560–1591 (рабочие процессы). Если база на MS SQL или PostgreSQL на другой машине, между сервером 1С и СУБД нужен ещё 1433 или 5432. Клиентским компьютерам порт СУБД не нужен.
Частая ошибка — открыть только 1541 и удивляться, что подключение то проходит, то обрывается. Клиент сначала стучится в кластер, а потом ему выдают адрес конкретного рабочего процесса. Если диапазон закрыт, база не откроется, даже когда telnet на 1541 отвечает.
Как клиент 1С добирается до базы на сервере
Соединение в клиент-серверном варианте идёт в несколько шагов. Понимать их нужно, чтобы не открывать лишнего и не забыть нужное.
- Клиент (толстый, тонкий или Конфигуратор) обращается к агенту сервера
ragentна порт 1540. - Агент направляет его к менеджеру кластера
rmngrна порт 1541. Строка подключенияSrvr="srv1c";Ref="buh";по умолчанию ведёт именно на 1541. - Менеджер выбирает рабочий процесс
rphostи сообщает клиенту его адрес и порт из диапазона. - Дальше клиент работает напрямую с рабочим процессом. Он же ходит в СУБД — клиент к SQL не подключается.
Отсюда два практических вывода:
- 🔌 Все три группы портов должны быть открыты от клиентов к серверу 1С.
- 🗄️ Порт СУБД открывают только от сервера 1С к серверу СУБД. Если они на одной машине, внешнее правило для SQL не нужно вовсе.
Есть ещё одна деталь, которую часто упускают. Менеджер кластера сообщает клиенту адрес рабочего сервера по имени, указанному в свойствах кластера. Если клиент это имя не разрешает (нет записи в DNS), соединение упадёт, хотя порты открыты. Лечится записью в DNS или строкой в C:\Windows\System32\drivers\etc\hosts на клиенте.
Порты агента, менеджера кластера и служебных компонентов
Ниже — значения по умолчанию для одного кластера на сервере.
| Порт | Протокол | Кто слушает | Зачем | Откуда входящие |
|---|---|---|---|---|
| 1540 | TCP | ragent — агент сервера | Первое обращение клиентов, консоль кластера | Клиенты, админы |
| 1541 | TCP | rmngr — менеджер кластера | Регистрация баз, выдача рабочих процессов | Клиенты |
| 1560–1591 | TCP | rphost, сервисы кластера | Основная работа сеансов | Клиенты |
| 1545 | TCP | ras — сервер администрирования | Утилита rac, сторонние консоли | Только админы |
| 1550 | TCP | dbgs — сервер отладки | Отладка по HTTP из Конфигуратора и EDT | Только разработчики |
| 475 | TCP и UDP | HASP License Manager | Сетевой аппаратный ключ | Клиенты (если ключ сетевой) |
| 80 / 443 | TCP | IIS или Apache | Веб-клиент, HTTP-сервисы, мобильные клиенты | Пользователи через браузер |
Пояснения по строкам:
- 1545 нужен, только если вы запускаете
ras(обычно дляracили консолей под Linux). Стандартная оснастка администрирования серверов на Windows подключается к агенту через 1540. - 1550 открывать в рабочем контуре незачем. Отладку по HTTP включают на тестовом сервере и только для своей сети.
- 475 нужен лишь для аппаратных сетевых ключей. Программные лицензии лежат на самом сервере и отдельного порта не требуют.
- 80/443 нужны, если пользователи работают через веб-публикацию. Тогда наружу торчит только веб-сервер, а 1540–1591 можно не открывать для внешней сети вовсе.
Если на одном сервере работают два кластера (например, разные версии платформы), второму назначают смещённые порты, обычно 2540, 2541 и диапазон 2560:2591. Подключение ко второму кластеру — Srvr="srv1c:2541".
Порты агента задаются в параметрах запуска службы. На Windows это видно в свойствах службы «Агент сервера 1С:Предприятия 8.3», поле «Исполняемый файл»:
"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"
Здесь -port — порт агента, -regport — порт менеджера кластера, -range — диапазон для процессов. Номер версии в пути у вас будет свой.
Диапазон портов для рабочих процессов rphost
Диапазон из параметра -range — это только стартовое значение. Рабочий диапазон хранится в настройках рабочего сервера и меняется в консоли:
- Откройте «Администрирование серверов 1С Предприятия».
- Раскройте кластер → «Рабочие серверы».
- Откройте свойства нужного рабочего сервера.
- Найдите поле «Диапазоны IP портов» и задайте нужный, например
1560:1591.
Диапазон относится к рабочему серверу, а не к кластеру в целом. Если серверов в кластере два и больше, проверяйте поле у каждого — и открывайте в брандмауэре на каждой машине свой диапазон.
Сколько портов нужно:
- 📦 Каждый рабочий процесс занимает порт из диапазона. Сервисы менеджера кластера тоже берут порты оттуда.
- 📈 Стандартных 32 портов хватает типовой установке на десятки пользователей с несколькими процессами.
- ⚠️ Если процессов много (высокая нагрузка, настроено ограничение числа баз или соединений на процесс), диапазон расширяют. Иначе новым процессам не хватит портов, и они не стартуют.
Сужать диапазон до 2–3 портов «ради безопасности» нельзя: сервер упрётся в лимит, а ошибки будут выглядеть как случайные обрывы.
Изменение диапазона у работающего сервера применяется к новым процессам. Чтобы перевести всё сразу, службу агента перезапускают. При перезапуске оборвутся все сеансы — делайте это вне рабочего времени и предупредите пользователей.
Порты СУБД: MS SQL Server и PostgreSQL
Сервер 1С сам ходит в СУБД. Правило нужно на сервере СУБД, источник — IP сервера 1С.
| СУБД | Порт по умолчанию | Протокол | Примечание |
|---|---|---|---|
| MS SQL Server, экземпляр по умолчанию | 1433 | TCP | Основной порт |
| MS SQL Server, именованный экземпляр | динамический + 1434 | TCP + UDP | 1434/UDP — служба SQL Browser |
| PostgreSQL | 5432 | TCP | Плюс разрешение в pg_hba.conf |
Для именованного экземпляра MS SQL порт по умолчанию выбирается динамически и может меняться после перезапуска. Надёжнее зафиксировать его: в SQL Server Configuration Manager откройте протокол TCP/IP экземпляра, на вкладке IP-адресов очистите «Динамические порты» и укажите статический TCP-порт. Тогда в брандмауэре достаточно одного правила.
Для PostgreSQL открыть порт мало. Ещё нужно:
- в
postgresql.confпараметрlisten_addressesдолжен включать адрес сетевого интерфейса, а не толькоlocalhost; - в
pg_hba.confдобавить строку, разрешающую подключение с адреса сервера 1С; - перечитать конфигурацию или перезапустить службу PostgreSQL.
Пример строки для pg_hba.conf:
host all postgres 192.168.10.15/32 md5
Где 192.168.10.15 — адрес сервера 1С. Метод аутентификации выбирайте тот, что принят у вас (md5 или scram-sha-256).
Правила брандмауэра на Windows и Linux
Windows Server
Правила удобно добавить из командной строки, запущенной от администратора:
netsh advfirewall firewall add rule name="1C Server agent and manager" dir=in action=allow protocol=TCP localport=1540-1541
netsh advfirewall firewall add rule name="1C Server rphost range" dir=in action=allow protocol=TCP localport=1560-1591
Если нужен RAS, добавьте отдельное правило на 1545 и ограничьте его адресами админов через параметр remoteip=. Для сервера MS SQL:
netsh advfirewall firewall add rule name="MS SQL for 1C" dir=in action=allow protocol=TCP localport=1433 remoteip=192.168.10.15
То же можно сделать в оснастке «Брандмауэр Защитника Windows в режиме повышенной безопасности»: «Правила для входящих подключений» → «Создать правило» → «Для порта».
Linux
Для дистрибутивов с firewalld:
sudo firewall-cmd --permanent --add-port=1540-1541/tcp
sudo firewall-cmd --permanent --add-port=1560-1591/tcp
sudo firewall-cmd --reload
Для Ubuntu и Debian с ufw:
sudo ufw allow 1540:1541/tcp
sudo ufw allow 1560:1591/tcp
sudo ufw allow from 192.168.10.15 to any port 5432 proto tcp
Последняя строка — для сервера PostgreSQL: пускаем на 5432 только сервер 1С.
Если между клиентами и сервером стоит аппаратный межсетевой экран или маршрутизатор филиала, те же порты нужно разрешить и там. Локальный брандмауэр на сервере — только половина пути.
Распределённые базы и обмены: что открывать
РИБ и обмены через планы обмена не требуют отдельного «порта 1С». Транспорт определяется тем, как настроен обмен:
| Способ обмена | Что открыть |
|---|---|
| Через общий сетевой каталог | 445/TCP (SMB) к файловому серверу |
| Через FTP | 21/TCP и пассивный диапазон портов FTP-сервера |
| Через электронную почту | Порты почтового сервера: SMTP 465 или 587, IMAP 993 или POP3 995 |
| Через интернет (веб-сервис) | 443/TCP (или 80) к веб-публикации главного узла |
| Прямое подключение к базе на сервере 1С | 1540, 1541 и диапазон процессов |
Практика для филиалов:
- 🌐 Узлы в удалённых офисах лучше подключать через веб-публикацию по HTTPS. Наружу смотрит один порт 443, а сервер 1С остаётся во внутренней сети.
- 🚫 Пробрасывать 1540–1591 в интернет без VPN не стоит. Протокол сервера 1С не рассчитан на открытую сеть.
- 🔁 Если узлы обмениваются по расписанию из рабочего процесса сервера, исходящие соединения идут от сервера 1С. Проверьте, что исходящий трафик к FTP, почте или веб-сервису не режется.
Проверка доступности портов сервера 1С
Сначала убедитесь, что службы вообще слушают порты. На сервере Windows:
netstat -ano | findstr ":154"
netstat -ano | findstr ":156"
На Linux:
ss -tlnp | grep -E ':15[4-9][0-9]'
Потом проверьте путь с клиентского компьютера. В PowerShell:
Test-NetConnection srv1c -Port 1540
Test-NetConnection srv1c -Port 1541
Test-NetConnection srv1c -Port 1560
TcpTestSucceeded : True — порт доступен. На Linux то же даёт nc -zv srv1c 1541.
Учтите: порт из диапазона отвечает, только если на нём сейчас работает процесс. Номер конкретного процесса видно в консоли кластера, в списке рабочих процессов — колонка с портом. Проверяйте именно его.
Частые ошибки при настройке
- ❌ Правило создано только для профиля «Домен». Если сетевой адаптер сервера оказался в профиле «Частная» или «Общедоступная», правило не сработает. Проверьте профиль правила и профиль сети.
- ❌ Открыты порты одной версии, а запущен второй кластер. После установки новой платформы рядом со старой у второй службы другие порты. Сверьте параметры
-port,-regport,-rangeв свойствах каждой службы. - ❌ Диапазон в брандмауэре не совпадает с диапазоном в консоли. Поменяли в консоли на
1560:1650, а в правиле осталось1560-1591. Процессы на «новых» портах для клиентов недоступны. - ❌ Порт SQL открыт для всей сети. Пользователям он не нужен. Ограничьте правило адресом сервера 1С.
- ❌ Антивирус со своим сетевым экраном. Некоторые антивирусы заменяют брандмауэр Windows своим. Правила
netshтогда ничего не дают — настраивайте исключения в консоли антивируса.
Частые вопросы
Нужен ли UDP для сервера 1С?
Можно ли сменить стандартный порт 1541?
-regport и -port. После смены в строке подключения у пользователей указывают порт явно: Srvr="srv1c:3541".