Стабильная работа клиент-серверной версии платформы 1С:Предприятие напрямую зависит от корректности сетевых настроек между рабочими станциями пользователей, сервером приложений и СУБД Microsoft SQL Server. Часто администраторы сталкиваются с ситуацией, когда база данных развернута, лицензия активирована, но пользователи не могут подключиться к информационным базам, получая ошибки таймаута. В 90% случаев корень проблемы кроется в настройках межсетевого экрана (Firewall), который блокирует необходимый сетевой трафик.

Для успешного соединения необходимо понимать архитектуру обмена данными: клиент 1С обращается к серверу 1С, который, в свою очередь, взаимодействует с движком SQL. Простое открытие всех портов является грубой ошибкой безопасности, поэтому важно точно знать, какие именно диапазоны и протоколы требуются для штатной работы системы. В этой статье мы детально разберем, какие порты нужно открыть на Windows Server, как настроить исключения для MSSQLSERVER и как избежать типичных ошибок конфигурации.

Процесс настройки требует внимательности, так как современные версии Windows Server по умолчанию имеют строгие правила фильтрации входящих подключений. Неправильная настройка может привести не только к недоступности базы, но и к уязвимости сервера перед внешними атаками. Мы рассмотрим как статические порты, так и особенности работы с динамическими диапазонами, которые часто игнорируются при первичной инсталляции.

Базовые порты сервера 1С:Предприятие

Первым уровнем взаимодействия является соединение между тонким или толстым клиентом 1С и сервером приложений 1С (rmngr). По умолчанию сервер 1С использует порт 1540 (TCP) для регистрации и управления кластером серверов. Именно через этот порт клиент узнает, на каком рабочем сервере находится нужная информационная база. Если этот порт закрыт, пользователь увидит ошибку "Сервер 1С:Предприятие недоступен".

Помимо порта менеджера кластера, каждому запущенному рабочему процессу rphost выделяется отдельный порт из диапазона динамических портов. По умолчанию в Windows этот диапазон составляет от 49152 до 65535, однако для сервера 1С его часто сужают для упрощения настройки Firewall. Без открытия этого диапазона клиент сможет подключиться к кластеру, но не сможет запустить саму базу данных.

Администраторы часто забывают, что порты должны быть открыты в обе стороны, если сервера разделены физически или находятся в разных подсетях. В локальной среде достаточно открыть входящие подключения на сервере приложений. Для надежной работы рекомендуется зафиксировать диапазон портов рабочих процессов в настройках кластера, чтобы не открывать тысячи портов в брандмауэре.

  • 🔌 Порт 1540 — основной порт менеджера кластера серверов 1С.
  • 🚀 Диапазон 1541-1560 — рекомендуемый статический диапазон для рабочих процессов rphost.
  • 🛡️ Протокол TCP — обязательный тип трафика для всех соединений 1С.
  • 🔄 UDP порт 1540 — используется для обнаружения серверов в локальной сети (опционально).

⚠️ Внимание: Если вы изменяете диапазон портов рабочих процессов в свойствах кластера серверов 1С, необходимо перезапустить службу "Агент сервера 1С:Предприятия", чтобы изменения вступили в силу и новые правила Firewall начали работать корректно.

📊 Какой тип сети вы настраиваете?
Локальная сеть (LAN)
Домен с контроллером
Удаленный доступ (VPN/Интернет)
Виртуальная среда (Hyper-V/VMware)

Настройка портов Microsoft SQL Server

Сервер баз данных Microsoft SQL Server по умолчанию использует порт 1433 для приема входящих подключений. Однако ситуация усложняется тем, что при установке по умолчанию часто создается именованный экземпляр (например, SQLExpress или имя вашей компании), который не слушает статический порт 1433, а использует динамический. Для работы 1С критически важно, чтобы сервер приложений мог стабильно соединяться с портом прослушивания СУБД.

Для именованных экземпляров используется служба SQL Server Browser, которая работает на UDP порту 1434. Клиент отправляет запрос на этот порт, чтобы узнать, какой динамический порт выделен конкретному экземпляру SQL. Если брандмауэр блокирует UDP 1434, процесс подключения зависнет на этапе разрешения имени экземпляра, даже если сам порт SQL открыт.

Наилучшей практикой для производственных серверов 1С является принудительная фиксация статического порта для экземпляра SQL Server. Это избавляет от необходимости держать открытым порт 1434 и делает конфигурацию Firewall более предсказуемой и безопасной. Изменение порта выполняется через утилиту "Диспетчер конфигурации SQL Server" (SQL Server Configuration Manager).

Компонент Порт Протокол Назначение
SQL Server (Default) 1433 TCP Основной порт для подключения к БД
SQL Server Browser 1434 UDP Поиск динамических портов экземпляров
SQL Server (Named) Динамический TCP Порт конкретного именованного экземпляра
1C Server Agent 1540 TCP/UDP Управление кластером 1С

После смены порта в конфигурации SQL Server необходимо обязательно перезапустить службу самого экземпляра базы данных. Просто перезапуск агента или браузера не применит новые сетевые настройки. Убедитесь, что в журнале событий SQL нет ошибок привязки к сокету.

💡

Для проверки того, какой порт реально слушает ваш экземпляр SQL, используйте команду в PowerShell: Get-NetTCPConnection -LocalPort 1433 или посмотрите лог ошибок SQL Server при старте службы.

Регулировка динамических портов Windows

Операционная система Windows по умолчанию выделяет для эфемерных (динамических) портов диапазон с 49152 по 65535. Для сервера, на котором крутится множество баз 1С и активных сессий пользователей, открытие такого огромного диапазона в брандмауэре считается плохой практикой безопасности. Гораздо эффективнее сузить этот диапазон до разумных пределов.

Изменение диапазона динамических портов производится через реестр или командную строку с правами администратора. Рекомендуется установить диапазон, например, от 50000 до 51000. Это позволит открыть в Firewall всего 1000 портов вместо 16000, существенно снизив поверхность атаки и упростив аудит правил.

netsh int ipv4 set dynamicport tcp start=50000 num=1000

После выполнения команды необходимо перезагрузить сервер или перезапустить сетевые службы, чтобы новый диапазон начал применяться для новых подключений. Важно синхронизировать эти настройки с конфигурацией кластера 1С, чтобы рабочие процессы rphost также пытались занимать порты именно из этого суженного диапазона.

⚠️ Внимание: Перед изменением системных сетевых настроек обязательно создайте точку восстановления системы или резервную копию реестра. Ошибка в команде netsh может привести к потере сетевой доступности сервера.

Создание правил в Брандмауэре Windows

Настройка правил осуществляется через оснастку "Монитор брандмауэра Защитника Windows" (Windows Defender Firewall with Advanced Security). Вам необходимо создать правила для входящих подключений (Inbound Rules). Сначала создается правило для порта 1540 (1С), затем для порта SQL (1433 или ваш статический) и, наконец, для диапазона портов рабочих процессов.

При создании правила выберите тип "Для порта" (For Port), укажите протокол TCP и конкретные локальные порты. В действии выберите "Разрешить подключение" (Allow the connection). На этапе профилей (Domain, Private, Public) будьте осторожны: для серверов баз данных профиль "Public" (Общественный) лучше не включать, если только сервер не находится в демилитаризованной зоне с дополнительной защитой.

Для удобства администрирования можно создать одно правило, охватывающее сразу несколько портов, перечислив их через запятую, или использовать диапазон через дефис (например, 50000-51000). Имя правила должно быть понятным, например, "1C_SQL_DB_Access", чтобы при аудите безопасности было ясно его назначение.

☑️ Проверка правил Firewall

Выполнено: 0 / 5

Не забудьте проверить правила и для исходящего трафика, хотя по умолчанию Windows разрешает все исходящие подключения. В жестких политиках безопасности может потребоваться явное разрешение ответов от SQL сервера к серверу 1С.

Диагностика и проверка доступности портов

После настройки правил недостаточно просто надеяться на успех. Необходимо провести верификацию. Стандартный инструмент telnet часто не установлен на современных серверах по умолчанию, поэтому удобнее использовать PowerShell. Команда Test-NetConnection позволяет быстро проверить доступность конкретного порта с клиента или другого сервера.

Test-NetConnection -ComputerName "SQL_Server_Name" -Port 1433

Если команда возвращает True (TcpTestSucceeded : True), значит порт открыт и пакеты проходят. Если False, проверьте, не блокирует ли соединение антивирус третьей стороны (Kaspersky, ESET, Dr.Web), который может иметь свой собственный сетевой экран, игнорирующий настройки Windows Firewall.

Также полезно использовать утилиту netstat непосредственно на сервере, чтобы убедиться, что службы действительно слушают ожидаемые интерфейсы. Команда netstat -an | findstr "1433" покажет, привязан ли SQL к конкретному IP-адресу или ко всем доступным интерфейсам (0.0.0.0).

Что делать, если Telnet не работает?

Если команда telnet не найдена, установите компонент "Клиент Telnet" через "Панель управления" -> "Программы и компоненты" -> "Включение компонентов Windows". Однако метод PowerShell является более современным и информативным.

Особенности работы в доменной среде и кластерах

В доменной среде Active Directory управление правилами Firewall может быть централизовано через Групповые политики (GPO). Это предпочтительный метод для крупных инфраструктур, так как он гарантирует единообразие настроек на всех узлах. Однако при применении GPO локальные правила могут быть перезаписаны, поэтому проверяйте приоритет политик.

Если вы используете отказоустойчивый кластер SQL Server (Always On или Failover Cluster), ситуация усложняется. Виртуальное имя кластера (VIP) может мигрировать между узлами, и правила Firewall должны быть применены ко всем возможным узлам кластера идентично. Кроме того, для репликации между узлами кластера требуются дополнительные порты (обычно 5022 для зеркального отражения базы данных).

Для среды 1С важно учитывать, что при переключении узла кластера SQL сессии пользователей могут разорваться. Настройка таймаутов в 1С и правильная конфигурация сетевых адаптеров кластера помогают минимизировать простои. Всегда проверяйте, что брандмауэр не блокирует служебный трафик кластера (RPC, Kerberos).

⚠️ Внимание: Конфигурация портов для кластерных решений SQL Server отличается от одиночных экземпляров. Обязательно сверьтесь с официальной документацией Microsoft по портам для Always On Availability Groups перед внесением изменений в продакшн.

💡

Централизованное управление правилами через GPO снижает риск человеческой ошибки, но требует тщательного тестирования перед массовым внедрением на все серверы домена.

Часто задаваемые вопросы (FAQ)

Можно ли просто отключить брандмауэр для проверки работы 1С?

Технически да, это поможет быстро диагностировать, проблема ли в сетях. Однако оставлять брандмауэр выключенным на сервере с базой данных 1С категорически запрещено из соображений безопасности. Используйте этот метод только на 1-2 минуты для теста в изолированной среде.

Какой порт использует веб-сервер для 1С:Предприятие?

Для веб-клиента 1С используется стандартный HTTP порт 80 или защищенный HTTPS порт 443. Эти порты должны быть открыты на сервере, где установлен IIS или Apache, чтобы пользователи могли заходить в базу через браузер.

Почему 1С подключается медленно, хотя порты открыты?

Медленное подключение часто связано не с блокировкой порта, а с попыткойresolve имени сервера. Попробуйте в строке подключения 1С использовать IP-адрес сервера вместо имени. Также проверьте настройки DNS и файл hosts на отсутствие дубликатов записей.

Нужно ли открывать порты для службы лицензирования 1С?

Да, если сервер лицензий стоит отдельно. Он использует порт 80 (по умолчанию) или порт, указанный в настройках сервера лицензий (часто 8080 или 8081). Без доступа к этому порту пользователи не смогут запустить 1С в режиме предприятия.

Как открыть порты для SQL Server Express?

Для версии Express часто используется именованный экземпляр. Вам нужно открыть UDP порт 1434 для службы браузера и найти динамический порт экземпляра через журнал SQL, после чего открыть именно его в Firewall, либо зафиксировать его статически.