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

· 9 мин

Содержание

Порт сервера 1С 8.3 меняют не в консоли, а в параметрах запуска службы агента: ключи -port (агент, по умолчанию 1540), -regport (менеджер кластера, 1541) и -range (рабочие процессы, 1560:1591). В Windows это строка ImagePath службы в реестре, в Linux — переменные или строка ExecStart юнита systemd. После правки службу перезапускают, открывают новые порты в брандмауэре и меняют адрес сервера у клиентов.

Есть два сценария. Если нужно сменить только диапазон рабочих процессов, хватит консоли кластера. Если меняется порт агента или менеджера — правьте службу, это затронет всех пользователей. Третий вариант — оставить старый экземпляр как есть и поднять рядом второй на портах 2540/2541. Его выбирают, когда на одной машине нужны две версии платформы.

1. Какие порты занимает сервер 1С и как выбрать новые

У сервера 1С:Предприятия три группы портов. Их полезно выписать до начала работ.

КомпонентКлюч запускаПо умолчаниюКто к нему обращается
Агент сервера (ragent)-port1540Консоль кластера, ras, клиенты
Менеджер кластера (rmngr)-regport1541Клиенты, рабочие процессы
Рабочие процессы (rphost)-range1560:1591Клиенты в ходе сеанса
Сервер администрирования (ras)--port1545Утилита rac
Сервер отладкивключается ключом -debug1550Конфигуратор при отладке

Текущие значения видно в свойствах службы. Откройте services.msc, найдите службу «Агент сервера 1С:Предприятия 8.3» и посмотрите поле «Исполняемый файл». Строка выглядит примерно так:

"C:\Program Files\1cv8\8.3.24.1342\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug

Как подобрать свободные порты

Принято сдвигать всю группу на сотню или тысячу: 1640/1641/1660:1691 или 2540/2541/2560:2591. Так проще запомнить и описать правило брандмауэра одним диапазоном.

Проверьте, что новые порты никто не слушает:

netstat -ano | findstr ":2540 :2541 :2545"

Пустой вывод — порты свободны. Если строка есть, по номеру процесса (последний столбец) найдите программу в диспетчере задач на вкладке «Подробности».

💡 Диапазон рабочих процессов берите с запасом. Каждому rphost нужен свой порт, плюс служебные соединения. 30 портов хватает на небольшой сервер, для нагруженного делают 60–100.

2. Подготовка: окно работ, остановка службы и копия srvinfo

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

Порядок подготовки:

  1. Попросите пользователей выйти из баз. Проверьте в консоли кластера раздел «Сеансы» у каждой базы — там должно остаться пусто или только ваши сеансы.
  2. Остановите регламентные задания, если они крутятся ночью: обмены, выгрузки, резервное копирование через 1С.
  3. Остановите службу агента. В командной строке от имени администратора:
net stop "1C:Enterprise 8.3 Server Agent (x86-64)"

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

  1. Скопируйте каталог srvinfo целиком в другое место. В нём лежит реестр кластера: список баз, рабочих серверов, администраторов.

Сами информационные базы при смене портов не трогаются — данные остаются в СУБД. Но без копии srvinfo откатиться будет сложнее: при ошибке в ключах агент может поднять пустой реестр.

Почему важна папка reg_1541

Внутри srvinfo есть каталог с именем reg_1541. Число в названии совпадает со значением -regport. Агент ищет реестр кластера именно по этому имени.

Если вы меняете -regport на 2541, переименуйте папку в reg_2541. Иначе агент стартует, но кластера со списком баз в консоли не окажется. Это самая частая причина фразы «после смены порта пропали все базы».

3. Смена порта службы агента в Windows и Linux

Самый прямой способ — исправить строку запуска службы. Это можно сделать через реестр или через sc.

Windows: через редактор реестра

  1. Откройте regedit.
  2. Перейдите в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services и найдите раздел с именем службы агента 1С.
  3. Откройте параметр ImagePath.
  4. Замените номера после -port, -regport и -range. Кавычки и остальные ключи не трогайте.
  5. Переименуйте папку srvinfo\reg_1541 в reg_<новый regport>.
  6. Запустите службу: net start "<имя службы>".

Windows: через командную строку sc

Удобно, если сервер без графической оболочки или правка идёт скриптом. Пробел после binPath= обязателен, внутренние кавычки экранируются:

sc config "1C:Enterprise 8.3 Server Agent (x86-64)" binPath= "\"C:\Program Files\1cv8\8.3.24.1342\bin\ragent.exe\" -srvc -agent -regport 2541 -port 2540 -range 2560:2591 -d \"C:\Program Files\1cv8\srvinfo\" -debug"

Путь к ragent.exe и номер платформы подставьте свои. Перепроверьте строку в services.msc перед запуском.

Регистрация службы заново

Если служба повреждена или вы ставите второй экземпляр, её регистрируют из каталога bin нужной версии платформы:

ragent.exe -instsrvc -usr ".\USR1CV8" -pwd "пароль" -regport 2541 -port 2540 -range 2560:2591 -d "D:\srvinfo2541"

Для второго экземпляра обязательно указывайте отдельный каталог -d. Два агента с одной папкой srvinfo будут мешать друг другу.

После обновления платформы установщик может создать службу заново со стандартными портами. Сверяйте строку запуска после каждого обновления сервера.

Linux: переменные службы и юнит systemd

На Linux параметры те же, меняется только место, где их задают.

В сборках со старым init-скриптом порты лежат в файле /etc/sysconfig/srv1cv83 (Red Hat-подобные системы) или /etc/default/srv1cv83 (Debian, Ubuntu). Нужные переменные: SRV1CV8_PORT, SRV1CV8_REGPORT, SRV1CV8_RANGE.

В новых сборках платформы служба оформлена юнитом systemd вида srv1cv8-8.3.xx.xxxx@.service. Откройте его и посмотрите строку ExecStart: порты либо прописаны в ней явно, либо подставляются из переменных окружения. Правьте не исходный файл, а переопределение:

sudo systemctl edit srv1cv8-8.3.24.1342@default

В открывшемся редакторе задайте новые значения переменных или переопределите ExecStart, затем:

sudo systemctl daemon-reload
sudo systemctl restart srv1cv8-8.3.24.1342@default
ss -tlnp | grep -E '2540|2541'

Последняя команда покажет, слушает ли процесс новые порты. Каталог reg_<порт> переименовывается так же, как в Windows. Где он лежит, видно по ключу -d или переменной SRV1CV8_DATA в описании службы.

4. Диапазон рабочих процессов в консоли кластера

Диапазон портов rphost меняется без правки службы — в свойствах рабочего сервера.

  1. Откройте «Администрирование серверов 1С Предприятия».
  2. Если порт агента уже изменён, удалите старую запись центрального сервера и добавьте новую: имя компьютера и новый IP-порт агента, например 2540.
  3. Раскройте кластер → «Рабочие серверы» → свойства нужного сервера.
  4. В поле «Диапазоны IP портов» укажите новый диапазон, например 2560:2591.
  5. Сохраните и перезапустите рабочие процессы.

Перезапуск рабочих процессов обрывает сеансы, которые на них работают. Делайте это тоже в окне работ.

Если консоль не открывается после обновления платформы, перерегистрируйте её библиотеку из каталога bin нужной версии: regsvr32 radmin.dll. Версия консоли должна совпадать с версией сервера.

5. Сервер администрирования ras и утилита rac

Консоль на Windows подключается к агенту напрямую. А утилита rac и сторонние панели мониторинга ходят через ras. Ему нужно знать новый порт агента.

Запуск вручную:

ras.exe cluster --port=2545 localhost:2540

Регистрация ras службой Windows:

sc create "1C:Enterprise 8.3 Remote Server" binPath= "\"C:\Program Files\1cv8\8.3.24.1342\bin\ras.exe\" cluster --service --port=2545 localhost:2540" start= auto

Если ras уже стоял службой, поправьте его строку запуска так же через sc config. Иначе после смены порта агента rac будет отвечать ошибкой соединения.

Проверка, что всё сходится:

rac.exe localhost:2545 cluster list

Команда выведет кластер с новым портом в поле port. Список рабочих серверов покажет rac.exe localhost:2545 server list --cluster=<id кластера>. Остальные подкоманды смотрите в справке rac help.

6. Брандмауэр: какие порты открыть на сервере 1С

Новые порты нужно разрешить на входящие соединения. Старые правила после проверки удалите.

Для Windows одной командой:

netsh advfirewall firewall add rule name="1C Server 2540-2591" dir=in action=allow protocol=TCP localport=2540-2541,2545,2560-2591

Для Linux с ufw:

sudo ufw allow 2540:2541/tcp
sudo ufw allow 2560:2591/tcp

Порт ras (2545) открывайте наружу, только если rac запускают с другой машины. Иначе пусть слушает локально.

Помните про промежуточные устройства. Аппаратный межсетевой экран, правила на маршрутизаторе филиала, VPN-шлюз — везде, где раньше было 1540–1591, нужен новый диапазон.

7. Клиенты, веб-публикации и скрипты после смены порта

Клиент указывает порт кластера — тот, что раньше был 1541. Без явного порта платформа подставит 1541 и не найдёт сервер.

Список баз у пользователей

В окне запуска выделите базу → «Изменить» → поле «Кластер серверов 1С:Предприятия». Впишите адрес с портом через двоеточие: srv1c:2541. Имя базы не меняется.

Если баз и рабочих мест много, правьте общий файл списка. Строка подключения в .v8i выглядит так:

Connect=Srvr="srv1c:2541";Ref="buh";

Общий список подключают через 1CEStart.cfg параметром CommonInfoBases. Поправьте один файл на сетевой папке — изменения увидят все.

Что ещё ссылается на старый порт

  • 🌐 Веб-публикации: в default.vrd в атрибуте ib есть Srvr=&quot;srv1c&quot;. Добавьте порт и перезапустите веб-сервер.
  • 🗂 Пакетные скрипты: в ключе /S пишите srv1c:2541\buh.
  • 🔌 COM-соединения и внешние обработки: строка Srvr="srv1c:2541";Ref="buh".
  • 🖥 Ярлыки RemoteApp и терминальные профили, где база прописана вручную.
  • 📦 Скрипты резервного копирования и обновления через 1cv8 DESIGNER.

Удобно найти всё сразу поиском по строке Srvr= в каталогах публикаций, скриптов и общих списков баз.

8. Диагностика: сервер не отвечает на новом порту

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

Как откатиться

Если за окно работ не удалось всё запустить, верните старые значения:

  1. Остановите службу агента.
  2. Восстановите прежнюю строку ImagePath или выполните sc config со старыми портами.
  3. Верните папке исходное имя reg_1541 или подложите копию srvinfo.
  4. Запустите службу и проверьте вход в одну базу.

Клиенты со старым адресом снова начнут работать без правок.

Проверка доступности порта с рабочего места

С компьютера пользователя выполните в PowerShell:

Test-NetConnection srv1c -Port 2541

TcpTestSucceeded : True значит, что сеть и брандмауэр пропускают. Проверьте так же порт агента и пару портов из диапазона рабочих процессов, когда на них есть активные rphost.

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

Можно ли держать на одном компьютере два сервера 1С?
Да. Каждый экземпляр регистрируют отдельной службой со своими портами и своим каталогом -d. Обычно так запускают две версии платформы, например рабочую и тестовую.
Нужна ли отдельная лицензия при смене порта?
Нет. Лицензия сервера привязана к компьютеру, а не к номеру порта. Если меняются только ключи запуска службы, повторная активация не требуется.
Почему клиент указывает 2541, а не 2540?
В строке подключения пишут порт кластера. Порт агента нужен консоли администрирования и серверу ras.
Влияет ли смена порта на СУБД?
Нет. PostgreSQL или MS SQL Server работают на своих портах, их настройки не меняются. Меняется только то, как клиенты находят сервер 1С.
Нужно ли менять порт сервера отладки 1550?
Обычно нет: он нужен только при отладке из Конфигуратора. Если отладка на рабочем сервере не используется, ключ -debug в строке запуска можно не указывать.