Порты кластера 1С 8.3 и СУБД: что открыть в брандмауэре и как проверить связь
Содержание
Сервер 1С:Предприятия 8.3 по умолчанию слушает три вещи: порт 1540 (агент сервера, ragent), порт 1541 (главный менеджер кластера, rmngr) и диапазон 1560–1591 (рабочие процессы rphost и дополнительные менеджеры). Для MS SQL Server стандартный порт — 1433/TCP, для PostgreSQL — 5432/TCP. Веб-клиент через опубликованную базу ходит по 80 (HTTP) или 443 (HTTPS).
Частая ошибка — открыть в брандмауэре только 1541 и удивляться, что клиент «видит» сервер, но не подключается к базе. Менеджер кластера лишь направляет клиента к рабочему процессу, а тот работает на порту из диапазона 1560–1591. Если диапазон закрыт, соединение рвётся сразу после первого обмена.
Порты сервера 1С:Предприятие 8.3 по умолчанию
Кластер 1С — это несколько процессов, и у каждого свой порт. Понимать, кто за что отвечает, нужно хотя бы для того, чтобы правильно читать сообщения об ошибках.
| Процесс | Порт по умолчанию | Что делает |
|---|---|---|
ragent — агент сервера | 1540/TCP | Управляет кластерами на сервере, к нему подключается консоль администрирования |
rmngr — менеджер кластера | 1541/TCP | Принимает подключения клиентов к базам кластера, распределяет их по рабочим процессам |
rphost — рабочие процессы | 1560–1591/TCP | Выполняют серверный код и обращаются к СУБД |
ras — сервер администрирования | 1545/TCP | Нужен утилите rac и сторонним консолям |
dbgs — сервер отладки (HTTP) | 1550/TCP | Отладка по протоколу HTTP из Конфигуратора или EDT |
Как идёт подключение клиента к серверной базе:
- 🔌 Клиент обращается к менеджеру кластера на порт 1541 (или к порту, указанному в строке подключения).
- 📋 Менеджер находит базу и выбирает рабочий процесс.
- 🔁 Клиент переподключается к rphost на порт из диапазона 1560–1591 и дальше работает с ним.
Консоль кластера серверов идёт через агента, то есть на 1540. Поэтому консоль может подключаться, а пользователи — нет: это разные порты.
Диапазон 1560–1591 — это 32 порта. Его задают в свойствах рабочего сервера в консоли кластера (поле с диапазоном IP-портов). Сузите его — откроете в брандмауэре меньше, но при большом числе рабочих процессов портов может не хватить.
Порт сервера лицензирования и ключей защиты
Аппаратные сетевые ключи HASP раздаются менеджером лицензий по порту 475 (UDP и TCP). Если ключ стоит на другой машине, этот порт должен быть открыт между клиентами и компьютером с ключом.
Программные лицензии своего порта не требуют. Активация через интернет идёт обычным HTTPS-соединением, порт 443 исходящий.
Файловая база: портов 1С нет
В файловом варианте сервера 1С нет вообще. Клиент открывает файл 1Cv8.1CD по сетевой папке, а значит, нужен только общий доступ к файлам Windows — SMB, порт 445/TCP. Если файловая база «не открывается по сети», ищите проблему в правах на папку и в SMB, а не в портах 1540/1541.
Порты СУБД: MS SQL Server, PostgreSQL и другие
К СУБД подключаются только рабочие процессы rphost. Клиентам 1С доступ к SQL-серверу не нужен — им хватает портов кластера.
| СУБД | Порт по умолчанию | Нюансы |
|---|---|---|
| MS SQL Server (экземпляр по умолчанию) | 1433/TCP | Протокол TCP/IP должен быть включён |
| MS SQL Server (именованный экземпляр) | динамический + 1434/UDP | Служба SQL Server Browser сообщает порт экземпляра |
| PostgreSQL (в том числе сборки для 1С) | 5432/TCP | Нужно разрешить удалённые подключения в настройках |
| Oracle Database | 1521/TCP | Порт слушателя (listener) |
| IBM Db2 | 50000/TCP | Часто меняют при установке |
Что проверить у MS SQL
- 🔧 В SQL Server Configuration Manager включён протокол TCP/IP для нужного экземпляра.
- 📌 Для именованного экземпляра задайте статический порт в свойствах TCP/IP (вкладка с IP-адресами, блок IPAll) и уберите динамический. Иначе после перезапуска порт может смениться.
- 🔎 Если порт статический, а Browser не нужен, в поле «Сервер баз данных» кластера можно указать имя с портом через запятую:
sqlsrv,14330.
Что проверить у PostgreSQL
- 📝 В
postgresql.confпараметрlisten_addressesне ограничен значениемlocalhost, если СУБД стоит на отдельной машине. - 🔐 В
pg_hba.confесть строка, разрешающая подключение с адреса сервера 1С. - 🔁 После правки — перезапуск службы PostgreSQL.
Порт СУБД никогда не открывайте наружу, в интернет. Его должен видеть только сервер 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
Вторую строку добавляйте, только если ras реально запущен и к нему нужно ходить с других машин.
На сервере СУБД — отдельное правило:
netsh advfirewall firewall add rule name="MS SQL 1433" dir=in action=allow protocol=TCP localport=1433 remoteip=192.168.1.10
Здесь 192.168.1.10 — адрес сервера 1С. Ограничение remoteip сужает доступ к SQL до одной машины.
То же самое через PowerShell:
New-NetFirewallRule -DisplayName "1C Server 8.3" -Direction Inbound -Protocol TCP -LocalPort 1540,1541,"1560-1591" -Action Allow
Если сервер 1С на Linux
Для firewalld:
sudo firewall-cmd --permanent --add-port=1540-1541/tcp
sudo firewall-cmd --permanent --add-port=1560-1591/tcp
sudo firewall-cmd --reload
Для ufw:
sudo ufw allow 1540:1541/tcp
sudo ufw allow 1560:1591/tcp
Правила открывают порт на всех сетевых профилях, если не указан профиль. На сервере в домене обычно хватает профиля «Домен». Не держите 1540/1541 открытыми в профиле «Общедоступный», если сервер смотрит в интернет.
Между какими машинами нужны порты
- 💻 Клиенты 1С → сервер 1С: 1540 (только для консоли), 1541, 1560–1591.
- 🗄️ Сервер 1С → сервер СУБД: 1433 / 5432 / другой порт СУБД.
- 🌐 Веб-сервер → сервер 1С: 1541 и 1560–1591 (веб-сервер для кластера — такой же клиент).
- 🔁 Сервер 1С ↔ другой рабочий сервер того же кластера: все порты кластера в обе стороны.
- 🔑 Клиенты → компьютер с сетевым ключом HASP: 475.
Как проверить, что порт открыт и кем он занят
Начните с сервера: слушает ли вообще процесс нужный порт.
netstat -ano | findstr ":1540 :1541"
tasklist /fi "imagename eq ragent.exe"
В выводе netstat последняя колонка — PID. Сверьте его с tasklist: если порт 1541 держит не rmngr.exe, а другая программа, служба 1С стартовать не сможет.
Теперь проверка с клиентской машины:
Test-NetConnection srv1c -Port 1541
Test-NetConnection srv1c -Port 1560
Значение TcpTestSucceeded : True — порт доступен. False при работающей службе почти всегда означает брандмауэр на сервере или на маршруте между сетями.
Порт из диапазона 1560–1591 может не отвечать, если на нём сейчас нет рабочего процесса. Проверяйте тот порт, который реально занят rphost по данным netstat на сервере.
На Linux занятые порты смотрят так:
sudo ss -tlnp | grep -E 'ragent|rmngr|rphost'
Порты для веб-клиента и публикации базы на IIS или Apache
Веб-клиент, тонкий клиент по HTTP, мобильный клиент, HTTP-сервисы и OData работают через веб-сервер. Снаружи видно только два порта:
- 🌐 80/TCP — HTTP;
- 🔒 443/TCP — HTTPS.
Модуль расширения веб-сервера 1С (на IIS или Apache) сам подключается к кластеру как обычный клиент. Отсюда главный практический вывод: если веб-сервер стоит в DMZ или на отдельной машине, ему нужен доступ к серверу 1С по портам 1541 и 1560–1591. Без диапазона публикация откроется, но при входе выдаст ошибку соединения.
Для файловой базы, опубликованной на веб-сервере, портов кластера нет: модуль открывает файл базы напрямую. Пользователю службы веб-сервера нужны права на каталог базы.
Наружу публикуйте только HTTPS. Сертификат Let’s Encrypt или коммерческий ставится на уровне IIS или Apache, 1С об этом знать не нужно.
Тонкий клиент через интернет без VPN
Тонкий клиент умеет подключаться к базе по адресу публикации (https://…/base), а не по Srvr=…. Так удалённым сотрудникам открывают только 443, а порты кластера остаются внутри сети. Это безопаснее, чем пробрасывать 1541 и 1560–1591 на роутере.
Нестандартные порты: второй кластер и защита сервера
Порты меняют в двух случаях: на одной машине нужен второй кластер (например, для другой версии платформы) или хочется увести сервер с «известных» номеров.
Параметры задаются при регистрации службы агента:
"C:\Program Files\1cv8\8.3.24.1548\bin\ragent.exe" -instsrvc -usr .\USR1CV8 -pwd Пароль -port 2540 -regport 2541 -range 2560:2591 -d "C:\srvinfo2"
Что означают ключи:
| Ключ | Значение |
|---|---|
-port | Порт агента (вместо 1540) |
-regport | Порт главного менеджера кластера (вместо 1541) |
-range | Диапазон портов рабочих процессов (вместо 1560:1591) |
-d | Каталог служебных данных кластера (srvinfo) |
Путь к платформе и номер версии в примере замените на свои. У второго кластера обязательно должен быть свой каталог -d, иначе два агента будут писать в одни файлы реестра кластера.
У уже установленной службы те же ключи видны в строке запуска. Её можно посмотреть в свойствах службы (поле «Исполняемый файл») или в реестре — в параметре ImagePath раздела службы HKLM\SYSTEM\CurrentControlSet\Services.
Смена портов требует перезапуска службы агента. Все пользователи будут отключены от серверных баз этого кластера, поэтому делайте это вне рабочего времени и после предупреждения.
Как подключаться к кластеру на нестандартном порту
В списке баз в поле «Кластер серверов
1С:Предприятия» пишите имя сервера с портом менеджера: srv1c:2541. В консоли кластера при добавлении центрального сервера указывайте порт агента — 2540.
Минимум для безопасности кластера
- 🔐 Задайте администраторов кластера и центрального сервера в консоли. Без них любой, кто достучался до 1540, может управлять базами.
- 🧱 Ограничьте правила брандмауэра адресами внутренних подсетей (
remoteip). - 🚫 Не пробрасывайте 1540/1541 и диапазон рабочих процессов на внешний IP. Для удалённой работы — VPN или веб-публикация по HTTPS.
- 👤 Служба агента работает от отдельной учётной записи без прав администратора.
- 🗄️ Порт СУБД доступен только с сервера 1С.
Смена номеров портов сама по себе от атаки не защищает — сканер найдёт открытый порт за минуты. Она полезна для второго кластера, а защиту дают ограничение по адресам и пароли администраторов.