Консоль администрирования, rac и SSH: три способа управлять кластером 1С

· 10 мин

Содержание

Чтобы подключить консоль к серверу 1С, зарегистрируйте radmin.dll той же версии, что и сервер, откройте «Администрирование серверов 1С Предприятия» и добавьте центральный сервер по имени и порту агента 1540. Для командной строки нужна другая пара: служба ras на сервере (порт 1545) и утилита rac на вашей машине.

Частая ошибка — ставить на рабочее место «какую-нибудь» платформу и ждать, что оснастка увидит кластер. Не увидит: консоль, rac и сервер должны совпадать по номеру версии вплоть до сборки. Всё, что описано ниже, относится к платформе 8.3 и одинаково для любой конфигурации — БП, ЗУП, УТ или ERP.

Зачем администратору консоль сервера 1С

Клиент-серверная база живёт не в файле, а в кластере. Посмотреть, что там происходит, без консоли нельзя. Через неё делают ежедневную работу:

  • 👥 смотрят сеансы и соединения, завершают «зависшие»;
  • 🔒 ставят блокировку сеансов и регламентных заданий перед обновлением;
  • 🗄️ регистрируют новые информационные базы и меняют их параметры подключения к СУБД;
  • ⚙️ следят за рабочими процессами: память, число соединений, перезапуски;
  • 🧾 проверяют, кто из пользователей занял лицензию и какую;
  • 🛡️ задают администраторов кластера и требования назначения функциональности.

Управлять сервером можно с той же машины, где он стоит, или удалённо. Удалённый вариант удобнее, но требует открытых портов и одинаковой версии на обеих сторонах.

Способы подключения консоли к серверу 1С: что выбрать

У платформы два независимых канала управления. Они ходят на разные порты и не заменяют друг друга.

СпособЧто нужно на клиентеПорт на сервереКогда удобен
Оснастка MMCWindows, платформа той же версии, зарегистрированный radmin.dll1540 (агент), 1541, диапазон рабочих процессовРучная работа, наглядный список сеансов и баз
Утилита racrac той же версии (входит в дистрибутив платформы)1545 (служба ras)Скрипты, Linux, массовые операции
PowerShellrac или COM-объект V83.COMConnector1545 или 1540Автоматизация на Windows, отчёты по сеансам
SSH на Linux-серверSSH-клиент22Сервер на Linux, порты 1С наружу закрыты

Консоль общается с агентом сервера (ragent) на порту 1540. Дальше агент передаёт её менеджеру кластера на 1541 и рабочим процессам. Их диапазон задают в свойствах рабочего сервера, по умолчанию это 1560:1591.

rac устроена иначе: она не умеет говорить с агентом напрямую. Ей нужен посредник — сервер администрирования ras, который сам подключается к агенту.

Как подключить консоль MMC к серверу 1С на Windows

Это главный сценарий. Без регистрации библиотеки он не работает , поэтому начинаем с неё.

Шаг 1. Поставьте платформу нужной версии

Узнайте версию сервера: откройте services.msc, свойства службы агента сервера 1С — номер сборки виден в пути к исполняемому файлу ragent.exe. На рабочем месте администратора установите ту же сборку. При установке отметьте компонент «Администрирование сервера 1С:Предприятия».

Разрядность имеет значение. 64-битная платформа даёт 64-битную библиотеку, и открывать её нужно в 64-битной MMC. Для 32-битной библиотеки консоль запускают командой mmc /32.

Шаг 2. Зарегистрируйте radmin.dll

Это тот самый шаг, который пропускают чаще всего. Особенно после обновления сервера: платформу обновили, а библиотеку консоли на ноутбуке администратора — нет.

Откройте командную строку от имени администратора и выполните:

regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\radmin.dll"

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

💡 Удобно держать на рабочем столе несколько .bat-файлов — по одному на каждую версию сервера, который вы администрируете. Двойной щелчок от имени администратора, и консоль готова к нужному кластеру.

Шаг 3. Добавьте центральный сервер

  1. Откройте в меню «Пуск» ярлык «Администрирование серверов 1С Предприятия».
  2. В дереве слева щёлкните правой кнопкой по узлу «Central 1C:Enterprise 8.3 servers».
  3. Выберите Создать → Центральный сервер 1С:Предприятия 8.3.
  4. В поле «Имя» укажите сетевое имя или IP-адрес сервера, протокол TCP, порт 1540.
  5. Нажмите «ОК» и раскройте добавленный узел.

Если в кластере заданы администраторы, консоль спросит логин и пароль при раскрытии узла «Кластеры». Подключение запоминается в файле оснастки, при следующем запуске вводить адрес заново не нужно.

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

Подключение к серверу 1С через утилиту rac и службу ras

rac нужна, когда графической консоли нет или действия надо повторять скриптом. Работает в Windows и Linux одинаково.

Запустите ras на сервере

Для разовой проверки достаточно запустить её в консоли сервера:

"C:\Program Files\1cv8\8.3.24.1548\bin\ras.exe" cluster --port=1545 localhost:1540

Для постоянной работы оформите ras службой Windows:

sc create "1C:Enterprise 8.3 Remote Server" binPath= "\"C:\Program Files\1cv8\8.3.24.1548\bin\ras.exe\" cluster --service --port=1545 localhost:1540" DisplayName= "Сервер администрирования 1С 8.3" start= auto
sc start "1C:Enterprise 8.3 Remote Server"

Пробелы после binPath=, DisplayName= и start= обязательны — так устроен синтаксис sc. После обновления платформы путь в службе придётся поменять, иначе ras останется на старой версии.

Подключитесь утилитой rac

Формат команды: rac [адрес:порт] команда. Без адреса утилита идёт на localhost:1545.

rac srv-1c:1545 cluster list

Ответ — блок полей, первым идёт cluster с идентификатором вида 4a8e3e5c-.... Его подставляют во все дальнейшие команды:

rac srv-1c:1545 infobase summary list --cluster=4a8e3e5c-...
rac srv-1c:1545 session list --cluster=4a8e3e5c-...
rac srv-1c:1545 process list --cluster=4a8e3e5c-...

Если у кластера есть администратор, добавьте --cluster-user=Имя --cluster-pwd=Пароль. Полный перечень режимов и параметров выводит rac help, а справку по конкретному режиму — например, rac help session.

Проверка перед первым запуском rac
Выполнено: 0 / 5

Управление сервером 1С из PowerShell

Готового модуля от фирмы 1С для PowerShell нет. Рабочих путей два: вызывать rac и разбирать его вывод либо подключаться к агенту через COM.

Вариант через rac

Вывод rac — блоки строк поле : значение, разделённые пустой строкой. Их несложно превратить в объекты:

$rac = "C:\Program Files\1cv8\8.3.24.1548\bin\rac.exe"
$srv = "srv-1c:1545"

function Convert-RacOutput($lines) {
    $obj = [ordered]@{}
    foreach ($line in $lines) {
        if ([string]::IsNullOrWhiteSpace($line)) {
            if ($obj.Count) { [pscustomobject]$obj; $obj = [ordered]@{} }
            continue
        }
        $k, $v = $line -split '\s*:\s*', 2
        $obj[$k.Trim()] = $v
    }
    if ($obj.Count) { [pscustomobject]$obj }
}

$cluster = (Convert-RacOutput (& $rac $srv cluster list))[0].cluster
Convert-RacOutput (& $rac $srv session list --cluster=$cluster) |
    Select-Object user-name, host, app-id, started-at

Так за минуту собирается список «кто сейчас в базе» для рассылки перед обновлением.

Вариант через COM-соединитель

Если зарегистрирован comcntr.dll, к агенту можно подключиться напрямую, без ras:

$com   = New-Object -ComObject "V83.COMConnector"
$agent = $com.ConnectAgent("tcp://srv-1c:1540")
$cl    = $agent.GetClusters()[0]
$agent.Authenticate($cl, "", "")
$agent.GetSessions($cl) | Select-Object UserName, Host, AppID

Пустые строки в Authenticate — если администраторы кластера не заданы. Разрядность PowerShell должна совпадать с разрядностью зарегистрированного comcntr.dll.

Как подключиться к серверу 1С на Linux через SSH

На Linux графической консоли нет. Есть два рабочих подхода.

Работать с rac прямо на сервере

Зайдите по SSH и запустите утилиту из каталога платформы. В свежих сборках это /opt/1cv8/x86_64/8.3.xx.xxxx/, в старых — /opt/1C/v8.3/x86_64/.

ssh admin@srv-1c
cd /opt/1cv8/x86_64/8.3.24.1548
./ras cluster --daemon --port=1545 localhost:1540
./rac cluster list

Для постоянной работы ras лучше оформить юнитом systemd, чтобы служба поднималась после перезагрузки вместе с агентом.

Пробросить порт ras через SSH-туннель

Порты 1С на сервере не открыты наружу, а управлять хочется с ноутбука. Пробросьте только 1545:

ssh -N -L 1545:localhost:1545 admin@srv-1c

Теперь в соседнем окне rac localhost:1545 cluster list работает так, будто сервер рядом. Трафик идёт внутри SSH-сессии.

С оснасткой MMC такой туннель работает плохо. Агент отдаёт консоли адреса менеджера кластера и рабочих процессов по имени хоста, и их тоже пришлось бы пробрасывать. Для Linux-сервера надёжнее схема «ras на сервере + rac через туннель».

Права доступа: кто может управлять кластером 1С

Пока список администраторов пуст, управлять кластером может любой, кто достучался до порта. Для сервера в рабочей сети это недопустимо.

В платформе два уровня:

  • 🏢 Администраторы центрального сервера — управляют самим агентом: создают и удаляют кластеры, добавляют рабочие серверы. Список виден командой rac agent admin list.
  • 🧩 Администраторы кластера — работают внутри кластера: базы, сеансы, процессы. Список — rac cluster admin list --cluster=<UUID>.

В консоли MMC они добавляются в ветках «Администраторы» соответствующего узла. Можно задать пароль 1С или включить аутентификацию средствами ОС — тогда консоль пустит доменного пользователя без ввода пароля.

Как только вы добавили первого администратора кластера, все подключения без логина перестают работать. Это касается и скриптов: заранее пропишите в них --cluster-user и --cluster-pwd, иначе ночное резервное копирование или блокировка сеансов сломается молча.

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

Ошибки при подключении консоли и как их снять

Диагностика: выберите симптом

Проверить доступность портов с рабочей станции можно без сторонних утилит:

Test-NetConnection srv-1c -Port 1540
Test-NetConnection srv-1c -Port 1545

TcpTestSucceeded : True — порт открыт. False при запущенной службе — ищите блокировку на брандмауэре сервера или в сети.

Совет «перезапустить службу агента» встречается часто. Помните: при остановке агента обрываются все сеансы пользователей, несохранённые документы будут потеряны. Делайте это вне рабочего времени и после предупреждения.

Безопасность удалённого управления сервером 1С

Консоль даёт полный контроль над базами, поэтому доступ к ней стоит ограничить.

  1. Задайте администраторов центрального сервера и кластера с надёжными паролями или доменной аутентификацией.
  2. Закройте порты 1С снаружи. 1540, 1541, 1545 и диапазон процессов открывайте только для подсети администраторов и серверов приложений.
  3. Не публикуйте ras в интернет. Для удалённой работы — VPN или SSH-туннель, как описано выше.
  4. Запускайте ras на localhost, если rac используется только локально или через туннель.
  5. Храните пароли для скриптов отдельно, например в защищённом хранилище учётных данных Windows, а не открытым текстом в .bat.
  6. Делайте копию каталога реестра кластера (srvinfo) по расписанию — она спасёт при утере паролей и повреждении настроек.

Частые вопросы

Можно ли одной консолью управлять серверами разных версий?
Одновременно — нет: зарегистрирована может быть одна версия radmin.dll. Перед подключением к другому серверу перерегистрируйте библиотеку нужной сборки.
Нужна ли лицензия 1С на компьютер, с которого работает консоль?
Нет. Консоль администрирования и rac не занимают клиентскую лицензию, лицензия нужна только для запуска информационной базы.
Чем ras отличается от ragent?
ragent — агент сервера, без него кластер не работает. ras — отдельный сервер администрирования, посредник для rac. Остановка ras не влияет на работу пользователей.
Можно ли подключить консоль к серверу 1С на Linux с Windows-машины?
Да. Оснастка MMC подключается к агенту на Linux так же, как к Windows-серверу, если открыты порты 1540, 1541 и диапазон рабочих процессов, а имя сервера разрешается.
Где найти UUID кластера без консоли?
Командой rac cluster list: в первой строке блока, поле cluster.