Сетевой экран для кластера 1С 8.3: что пропустить, чтобы клиенты подключались
Содержание
Для сервера 1С 8.3 с настройками по умолчанию откройте входящие TCP-порты 1540 (агент сервера), 1541 (менеджер кластера) и диапазон 1560–1591 (рабочие процессы). Этого достаточно, чтобы толстый и тонкий клиенты подключались к клиент-серверной базе. Порт СУБД (1433 для MS SQL, 5432 для PostgreSQL) открывать для пользователей не нужно: с базой данных говорит только сервер 1С.
Остальное зависит от сценария. Удалённая утилита rac — порт 1545 сервиса RAS. Веб-клиент и HTTP-сервисы — 80 или 443 на веб-сервере. Хранилище конфигурации по TCP — 1542. Если кластер на нестандартных портах, ориентируйтесь на параметры запуска службы, а не на таблицы из интернета.
Как клиент 1С находит сервер и базу
Понять порядок обращений важно: от него зависит, какой порт «виноват», когда подключение не проходит.
- Клиент обращается к агенту сервера (
ragent) на порт 1540 и спрашивает, где кластер. - Агент отдаёт адрес менеджера кластера (
rmngr), обычно порт 1541. - Менеджер кластера выбирает рабочий процесс (
rphost) и сообщает клиенту его порт из диапазона 1560–1591. - Клиент устанавливает прямое соединение с рабочим процессом. Дальше вся работа пользователя идёт через этот порт.
- Рабочий процесс сам ходит в СУБД: MS SQL Server, PostgreSQL или другую поддерживаемую.
Отсюда типичная ловушка: открыли 1540 и 1541, а диапазон забыли. Клиент находит кластер, видит список баз, но при входе зависает и падает по таймауту. Поэтому диапазон рабочих процессов обязателен.
💡 Вторая ловушка — имя сервера. Менеджер кластера сообщает клиенту адрес рабочего процесса по имени компьютера, под которым тот зарегистрирован в кластере. Если клиент это имя не разрешает (другая подсеть, VPN, нет записи в DNS), подключение не пройдёт даже при открытых портах. Лечится записью в DNS или строкой в файле hosts на клиенте.
Основные порты сервера 1С:Предприятие 8.3
Значения ниже — установка по умолчанию. Их можно поменять при регистрации службы.
| Порт | Протокол | Процесс | Назначение | Кому открыть |
|---|---|---|---|---|
| 1540 | TCP | ragent | Агент сервера, точка входа клиентов и консоли администрирования | Всем клиентам |
| 1541 | TCP | rmngr | Главный менеджер кластера | Всем клиентам |
| 1560–1591 | TCP | rphost, rmngr | Рабочие процессы и дополнительные менеджеры | Всем клиентам |
| 1545 | TCP | ras | Сервер администрирования для утилиты rac и сторонних консолей | Только администраторам |
| 1542 | TCP | crserver | Сервер хранилища конфигурации | Разработчикам |
| 1550 | TCP | dbgs | Сервер отладки по HTTP | Разработчикам, на время отладки |
| 80 / 443 | TCP | веб-сервер | Веб-клиент, мобильный клиент, 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, экземпляр по умолчанию | 1433 | TCP | Задаётся в SQL Server Configuration Manager |
| MS SQL Server, именованный экземпляр | динамический + 1434 | TCP + UDP | UDP 1434 — служба SQL Server Browser |
| PostgreSQL | 5432 | TCP | Параметр port в postgresql.conf |
MS SQL: зафиксируйте порт именованного экземпляра
Именованный экземпляр по умолчанию получает динамический порт, и после перезапуска он может смениться. Для сетевого экрана это неудобно.
- Откройте SQL Server Configuration Manager.
- Перейдите в сетевую конфигурацию нужного экземпляра и откройте свойства протокола TCP/IP.
- На вкладке с IP-адресами в блоке IPAll очистите поле динамических портов и впишите постоянный порт.
- Перезапустите службу 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
Через оснастку
- Откройте «Брандмауэр Защитника Windows в режиме повышенной безопасности» (
wf.msc). - Выберите «Правила для входящих подключений» → «Создать правило».
- Тип правила — «Для порта», протокол TCP, конкретные порты:
1540-1541, 1560-1591. - Действие — разрешить подключение.
- Профили — отметьте тот, в котором работает сетевой адаптер сервера (чаще всего «Доменный»).
- Задайте понятное имя, например «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–1591 | 1433 или 5432 только с IP сервера 1С | — |
Плюс удалённое администрирование через rac | + 1545 с подсети админов | — | — |
| Веб-клиент через IIS или Apache | 1540, 1541, 1560–1591 с адреса веб-сервера | как выше | 80 и/или 443 для пользователей |
| Пользователи через RDP-ферму | 1540, 1541, 1560–1591 с адресов терминальных серверов | как выше | — |
| Кластер из нескольких рабочих серверов | порты всех кластеров между серверами в обе стороны | с IP каждого рабочего сервера | — |
| Хранилище конфигурации на сервере | + 1542 для разработчиков | — | — |
Не публикуйте порты 1540–1591 в интернет напрямую. Для удалённых сотрудников используйте VPN, RDP-шлюз или веб-публикацию по HTTPS. Протокол клиента 1С не рассчитан на открытый доступ из сети.
Частые вопросы
Нужно ли открывать порты на компьютерах пользователей?
Работает ли 1С по UDP?
Какой порт нужен для сетевого ключа HASP?
Можно ли сузить диапазон 1560–1591 до нескольких портов?
Как подключиться к кластеру на нестандартном порту?
srv1c:2541, а в строке подключения базы — Srvr="srv1c:2541";Ref="buh";.