Агент сервера ragent: порты, параметры запуска, журналы и защита
Содержание
Служба агента сервера 1С — это Windows-служба (или systemd-юнит в Linux), которая запускает процесс ragent и держит сервер 1С:Предприятия 8.3 в рабочем состоянии. Агент слушает порт 1540, принимает первое обращение клиента, поднимает менеджер кластера rmngr и рабочие процессы rphost. Если служба остановлена, ни одна клиент-серверная база
на этом сервере не откроется.
Типичная ситуация: утром бухгалтерия звонит с ошибкой «сервер не обнаружен», а на сервере после ночного обновления Windows служба агента просто не стартовала. Чтобы такие случаи разбирать за пять минут, нужно понимать, что делает агент, какие у него параметры и где он пишет следы своей работы.
Что делает служба агента сервера 1С
Агент — верхний уровень сервера 1С. Он не выполняет код конфигурации и не работает с базой данных. Его задачи служебные:
- 🚀 запустить менеджер кластера и рабочие процессы при старте службы;
- 🔀 принять подключение клиента и передать его дальше, в кластер;
- 📋 хранить реестр кластеров этого сервера: какие кластеры есть, на каких портах, кто их администраторы;
- 🛠 обслуживать консоль администрирования серверов 1С и утилиту
rac(через сервер администрированияras); - 🔁 перезапускать упавшие процессы
rmngr.
Данные агента лежат в каталоге службы, по умолчанию C:\Program Files\1cv8\srvinfo. Внутри есть папка reg_1541 (по номеру порта менеджера кластера) с файлом реестра кластера 1CV8Clst.lst, а также каталоги сеансовых данных и кэшей по каждой базе.
Каталог srvinfo — первое, что стоит включить в резервное копирование сервера. В нём список баз кластера, администраторы, требования назначения функциональности. Восстановить их по памяти долго.
На одной машине можно запустить несколько служб агента, например, для двух версий платформы. Каждой нужны свои порты и свой каталог srvinfo.
Как агент сервера связан с кластером и рабочими процессами
Сервер 1С состоит из трёх типов процессов:
| Процесс | Что делает | Порт по умолчанию |
|---|---|---|
ragent.exe | агент сервера: точка входа, реестр кластеров | 1540 |
rmngr.exe | менеджер кластера: сеансы, блокировки, лицензии, распределение нагрузки | 1541 |
rphost.exe | рабочий процесс: выполняет серверный код и запросы к СУБД | из диапазона 1560–1591 |
Порядок подключения клиента такой:
- Клиент обращается к агенту по адресу из строки подключения (
Srvr="server1";Ref="buh";) на порт 1540. - Агент сообщает, какой менеджер кластера обслуживает базу, и клиент идёт на порт 1541.
- Менеджер кластера выбирает рабочий процесс и отдаёт клиенту его порт из диапазона.
- Дальше клиент работает напрямую с
rphost.
Отсюда практический вывод: если открыт только порт 1540, клиент «видит» сервер, но база не открывается. Нужны все три группы портов.
Консоль администрирования тоже подключается через агент. Если консоль на вашем компьютере не открывает сервер, а пользователи при этом работают, проблема обычно в самой консоли. Частый приём — перерегистрировать библиотеку radmin.dll нужной версии платформы командой regsvr32 от имени администратора или файлом RegMSC.cmd из каталога bin.
Порты агента сервера и правила брандмауэра
Основной порт агента — 1540. Менеджер кластера занимает следующий за ним порт реестра, 1541. Рабочие процессы берут порты из диапазона, по умолчанию 1560:1591. Диапазон задаётся в свойствах рабочего сервера в консоли администрирования, а при первом запуске — ключом -range в строке службы.
Дополнительно встречаются:
- 🔧 1545 — сервер администрирования
ras, если вы управляете кластером черезrac; - 🐞 порт сервера отладки, если служба запущена с ключом
-debugв режиме отладки по HTTP.
Правило для брандмауэра Windows, которое открывает порты только для локальной сети:
netsh advfirewall firewall add rule name="1C Server 8.3" dir=in action=allow protocol=TCP localport=1540-1541,1560-1591 remoteip=192.168.0.0/16
Подставьте свою подсеть. Если пользователи подключаются через VPN, добавьте подсеть VPN через запятую в remoteip.
Диапазона 1560–1591 хватает на десятки рабочих процессов. Сужать его ради «безопасности» не нужно: при нехватке портов новые процессы не стартуют, и пользователи получают ошибки подключения.
Параметры запуска и настройка службы агента
Все настройки самого агента — это ключи командной строки в свойствах службы. Отдельного файла настроек у агента нет.
Где посмотреть текущую строку запуска
Откройте services.msc, найдите службу «1C:Enterprise 8.3 Server Agent» (в 64-разрядной версии в названии есть x86-64), откройте свойства. В поле «Исполняемый файл» будет примерно так:
"C:\Program Files\1cv8\8.3.24.1467\bin\ragent.exe" -debug -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
Значение ключей:
| Ключ | Что задаёт |
|---|---|
-srvc | запуск в режиме службы Windows |
-agent | запуск в роли агента сервера |
-port | основной порт агента, по умолчанию 1540 |
-regport | порт менеджера кластера, по умолчанию 1541 |
-range | диапазон портов рабочих процессов при первом запуске |
-d | каталог данных службы (srvinfo) |
-debug | разрешает отладку конфигураций на этом сервере |
-seclev | уровень защищённого соединения: 0, 1 или 2 |
Как изменить порт агента или запустить второй сервер
Типовая схема для второго сервера на той же машине — сдвинуть всё на тысячу: 2540, 2541 и 2560:2591.
- Предупредите пользователей: при перезапуске службы все сеансы на этом сервере оборвутся. Делайте это вне рабочего времени.
- Остановите службу агента.
- Зарегистрируйте службу заново с нужными портами. Удобнее всего штатными ключами
ragent:
cd "C:\Program Files\1cv8\8.3.24.1467\bin"
ragent.exe -rmsrvc
ragent.exe -instsrvc -usr .\USR1CV8 -pwd "Пароль" -port 2540 -regport 2541 -range 2560:2591 -d "D:\srvinfo2"
ragent.exe -start
- В строке подключения клиентов укажите порт:
Srvr="server1:2540";Ref="buh";.
Если вы меняете порты у существующего сервера с прежним каталогом srvinfo, кластер в реестре останется на старом порту 1541. Порт кластера потом меняют в консоли администрирования, а проще поднять новый кластер в чистом каталоге и зарегистрировать в нём базы.
Учётная запись службы
Установщик по умолчанию создаёт пользователя USR1CV8. Ему нужны право «Вход в систему как служба» и полный доступ к каталогу srvinfo и к папке, куда пишется технологический журнал. Запускать службу от локального администратора или LocalSystem удобно, но небезопасно: серверный код конфигурации будет выполняться с полными правами на машине.
Служба в Linux
В свежих версиях платформы для Linux вместе с сервером ставится шаблон systemd-юнита в каталоге версии, например, /opt/1cv8/x86_64/8.3.24.1467/. Его подключают командой systemctl link, затем включают экземпляр @default. Ключи запуска те же, что в Windows: порты, диапазон, каталог данных. Менять их лучше через systemctl edit, чтобы обновление платформы
не затёрло правку.
Подключения, тайм-ауты и производительность: что настраивается не в агенте
У агента нет параметра «максимум подключений» или «тайм-аут ответа рабочего процесса». Эти вещи регулируются уровнем ниже, в свойствах кластера и рабочего сервера в консоли администрирования.
В свойствах рабочего сервера:
- 👥 «Количество ИБ на процесс» и «Количество соединений на процесс» — как распределяются базы и пользователи по
rphost; - 🧠 «Максимальный объём памяти рабочих процессов» и «Безопасный расход памяти за один вызов» — защита от вызова, который съедает всю память;
- 🔢 диапазон портов рабочих процессов.
В свойствах кластера:
- ♻️ «Интервал перезапуска» — плановый перезапуск рабочих процессов, полезен при утечках памяти;
- ⏳ «Допустимый объём памяти» и «Интервал превышения допустимого объёма памяти» — когда процесс считается проблемным;
- 🛑 «Принудительно завершать проблемные процессы»;
- 🔒 «Защищённое соединение» — шифрование обмена клиента с кластером.
Агент на производительность почти не влияет: он участвует только в первом шаге подключения. Если сервер «тормозит», смотрите на память и количество рабочих процессов, на СУБД и на управляемые блокировки, а не на настройки службы.
Одно исключение — ключ -debug. На рабочем сервере отладку держат выключенной: она добавляет накладные расходы и открывает возможность подключиться к
сеансам отладчиком. Включайте её на время разбора проблемы.
Журналы агента: где искать причину сбоя
Отдельного «уровня логирования от 0 до 4» у агента нет. Следы его работы ищут в трёх местах.
- Журнал Windows «Приложение». Сюда пишутся ошибки старта службы: занятый порт, нет доступа к каталогу, неверный пароль учётной записи.
- Технологический журнал 1С. Настраивается файлом
logcfg.xmlв каталогеconfплатформы, например,C:\Program Files\1cv8\conf\. Детализацию задают набором событий: от одних исключений до полного протокола вызовов. - Консоль администрирования. Список рабочих процессов, их память и состояние; по нему видно, что
rphostперезапускается по кругу.
Минимальная настройка технологического журнала, которая пишет только исключения и хранит их сутки:
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="D:\1c_logs" history="24">
<event>
<eq property="name" value="EXCP"/>
</event>
<property name="all"/>
</log>
</config>
Платформа подхватывает изменения файла сама, перезапуск службы не нужен. Папке D:\1c_logs дайте права на запись учётной записи службы.
Подробный журнал (все события, все свойства) на нагруженном сервере за час набирает гигабайты. Включайте его на время диагностики и следите за местом на диске.
Как защитить службу агента сервера
Агент принимает соединения от кого угодно, кто достучится до порта 1540. Поэтому защита строится в несколько слоёв.
- Сеть. Порты 1540–1541 и 1560–1591 открывают только для локальной сети и подсети VPN. Пробрасывать их в интернет нельзя: для удалённой работы есть VPN, веб-публикация или терминальный сервер .
- Администраторы агента. В консоли администрирования раскройте сервер, в узле «Администраторы» создайте хотя бы одного администратора центрального сервера. Пока список пуст, управлять агентом может любой, кто подключится консолью.
- Администраторы кластера. Отдельный список в узле кластера. Без него любой может удалить базу из кластера или завершить сеансы.
- Учётная запись службы без прав администратора Windows, как описано выше.
- Защищённое соединение. Ключ
-seclevу агента и свойство кластера «Защищённое соединение»: 1 — шифруется только аутентификация, 2 — весь обмен. Шифрование добавляет нагрузку на процессор, для локальной сети обычно хватает уровня 1. - Антивирус. Добавьте каталог
srvinfoв исключения сканирования: проверка каждого обращения к сеансовым данным замедляет работу и иногда блокирует файлы.
Отдельных параметров «путь к сертификату» и «путь к закрытому ключу» у службы агента нет. Сертификаты нужны там, где работает HTTPS: при публикации базы на веб-сервере IIS или Apache для веб-клиента и HTTP-сервисов. Их настраивают в самом веб-сервере, а не в ragent.
Если пароль администратора кластера утерян, не удаляйте кластер. Остановите службу (сеансы пользователей прервутся, делайте это вне рабочего времени) и верните файл 1CV8Clst.lst из резервной копии srvinfo либо обратитесь к администратору, который его настраивал.
Сбои службы агента: симптомы и что делать
netstat -ano | findstr 1540, по PID найдите процесс в диспетчере задач. Вторая причина — у учётной записи службы нет прав на каталог srvinfo или истёк её пароль.Test-NetConnection server1 -Port 1540 в PowerShell.ragent.exe. Перерегистрируйте службу из каталога bin новой версии.После обновления платформы проверьте ещё одну мелочь: в каталоге srvinfo старой версии могли остаться процессы, которые держат порты. Перезагрузка сервера в окно обслуживания снимает этот вопрос, но о ней тоже заранее предупреждают пользователей.
Частые вопросы
Можно ли запустить сервер 1С без службы, вручную?
ragent.exe без ключа -srvc работает как обычное приложение, пока открыт сеанс пользователя Windows. Для отладки это удобно, для рабочего сервера нет: после выхода из системы сервер остановится.Сколько служб агента можно держать на одном сервере?
Нужна ли отдельная лицензия на службу агента?
Как узнать, какая версия платформы у работающей службы?
ragent.exe в свойствах службы: номер версии входит в путь к каталогу bin. Его же видно в консоли администрирования в свойствах рабочих процессов.Можно ли перенести каталог srvinfo на другой диск?
-d и запустите её. Сеансы на время переноса прервутся.