Развертывание связки сервера 1С:Предприятие и MS SQL Server — стандартная задача для системного администратора. Однако при первой установке часто возникает неприятная ситуация: SQL-сервер работает, база данных создана, служба 1С запущена, но при попытке подключить или создать информационную базу утилита администрирования или клиентское приложение выдает ошибку: «Порт 1541 недоступен».
В этой статье мы подробно разберем, почему возникает данная проблема, как устроена сетевая архитектура сервера 1С и пошагово проанализируем все способы решения этой ошибки — от простых настроек брандмауэра до исправления скрытых проблем с IPv6 и правами доступа.
Прежде чем приступать к диагностике, давайте разберем, какие порты использует сервер 1С по умолчанию и за какие процессы они отвечают. Это поможет нам локализовать проблему:
ragent.exe (Агент сервера). Этот процесс отвечает за запуск службы и начальное взаимодействие с консолью администрирования.rmngr.exe (Менеджер кластера). Именно к этому порту обращаются клиентские приложения 1С для работы с базой данных. Если этот порт недоступен, работа клиентов невозможна.rphost.exe. В них выполняются непосредственные вычисления и передача данных между клиентом и СУБД.rphost.exe), но не сами клиенты.Если система выдает ошибку о недоступности порта 1541, это означает, что клиентское приложение или консоль администрирования смогли связаться с агентом на порту 1540, но при попытке переключиться на менеджер кластера (порт 1541) получили отказ.
Выясним, запущены ли процессы, которые должны слушать порт 1541. Бывает так, что служба «Агент сервера 1С:Предприятия» имеет статус «Работает», но один из ее ключевых внутренних процессов аварийно завершился.
Откроем Диспетчер задач Windows на сервере (вкладка «Подробности» или «Процессы») и проверим наличие следующих запущенных процессов:
ragent.exermngr.exerphost.exeЕсли в списке процессов вы видите только ragent.exe, а процесс rmngr.exe отсутствует, это означает, что менеджер кластера не смог запуститься. Следовательно, порт 1541 физически некому открыть. В этом случае переходите сразу к Шагу 5 (Сброс настроек кластера) и Шагу 6 (Проверка прав доступа).
Самая очевидная причина блокировки портов — работа сетевых экранов. Даже если брандмауэр Windows отключен, его службы могут частично продолжать фильтрацию трафика, либо на сервере может быть установлено стороннее защитное ПО (Kaspersky, ESET, Symantec и т.д.).
Выполним быструю проверку: временно отключим брандмауэр и защитные экраны антивируса. Если связь восстановилась, необходимо создать правила для входящих подключений.
Рассмотрим, как правильно настроить Брандмауэр Windows через командную строку (PowerShell), запущенную от имени администратора. Для открытия всех необходимых портов выполним следующие команды:
New-NetFirewallRule -DisplayName "1C:Enterprise Agent (1540)" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 1540
New-NetFirewallRule -DisplayName "1C:Enterprise Cluster (1541)" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 1541
New-NetFirewallRule -DisplayName "1C:Enterprise Work Processes (1560-1591)" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 1560-1591
New-NetFirewallRule -DisplayName "MS SQL Server (1433)" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 1433
Если вы используете сторонний антивирус или аппаратный сетевой экран на границе сети, обязательно добавьте аналогичные разрешающие правила для протокола TCP по указанным портам, либо добавьте исполняемые файлы 1С (ragent.exe, rmngr.exe, rphost.exe) в список исключений сетевого экрана.
Проанализируем ситуацию, при которой порт 1541 занят другим приложением или «зависшим» процессом от старой установки 1С. Для этого воспользуемся командной строкой.
Запустим командную строку от имени администратора и выполним команду:
netstat -ano | findstr 1541
Эта команда выведет все активные соединения и прослушиваемые порты, содержащие «1541». Обратите внимание на последний столбец полученной строки — это PID (идентификатор процесса), который занимает данный порт. Например:
TCP 0.0.0.0:1541 0.0.0.0:0 LISTENING 4120
В данном случае порт занят процессом с PID 4120. Теперь откроем Диспетчер задач, перейдем на вкладку «Подробности», отсортируем список по столбцу «ИД процесса» (PID) и найдем программу, которой принадлежит этот идентификатор.
Если этот PID принадлежит не процессу rmngr.exe, значит, стороннее ПО мешает запуску сервера 1С. Вам потребуется либо завершить этот процесс, либо перенастроить порты запуска службы 1С через реестр Windows.
Современные операционные системы (начиная с Windows Server 2008) по умолчанию отдают приоритет протоколу IPv6. При обращении клиента к серверу по его сетевому имени (например, SRV-1C), операционная система пытается разрешить имя через IPv6 и возвращает локальный адрес ::1 вместо привычного IPv4 (например, 192.168.1.100). Платформа 1С:Предприятие в таких условиях часто работает некорректно, сообщая о недоступности портов.
Решим эту проблему по двум направлениям:
1. Настройка файла hosts:
На сервере и на проблемных клиентских компьютерах откроем блокнот от имени администратора и отредактируем файл, расположенный по пути: C:\Windows\System32\drivers\etc\hosts.
Добавим в самый конец файла строку, которая жестко свяжет IPv4-адрес сервера с его сетевым именем:
192.168.1.100 SRV-1C
Вместо 192.168.1.100 укажите реальный IP-адрес вашего сервера, а вместо SRV-1C — его сетевое имя.
2. Отключение IPv6 или перенастройка приоритета:
Зайдем в свойства сетевого адаптера сервера и снимем галочку с пункта «IP версии 6 (TCP/IPv6)». Чтобы полностью отключить IPv6 на уровне операционной системы, откроем Редактор реестра (regedit), перейдем по пути:
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters
Создадим там параметр типа DWORD (32-бит) с именем DisabledComponents и присвоим ему значение 0xFFFFFFFF (или значение 0x20 для установки приоритета IPv4 над IPv6). После изменения реестра потребуется перезагрузить сервер.
Если служба запускается, но процесс rmngr.exe падает или не может открыть порт из-за повреждения файлов настроек кластера, нам поможет полный сброс конфигурации кластера 1С.
Выполним процедуру очистки по шагам:
services.msc) и остановим службу «Агент сервера 1С:Предприятия».C:\Program Files\1cv8\srvinfo (для более старых версий или 32-битных платформ путь может быть C:\Program Files (x86)\1cv82\srvinfo).reg_1541. В этой папке хранятся файлы настроек зарегистрированных баз данных и самого кластера.reg_1541_old (удалять сразу не рекомендуется, чтобы иметь возможность вернуть настройки).При запуске служба автоматически создаст новую чистую папку reg_1541. Процесс rmngr.exe успешно запустится и откроет порт 1541. После этого вам потребуется заново зарегистрировать ваши информационные базы в консоли администрирования 1С.
По умолчанию при установке сервера 1С создается локальный системный пользователь USR1CV8. Именно от его имени запускается служба сервера.
Если у этого пользователя нет полных прав на чтение и запись в системную папку srvinfo, служба не сможет создать временные файлы кластера, логи транзакций и файлы настроек. Это приведет к тому, что менеджер кластера не сможет инициализироваться на порту 1541.
Рассмотрим, как выдать необходимые права доступа:
C:\Program Files\1cv8 (или к тому каталогу, куда вы перенесли папку srvinfo).srvinfo (или по всей папке 1cv8) и выберем «Свойства».USR1CV8 (или добавьте его, если его там нет).Хотя порт 1541 относится к серверу 1С, успешная работа связки невозможна без правильной настройки самого MS SQL Server. По умолчанию после установки SQL Server 2008 протокол TCP/IP может быть отключен, из-за чего рабочие процессы 1С не могут достучаться до СУБД.
Проанализируем конфигурацию SQL Server:
Protocols for MSSQLSERVER).Disabled (Отключено), нажмем по нему правой кнопкой мыши и выберем Enable (Включить).TCP Dynamic Ports (Динамические порты) пустое, а в поле TCP Port указан стандартный порт 1433.SQL Server, чтобы изменения вступили в силу.Выполнив указанные шаги по порядку, мы гарантированно решим проблему с недоступностью порта 1541 и обеспечим стабильное и быстрое взаимодействие между сервером приложений 1С:Предприятие и базой данных под управлением MS SQL Server.