При развертывании и администрировании корпоративных информационных систем на базе платформы 1С:Предприятие критически важным аспектом является правильная настройка сетевой инфраструктуры. Администраторы часто сталкиваются с ситуацией, когда клиентская часть программы не может соединиться с сервером, и первым делом возникает вопрос о номерах сетевых портов. Понимание того, как работает сетевое взаимодействие между компонентами, позволяет избежать простоев в работе бухгалтерии и отдела продаж.
Сетевая архитектура 1С построена по клиент-серверной технологии, где обмен данными происходит через строго определенные каналы связи. Эти каналы регистрируются операционной системой и требуют открытия в межсетевых экранах (брандмауэрах) для обеспечения доступа. Если порты заблокированы, пользователи увидят ошибку соединения или бесконечное ожидание ответа от сервера.
В данной статье мы детально разберем, какие конкретно порты задействованы в работе кластера серверов 1С, СУБД и менеджера лицензий. Мы рассмотрим стандартные значения, способы их изменения и методы диагностики проблем с подключением. Знание этих технических деталей необходимо для любого системного администратора, обслуживающего инфраструктуру предприятия.
Стандартные порты сервера 1С:Предприятие
Основным компонентом, отвечающим за прием запросов от тонких и толстых клиентов, является сервис агент сервера 1С (ragent). Именно этот процесс слушает входящие соединения и перенаправляет их рабочим процессам. По умолчанию, при установке платформы, агент сервера пытается занять порт 1541.
Однако стоит учитывать, что номер порта не является жестко зашитым в код и может быть изменен при установке или в конфигурационных файлах. Если на сервере уже запущена другая служба, использующая этот диапазон, или администратор намеренно изменил настройки безопасности, адрес может отличаться. Проверить текущий порт можно в оснастке консоли администрирования серверов 1С.
Для непосредственной обработки запросов пользователей внутри кластера запускаются рабочие процессы rphost. Они не имеют фиксированного порта при старте, а динамически получают диапазон портов от центрального регулятора. Это сделано для балансировки нагрузки и повышения отказоустойчивости системы. Диапазон портов рабочих процессов по умолчанию составляет от 1540 до 1554, но он также подлежит настройке.
⚠️ Внимание: При настройке правил брандмауэра Windows или аппаратных firewall необходимо открывать не только порт агента, но и весь диапазон портов рабочих процессов. Блокировка случайного порта из этого диапазента приведет к тому, что часть пользователей не сможет подключиться к базе.
Если вы используете веб-клиент или публикуете базы через веб-сервер (IIS или Apache), в игру вступает стандартный HTTP/HTTPS трафик. В этом случае внешние пользователи подключаются по портам 80 или 443, а уже веб-сервер транслирует запросы внутрь кластера 1С. Такая схема часто применяется для организации удаленного доступа через интернет.
Для повышения безопасности рекомендуется изменить стандартный порт 1541 на нестандартный (например, 25419) в настройках службы ragent, чтобы усложнить работу автоматическим сканерам уязвимостей.
Порты взаимодействия с СУБД Microsoft SQL Server
Сервер 1С:Предприятие не хранит данные самостоятельно, а выступает посредником между клиентом и системой управления базами данных. В подавляющем большинстве случаев в качестве СУБД используется Microsoft SQL Server. Взаимодействие между кластером 1С и движком базы данных происходит по протоколу TCP/IP.
Стандартным портом для экземпляра SQL Server по умолчанию является 1433. Если на сервере баз данных развернут только один экземпляр (Default Instance), то он будет слушать именно этот порт. Однако в корпоративной среде часто используются именованные экземпляры (Named Instances), которые не имеют фиксированного порта.
В случае с именованным экземпляром порт определяется динамически при каждом запуске службы SQL Server. Для того чтобы клиенты могли найти правильный порт, используется служба SQL Server Browser, которая слушает UDP порт 1434. Клиент отправляет запрос на этот порт, получает ответ с номером TCP порта конкретного экземпляра и устанавливает соединение.
netstat -ano | findstr :1433
Эта команда позволяет проверить, слушает ли сервер баз данных стандартный порт. Если вы видите статус LISTENING, значит, порт открыт и готов к приему соединений от сервера 1С. В сложных инфраструктурах с несколькими экземплярами СУБД на одном физическом сервере настоятельно рекомендуется закрепить порты за каждым экземпляром статически.
Статическая настройка портов упрощает конфигурацию межсетевых экранов. Вам не нужно открывать огромные диапазоны или разрешать работу службы браузер SQL, которая иногда становится вектором для сетевых атак. Закрепление порта осуществляется через утилиту SQL Server Configuration Manager в разделе протоколов TCP/IP.
Служба лицензирования и порты HASP
Еще одним критическим элементом инфраструктуры является сервер лицензирования. Без валидной лицензии запуск рабочих процессов 1С невозможен. В зависимости от типа защиты (программная или аппаратная ключи HASP), используются разные механизмы и порты для проверки прав доступа.
Для программных лицензий и современных версий ключей защиты используется служба Hasplm (HASP License Manager). По умолчанию эта служба использует TCP порт 475 для связи с клиентами. Также может использоваться порт 1947 в новых версиях драйверов защиты. Если этот порт закрыт, пользователи получат ошибку "Лицензия не найдена" или "Превышено количество подключений".
В старых версиях платформы или при использовании устаревших ключей защиты могла использоваться служба 1C:License Server, которая работала на порту 1545. Однако в актуальных релизах платформы 8.3 и выше преимущественно используется менеджер лицензий HASP. Важно убедиться, что служба запущена и не блокируется антивирусным ПО.
| Компонент | Протокол | Порт по умолчанию | Назначение |
|---|---|---|---|
| Агент сервера 1С (ragent) | TCP | 1541 | Прием подключений клиентов |
| Рабочие процессы (rphost) | TCP | 1540-1554 | Обработка запросов данных |
| MS SQL Server (Default) | TCP | 1433 | Доступ к данным СУБД |
| HASP License Manager | TCP | 475 / 1947 | Проверка лицензий |
При развертывании кластера в виртуальной среде или облаке (IaaS) часто возникает проблема, когда лицензии видны локально на сервере, но не пробрасываются на клиентские машины. Это классический симптом блокировки порта лицензирования межсетевым экраном хоста или гипервизора.
Настройка брандмауэра Windows для 1С
Операционная система Windows по умолчанию блокирует большинство входящих подключений. Для корректной работы 1С необходимо создать правила в брандмауэре Защитника Windows. Это можно сделать как через графический интерфейс, так и с помощью командной строки, что предпочтительнее для автоматизации.
Первым шагом является создание правила для порта агента сервера. Необходимо разрешить входящие TCP соединения на порт 1541 (или тот, который вы настроили). Затем следует создать правило для диапазона портов рабочих процессов. Если вы оставили настройки по умолчанию, это диапазон 1540-1554.
- 🔹 Откройте "Брандмауэр Windows в режиме повышенной безопасности".
- 🔹 Выберите "Правила для входящих подключений" и создайте новое правило.
- 🔹 Укажите тип правила "Для порта", протокол TCP и нужный номер или диапазон.
- 🔹 Выберите действие "Разрешить подключение" и примените правило ко всем профилям (Доменный, Частный, Публичный).
Не забудьте также добавить исключения для исполняемых файлов самого сервера 1С. Иногда блокировка происходит не по порту, а по пути к файлу. Добавьте в исключения файлы ragent.exe, rphost.exe и rmngr.exe, расположенные в папке установки платформы (обычно C:\Program Files\1cv8\8.3.xx.xxxx\bin).
☑️ Проверка настроек сети
Если сервер 1С и сервер баз данных находятся на разных физических машинах, правила брандмауэра необходимо настроить на обоих серверах. На сервере 1С открываются порты для клиентов, а на сервере SQL — порты для подключения самого сервера 1С.
Диагностика проблем с подключением
Когда пользователи жалуются на невозможность подключения, администратор должен быстро локализовать проблему. Первым инструментом диагностики является утилита командной строки telnet или Test-NetConnection в PowerShell. Они позволяют проверить доступность порта с клиентской машины.
Выполните команду telnet <сервер_1с> 1541. Если экран становится черным или мигает курсор, значит, порт открыт и соединение установлено. Если появляется сообщение об ошибке подключения, значит, пакет блокируется где-то на пути или служба не слушает порт. В PowerShell можно использовать более информативную команду:
Test-NetConnection -ComputerName 192.168.1.10 -Port 1541
Результат выполнения покажет поле TcpTestSucceeded. Если оно равно True, сетевой путь чист. Если False, проблема в сети, брандмауэре или службе. Также полезно использовать утилиту netstat на самом сервере, чтобы убедиться, что процесс 1С действительно слушает ожидаемый интерфейс.
⚠️ Внимание: Команда telnet может отсутствовать в стандартной установке Windows 10/11. Ее необходимо включить через панель управления в разделе "Компоненты Windows" или использовать альтернативы вроде PowerShell.
Для глубокого анализа сетевого трафика можно использовать сниффер пакетов, например, Wireshark. Захват трафика на порту 1541 покажет, доходят ли пакеты SYN от клиента до сервера и отвечает ли сервер пакетом SYN-ACK. Это позволяет точно определить, на каком этапе обрывается соединение.
Что делать, если Telnet не проходит, но служба запущена?
Если служба ragent запущена (видна в services.msc), но telnet не проходит, проверьте привязку к IP-адресу. Возможно, сервер слушает только localhost (127.0.0.1), а не внешний интерфейс сети. Это настраивается в файле regsrv.cfg или через реестр.
Изменение портов в конфигурации кластера
В некоторых ситуациях требуется изменить стандартные порты. Например, если в сети уже заняты нужные диапазоны или политика безопасности требует использования нестандартных значений. Изменение порта агента сервера производится через реестр Windows или файл конфигурации.
Ключ реестра находится по пути HKEY_LOCAL_MACHINE\SOFTWARE\1C\1Cv8. Параметр Port задает номер порта для центрального регулятора. После изменения значения необходимо перезапустить службу "Агент сервера 1С:Предприятия". Изменение вступит в силу только после перезапуска.
Для изменения диапазона портов рабочих процессов используется оснастка консоли администрирования серверов 1С. Необходимо зайти в свойства кластера, перейти на вкладку "Параметры" и изменить значения "Нижняя граница диапазона портов" и "Верхняя граница". Это изменение применяется динамически для новых рабочих процессов.
После смены портов критически важно обновить списки исключений в брандмауэре. Старые правила будут блокировать новый трафик, что приведет к полному отказу сервиса. Также не забудьте обновить ярлыки запуска у пользователей, если в них был жестко прописан порт (хотя обычно указывается только имя сервера).
Любое изменение сетевых настроек кластера 1С требует синхронного обновления правил межсетевого экранирования на всех узлах инфраструктуры.
FAQ: Часто задаваемые вопросы
Можно ли использовать один порт для всех пользователей 1С?
Нет, архитектура 1С предполагает использование одного порта (агента) для первоначального рукопожатия, после чего каждый пользователь перенаправляется на отдельный рабочий процесс (rphost) в рамках выделенного диапазона. Это необходимо для изоляции сессий и стабильности работы.
Какой порт использовать для PostgreSQL в связке с 1С?
Стандартный порт для СУБД PostgreSQL — 5432. В отличие от MS SQL, он обычно статичен по умолчанию. Убедитесь, что этот порт открыт для подключения от сервера 1С в файле конфигурации pg_hba.conf и брандмауэре.
Почему 1С подключается локально, но не подключается по сети?
Наиболее вероятная причина — блокировка портов брандмауэром Windows или антивирусом. Также проверьте, что служба агента сервера 1С запущена от имени пользователя с правами доступа к сети, а не от имени Local System в некоторых специфических конфигурациях домена.
Как узнать, какой порт занимает конкретная база 1С?
Базы данных не занимают отдельных портов на уровне агента 1С. Все базы в рамках одного кластера обслуживаются через общий порт агента (1541). Разделение происходит на уровне имен инфобаз внутри протокола обмена данными 1С.
Нужно ли открывать порты для веб-клиента 1С?
Для веб-клиента открываются порты веб-сервера (80/443). Сами порты 1С (1541 и др.) должны быть открыты только между веб-сервером и сервером приложений 1С. Прямой доступ из интернета на порты 1С открывать не рекомендуется из соображений безопасности.