Корректная работа распределенной информационной системы 1С:Предприятие напрямую зависит от грамотной конфигурации сетевого экрана. Администраторы часто сталкиваются с ситуацией, когда сервер установлен, службы запущены, но клиенты не могут подключиться или работают с критическими задержками. Причиной почти всегда является блокировка трафика на уровне операционной системы или межсетевого экрана.
Понимание архитектуры взаимодействия компонентов позволяет избежать хаотичного открытия всех портов подряд, что создает огромные бреши в безопасности. Вам необходимо четко разграничивать порты для кластера серверов, для СУБД и для веб-доступа. Ниже мы детально разберем логику работы сетевого стека платформы и предоставим точные значения для настройки правил фильтрации.
Архитектура сетевого взаимодействия 1С
Платформа 1С:Предприятие использует клиент-серверную архитектуру, где обмен данными происходит по протоколу TCP/IP. Центральным элементом является кластер серверов, который координирует работу всех процессов. Клиентские приложения не подключаются к базе данных напрямую, а обращаются к рабочим процессам через менеджер кластера. Это требует открытия специфических диапазонов портов для динамического распределения соединений.
В стандартной конфигурации используется фиксированный порт для первичного рукопожатия. Обычно это порт 1541 для менеджера кластера. Однако после установления соединения менеджер перенаправляет клиента на рабочий процесс (rphost), который запускается на динамически выделяемом порту из заданного диапазона. Игнорирование этого механизма приводит к ошибке"Не удалось соединиться с сервером 1С:Предприятия".
Отдельного внимания заслуживает взаимодействие с системой управления базами данных. Будь то Microsoft SQL Server или PostgreSQL, эти системы имеют собственные сетевые интерфейсы. Брандмауэр должен пропускать трафик между сервером 1С и сервером СУБД, иначе платформа не сможет выполнять запросы к данным, даже если связь с клиентом установлена.
⚠️ Внимание: Открытие портов только на сервере 1С недостаточно. Необходимо проверить правила и на стороне клиентских рабочих мест, особенно если используется встроенный фаервол Windows или сторонние антивирусные комплексы.
Для стабильной работы в гетерогенных сетях (где есть Linux и Windows серверы) важно убедиться, что правила применяются ко всем интерфейсам, включая loopback. Локальные процессы также могут блокироваться агрессивными настройками безопасности, если не добавлено правило для localhost.
Порты кластера серверов 1С
Настройка кластера требует определения статического порта для менеджера и диапазона для рабочих процессов. По умолчанию менеджер кластера слушает порт 1541. Это значение можно изменить в свойствах службы кластера, но делать это стоит только при наличии веских причин, например, конфликта с другим ПО.
Самая критичная часть настройки — это диапазон портов рабочих процессов. В свойствах кластера необходимо задать начальный и конечный порт диапазона. Например, вы можете установить диапазон от 1540 до 1560. Количество портов в диапазоне должно быть достаточным для ожидаемого количества одновременных подключений пользователей, иначе новые сеансы не смогут инициироваться.
Если вы используете версию платформы 8.3.10 и выше, рекомендуется явно прописать эти значения в конфигурационном файле кластера srvinfo\conf\cfgsrv.cfg или через утилиту ras. Это гарантирует, что при перезапуске службы настройки не сбросятся к значениям по умолчанию, которые могут быть шире необходимого.
Используйте утилиту командной строки ras для управления кластером. Команда ras cluster list позволяет увидеть текущее состояние портов и активных сессий в реальном времени.
Помимо основных портов, следует учитывать порт агента кластера, если архитектура распределенная. В сложных схемах с несколькими серверами, агенты общаются между собой, и этот трафик также не должен блокироваться внутренней сетью.
⚠️ Внимание: Не открывайте порт менеджера кластера (1541) в интернет. Это критическая уязвимость, позволяющая злоумышленникам получить полный контроль над базой данных и конфигурацией.
Настройка портов СУБД (SQL Server и PostgreSQL)
Сервер 1С выступает в роли клиента по отношению к СУБД, но для администрирования и некоторых сервисов требуются входящие подключения. Для Microsoft SQL Server стандартным портом является 1433. Однако, если используется именованный экземпляр, порт может быть динамическим, что усложняет настройку фаервола.
Рекомендуется принудительно зафиксировать порт для экземпляра SQL Server через утилиту SQL Server Configuration Manager. В разделе Protocols for MSSQLSERVER -> TCP/IP нужно указать конкретный номер порта в поле IPAll. Это позволит создать точное правило в брандмауэре вместо открытия широкого диапазона.
Для PostgreSQL ситуация аналогична: стандартный порт 5432. Важно проверить файл конфигурации postgresql.conf, параметр listen_addresses. Если там стоит localhost, то сервер 1С, расположенный на другой машине, не сможет подключиться, даже если порты открыты.
| Компонент | Протокол | Порт по умолчанию | Направление |
|---|---|---|---|
| Менеджер кластера 1С | TCP | 1541 | Входящее |
| Рабочие процессы 1С (rphost) | TCP | 1540-1560 (диапазон) | Входящее |
| MS SQL Server | TCP | 1433 | Входящее/Исходящее |
| PostgreSQL | TCP | 5432 | Входящее/Исходящее |
Не забывайте про службы браузера SQL (порт 1434 UDP), которые используются для обнаружения именованных экземпляров. Если вы зафиксировали порты statically, необходимость в этом порту отпадает, и его можно закрыть для повышения безопасности.
☑️ Проверка настройки СУБД
Организация веб-доступа и HTTP-сервисы
Современные сценарии использования 1С часто предполагают доступ через веб-клиент или публикацию HTTP-сервисов для интеграции с другими системами. Для этого используется встроенный веб-сервер платформы или внешний IIS/Apache. Стандартные порты для веб-трафика — 80 (HTTP) и 443 (HTTPS).
При публикации базы в веб-среде через консольную утилиту webinst.exe, система автоматически создает необходимые правила, если у вас есть права администратора. Однако в защищенных контурах эти правила могут быть перезаписаны групповыми политиками домена. В таком случае требуется ручная проверка правил входящего подключения для World Wide Web Services.
Если вы настраиваете HTTPS, убедитесь, что сертификат установлен в правильное хранилище и порт 443 действительно слушается. Часто бывает, что сертификат есть, но привязка к IP-адресу в настройках веб-сервера отсутствует, из-за чего внешние клиенты получают ошибку соединения.
Для публикации REST или SOAP сервисов важно открыть порты не только на сервере 1С, но и настроить маршрутизацию на уровне корпоративного шлюза, если доступ предполагается из внешней сети. В этом случае рекомендуется использовать прокси (reverse proxy) для терминирования SSL и защиты внутреннего периметра.
⚠️ Внимание: Конфигурация веб-сервера и порты могут отличаться в зависимости от версии ОС и установленного обновления безопасности. Всегда сверяйтесь с документацией к вашей конкретной сборке веб-сервера.
Особенности работы в Docker
При запуске 1С в контейнерах Docker необходимо явно пробрасывать порты при старте контейнера с помощью флага -p. Например: -p 1541:1541/tcp. Без этого порты будут доступны только внутри изолированной сети контейнера.
Диагностика и проверка открытых портов
После внесения изменений в конфигурацию брандмауэра необходимо убедиться, что правила работают корректно. Самый простой способ проверки — использование утилиты telnet или Test-NetConnection в PowerShell. Запустите команду с клиентской машины, указав IP сервера и номер порта.
Test-NetConnection -ComputerName 192.168.1.10 -Port 1541
Если результат показывает TcpTestSucceeded: True, значит, сеть прозрачна для данного порта. В случае отрицательного результата следует проверить статус службы брандмауэра Windows и наличие конфликтующих правил, которые могут иметь более высокий приоритет.
Для глубокой диагностики можно использовать утилиту TCPView от Sysinternals. Она отображает все активные TCP-соединения в реальном времени с указанием процесса, владеющего портом. Это поможет понять, слушает ли служба 1С нужный порт и не блокируется ли соединение на уровне процесса.
Также полезно логи кластера серверов. Файлы журналов находятся в каталоге srvinfo\log. Ошибки-bind (привязки к порту) четко указывают на то, что порт занят другой программой или недоступен для открытия из-за прав доступа.
Использование PowerShell cmdlet Test-NetConnection является наиболее быстрым и информативным способом проверки доступности портов в среде Windows без установки стороннего ПО.
Вопросы и ответы по настройке сети
Можно ли изменить стандартный порт 1541 на другой?
Да, это возможно и иногда необходимо для безопасности через"скрытность". Изменение производится в свойствах службы"Агент сервера 1С:Предприятия" на вкладке"Вход в систему" или через реестр. Не забудьте обновить правила фаервола и уведомления для пользователей, так как ярлыки запуска могут потребовать указания нового порта в строке подключения.
Почему 1С работает медленно при открытых портах?
Медленная работа часто связана не с самими портами, а с попытками разрешения имен. Если в сети проблемы с DNS, служба 1С может долго пытаться резолвить IP-адреса в имена хостов. Попробуйте добавить записи в файл hosts на сервере и клиентах или отключить опцию"Разрешать адреса" в настройках кластера.
Нужно ли открывать порты для файлового варианта 1С?
Для файлового варианта работы порты TCP не требуются, так как обмен идет через файловую систему (протокол SMB). Однако необходимо открыть порты 445 и 139 для доступа к общим папкам, если база расположена на отдельном файловом сервере.
Как открыть порты в Linux для сервера 1С?
В Linux чаще всего используется firewalld или iptables. Для firewalld команда будет выглядеть как: firewall-cmd --permanent --add-port=1540-1560/tcp с последующей перезагрузкой правил firewall-cmd --reload. Убедитесь, что контекст SELinux не блокирует сетевые соединения процесса rphost.