Сетевые порты 1С:Предприятия: что открыть на фаерволе и что держать закрытым
Содержание
Для клиент-серверной 1С 8.3 на сервере открывают TCP-порты 1540 (агент сервера), 1541 (менеджер кластера) и диапазон 1560–1591 (рабочие процессы). Если сервер СУБД стоит на другой машине, сервер 1С должен достучаться до него: MS SQL Server по умолчанию слушает 1433, PostgreSQL — 5432. Для веб-клиента и тонкого клиента через интернет нужны только 80/443 на веб-сервере.
Частое заблуждение: «достаточно открыть 1541, и всё заработает». Клиент действительно сначала идёт к агенту и менеджеру кластера, но затем соединяется напрямую с рабочим процессом на порту из диапазона. Если диапазон закрыт, база не откроется, хотя telnet на 1540 и 1541 проходит успешно.
Как устроено соединение клиента с сервером 1С
Порядок подключения тонкого или толстого клиента к клиент-серверной базе:
- 🔌 Клиент обращается к агенту сервера (
ragent) на порт 1540 и узнаёт, какой кластер обслуживает базу. - 🧭 Клиент идёт к менеджеру кластера (
rmngr) на порт 1541. Менеджер выбирает рабочий процесс для сеанса. - ⚙️ Клиент подключается к рабочему процессу (
rphost) на порт из диапазона 1560–1591. Через это соединение идёт вся работа пользователя. - 🗄️ Рабочий процесс сам обращается к СУБД. Клиент с SQL-сервером напрямую не общается.
Отсюда два практических вывода. Первый: пользователю не нужен доступ к порту СУБД, его открывают только между сервером 1С и сервером баз данных. Второй: консоль администрирования серверов работает через агент, поэтому для неё хватает 1540 (плюс диапазон, если консоль стоит на другом компьютере и управляет кластером удалённо).
Агент возвращает клиенту имя рабочего сервера, а не IP-адрес. Если клиент это имя не разрешает (компьютер вне домена, VPN без DNS), подключение обрывается после первых шагов. Лечится записью в DNS или строкой в файле C:\Windows\System32\drivers\etc\hosts.
Файловая база работает иначе. Своих портов у неё нет: клиент читает файл 1Cv8.1CD по сетевой папке, то есть через SMB (TCP 445). Открывать 1540 и диапазон для файлового варианта бессмысленно.
Порты сервера 1С по умолчанию и как их поменять
Сводная таблица того, что слушает сервер 1С:Предприятия 8.3 в стандартной установке:
| Компонент | Процесс | Порт по умолчанию | Кто подключается |
|---|---|---|---|
| Агент сервера | ragent | TCP 1540 | клиенты, консоль администрирования |
| Менеджер кластера | rmngr | TCP 1541 | клиенты, другие серверы кластера |
| Рабочие процессы | rphost | TCP 1560–1591 | клиенты |
| Сервер администрирования | ras | TCP 1545 | утилита rac, сторонние консоли |
| Сервер отладки | dbgs | TCP 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 Server | TCP 1433 (экземпляр по умолчанию) | SQL Server Configuration Manager → протокол TCP/IP |
| Служба SQL Server Browser | UDP 1434 | нужна только для именованных экземпляров |
| PostgreSQL (в том числе сборки для 1С) | TCP 5432 | postgresql.conf, параметр port |
| Oracle Database | TCP 1521 | настройки listener |
| IBM Db2 | TCP 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 |
| Удалённый рабочий стол / RemoteApp | 3389 или шлюз 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
Test-NetConnection на 1540.Правила фаервола и защита сервера 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С для файловой базы?
Можно ли сузить диапазон 1560–1591?
Через какой порт работает утилита rac?
rac подключается к серверу администрирования ras, по умолчанию на 1545. Пример: rac srv1c:1545 cluster list. Сам ras при этом обращается к агенту на 1540.Какой порт нужен для программной лицензии?
Что делать, если порт 1540 уже занят?
netstat -ano и tasklist. Если это старая служба агента другой версии, остановите её в нерабочее время или переведите второй экземпляр на 2540/2541.