Перенос сервера 1С:Предприятия 8.3 на нестандартные порты без потери баз
Содержание
Порт сервера 1С 8.3 меняют не в консоли, а в параметрах запуска службы агента: ключи -port (агент, по умолчанию 1540), -regport (менеджер кластера, 1541) и -range (рабочие процессы, 1560:1591). В Windows это строка ImagePath службы в реестре, в Linux — переменные или строка ExecStart юнита systemd. После правки службу перезапускают, открывают новые порты в брандмауэре и меняют адрес сервера у клиентов.
Есть два сценария. Если нужно сменить только диапазон рабочих процессов, хватит консоли кластера. Если меняется порт агента или менеджера — правьте службу, это затронет всех пользователей. Третий вариант — оставить старый экземпляр как есть и поднять рядом второй на портах 2540/2541. Его выбирают, когда на одной машине нужны две версии платформы.
1. Какие порты занимает сервер 1С и как выбрать новые
У сервера 1С:Предприятия три группы портов. Их полезно выписать до начала работ.
| Компонент | Ключ запуска | По умолчанию | Кто к нему обращается |
|---|---|---|---|
Агент сервера (ragent) | -port | 1540 | Консоль кластера, ras, клиенты |
Менеджер кластера (rmngr) | -regport | 1541 | Клиенты, рабочие процессы |
Рабочие процессы (rphost) | -range | 1560:1591 | Клиенты в ходе сеанса |
Сервер администрирования (ras) | --port | 1545 | Утилита rac |
| Сервер отладки | включается ключом -debug | 1550 | Конфигуратор при отладке |
Текущие значения видно в свойствах службы. Откройте 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С.
- Остановите службу агента. В командной строке от имени администратора:
net stop "1C:Enterprise 8.3 Server Agent (x86-64)"
Точное имя службы посмотрите в свойствах, поле «Имя службы»: у разных установок оно отличается.
- Скопируйте каталог
srvinfoцеликом в другое место. В нём лежит реестр кластера: список баз, рабочих серверов, администраторов.
Сами информационные базы при смене портов не трогаются — данные остаются в СУБД. Но без копии srvinfo откатиться будет сложнее: при ошибке в ключах агент может поднять пустой реестр.
Почему важна папка reg_1541
Внутри srvinfo есть каталог с именем reg_1541. Число в названии совпадает со значением -regport. Агент ищет реестр кластера именно по этому имени.
Если вы меняете -regport на 2541, переименуйте папку в reg_2541. Иначе агент стартует, но кластера со списком баз в консоли не окажется. Это самая частая причина фразы «после смены порта пропали все базы».
3. Смена порта службы агента в Windows и Linux
Самый прямой способ — исправить строку запуска службы. Это можно сделать через реестр или через sc.
Windows: через редактор реестра
- Откройте
regedit. - Перейдите в
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servicesи найдите раздел с именем службы агента 1С. - Откройте параметр
ImagePath. - Замените номера после
-port,-regportи-range. Кавычки и остальные ключи не трогайте. - Переименуйте папку
srvinfo\reg_1541вreg_<новый regport>. - Запустите службу:
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С Предприятия».
- Если порт агента уже изменён, удалите старую запись центрального сервера и добавьте новую: имя компьютера и новый IP-порт агента, например 2540.
- Раскройте кластер → «Рабочие серверы» → свойства нужного сервера.
- В поле «Диапазоны IP портов» укажите новый диапазон, например
2560:2591. - Сохраните и перезапустите рабочие процессы.
Перезапуск рабочих процессов обрывает сеансы, которые на них работают. Делайте это тоже в окне работ.
Если консоль не открывается после обновления платформы, перерегистрируйте её библиотеку из каталога 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="srv1c". Добавьте порт и перезапустите веб-сервер. - 🗂 Пакетные скрипты: в ключе
/Sпишитеsrv1c:2541\buh. - 🔌 COM-соединения и внешние обработки: строка
Srvr="srv1c:2541";Ref="buh". - 🖥 Ярлыки RemoteApp и терминальные профили, где база прописана вручную.
- 📦 Скрипты резервного копирования и обновления через
1cv8 DESIGNER.
Удобно найти всё сразу поиском по строке Srvr= в каталогах публикаций, скриптов и общих списков баз.
8. Диагностика: сервер не отвечает на новом порту
Как откатиться
Если за окно работ не удалось всё запустить, верните старые значения:
- Остановите службу агента.
- Восстановите прежнюю строку
ImagePathили выполнитеsc configсо старыми портами. - Верните папке исходное имя
reg_1541или подложите копиюsrvinfo. - Запустите службу и проверьте вход в одну базу.
Клиенты со старым адресом снова начнут работать без правок.
Проверка доступности порта с рабочего места
С компьютера пользователя выполните в PowerShell:
Test-NetConnection srv1c -Port 2541
TcpTestSucceeded : True значит, что сеть и брандмауэр пропускают. Проверьте так же порт агента и пару портов из диапазона рабочих процессов, когда на них есть активные rphost.
Частые вопросы
Можно ли держать на одном компьютере два сервера 1С?
-d. Обычно так запускают две версии платформы, например рабочую и тестовую.Нужна ли отдельная лицензия при смене порта?
Почему клиент указывает 2541, а не 2540?
ras.Влияет ли смена порта на СУБД?
Нужно ли менять порт сервера отладки 1550?
-debug в строке запуска можно не указывать.