Какие порты открыть для кластера 1С, СУБД и клиентов: схема, команды для Windows и Linux
Содержание
Сервер 1С:Предприятие 8.3 по умолчанию слушает три вещи: агент сервера на TCP 1540, главный менеджер кластера на TCP 1541 и диапазон TCP 1560–1591 для рабочих процессов. Эти порты должны быть открыты на сервере для всех клиентов. Порт СУБД (1433 у MS SQL, 5432 у PostgreSQL) нужен только самому серверу 1С, пользователям он не нужен.
Типичная ситуация: администратор ставит сервер 1С на новую виртуалку, у себя на машине всё открывается, а у бухгалтера в соседнем кабинете клиент висит минуту и падает с ошибкой соединения. Почти всегда виноват брандмауэр: открыли 1541, а про диапазон рабочих процессов забыли.
Как клиент подключается к кластеру 1С
Подключение идёт не по одному порту, а цепочкой. Если хотя бы одно звено закрыто, клиент не войдёт в базу.
- Клиент обращается к агенту сервера (
ragent) на порт 1540 и узнаёт, какой кластер обслуживает нужную базу. - Затем идёт к менеджеру кластера (
rmngr) на порт 1541. Менеджер выбирает рабочий процесс для сеанса. - Дальше клиент работает напрямую с рабочим процессом (
rphost). Этот процесс слушает один из портов диапазона 1560–1591. - Рабочий процесс сам ходит в СУБД по её порту. Клиент в этой связке не участвует.
Отсюда главный вывод: открыть только 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 | Если есть веб-доступ |
| 1433 | MS SQL Server | Только сервер 1С | Да, при MS SQL |
| 1434 UDP | SQL Server Browser | Только сервер 1С | Если именованный экземпляр без фиксированного порта |
| 5432 | PostgreSQL | Только сервер 1С | Да, при PostgreSQL |
| 1521 | Oracle 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. Для фаервола это неудобно: порт может меняться после перезапуска.
Как закрепить порт за именованным экземпляром:
- Откройте SQL Server Configuration Manager.
- Перейдите в
Сетевая конфигурация SQL Server → Протоколы для <экземпляр> → TCP/IP. - Проверьте, что протокол TCP/IP включён.
- На вкладке «IP-адреса» в блоке IPAll очистите поле «Динамические TCP-порты» и впишите постоянный порт в «TCP-порт», например 1433 или 14330.
- Перезапустите службу 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
Если удобнее мышью:
- Запустите
wf.msc— «Монитор брандмауэра Защитника Windows в режиме повышенной безопасности». - Слева выберите «Правила для входящих подключений», справа — «Создать правило».
- Тип правила — «Для порта», протокол TCP, порты
1540-1541, 1560-1591. - Действие — «Разрешить подключение».
- Профили — оставьте «Доменный» и «Частный», «Публичный» отключите, если сервер не смотрит в интернет.
- Задайте понятное имя, например «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 на компьютерах пользователей?
Можно ли сузить диапазон 1560–1591?
Какой порт нужен для веб-клиента 1С?
Безопасно ли открыть порты сервера 1С в интернет?
Где посмотреть порт сервера хранилища конфигураций?
crserver: ключ -port, по умолчанию 1542. В Конфигураторе адрес хранилища пишут как tcp://srv1c:1542/имя_хранилища.