Какие порты открыть для сервера 1С:Предприятия и как их поменять

· 10 мин

Содержание

Сервер 1С:Предприятия 8.3 по умолчанию работает на трёх группах TCP-портов: 1540 — агент сервера (ragent), 1541 — главный менеджер кластера (rmngr), 1560–1591 — рабочие процессы (rphost). Чтобы клиенты подключались к серверу через сеть, на брандмауэре сервера должны быть открыты все три.

Если ещё нужна удалённая консоль через rac или веб-администрирование, добавьте порт сервера администрирования RAS — 1545. Остальные порты относятся уже не к самому серверу 1С, а к окружению: СУБД, веб-сервер, менеджер лицензий HASP.

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

Сервер 1С — это не одна программа, а несколько процессов. У каждого своя роль и свой порт.

  • 🧭 Агент сервера (ragent) — управляет кластерами на этом компьютере. К нему подключается консоль администрирования.
  • 🗂 Менеджер кластера (rmngr) — ведёт список баз, сеансов, лицензий и распределяет клиентов по рабочим процессам.
  • ⚙️ Рабочие процессы (rphost) — выполняют серверный код: запросы, проведение документов, отчёты. Каждый занимает порт из диапазона.

Порядок такой. Клиент обращается к серверу по имени, менеджер кластера сообщает ему адрес и порт рабочего процесса, и дальше клиент работает уже напрямую с rphost. Поэтому открыть один 1541 мало: подключение начнётся, но оборвётся на этапе перехода к рабочему процессу.

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

Что указывают в строке подключения

В списке баз при добавлении серверной базы указывают кластер серверов . Если кластер работает на стандартном 1541, достаточно имени сервера: srv1c. Если порт кластера другой, его пишут через двоеточие: srv1c:1641.

В строке подключения это выглядит так:

Srvr="srv1c:1641";Ref="buh_main";

В строке подключения указывается порт кластера (1541 или тот, что задан вместо него), а не порт агента 1540. Это частая путаница при переносе базы на сервер с нестандартными портами.

Стандартные порты сервера 1С и связанных служб

Сводная таблица портов, которые встречаются в типовой клиент-серверной установке.

ПортСлужбаКто к нему подключаетсяНужен снаружи сервера
1540Агент сервера ragentКонсоль администрирования, RASДа, если консоль запускают с другого ПК
1541Менеджер кластера rmngrКлиенты 1С, веб-серверДа
1560–1591Рабочие процессы rphostКлиенты 1С, веб-серверДа
1545Сервер администрирования RASУтилита rac, веб-консолиТолько для администраторов
1550Сервер отладки dbgs (HTTP-отладка)Конфигуратор, EDTТолько разработчикам
1433Microsoft SQL ServerРабочие процессы 1СТолько серверу 1С
5432PostgreSQLРабочие процессы 1СТолько серверу 1С
475Менеджер лицензий HASP (сетевые ключи)Клиенты и сервер 1СДа, если ключ сетевой
80 / 443Веб-сервер (IIS, Apache)Браузеры, тонкие клиенты через HTTPДа, при веб-публикации

Две оговорки к таблице:

  • Порты СУБД нужны только между сервером 1С и сервером СУБД. Клиенты 1С с базой данных напрямую не общаются, им 1433 или 5432 открывать не нужно.
  • Порт 475 актуален для аппаратных сетевых ключей HASP. При программных лицензиях отдельный порт не нужен: лицензии выдаёт сам кластер.

Сколько портов нужно в диапазоне рабочих процессов

Стандартный диапазон 1560–1591 — это 32 порта. Каждый рабочий процесс занимает порт. Для небольшой фирмы на 10–30 пользователей этого хватает с запасом.

Если на сервере много рабочих процессов (например, включено несколько процессов на ядро или идёт перезапуск по превышению памяти, когда старый и новый процесс живут одновременно), диапазон можно расширить. Главное — потом расширить его и на брандмауэре.

Второй кластер на том же сервере

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

ЭкземплярАгентКластерРабочие процессы
Первый154015411560–1591
Второй164016411660–1691
Третий174017411760–1791

Сдвиг не обязателен, порты могут быть любыми свободными. Но привычная схема упрощает жизнь тому, кто придёт администрировать сервер после вас.

Где меняются порты сервера 1С

Порты задаются в двух местах, и это часто путают.

Порты агента и кластера — в параметрах службы

Порт агента, порт главного менеджера кластера и начальный диапазон задаются ключами командной строки ragent при регистрации службы:

"C:\Program Files\1cv8\8.3.xx.xxxx\bin\ragent.exe" -srvc -agent -port 1640 -regport 1641 -range 1660:1691 -d "C:\srvinfo_1640"
  • -port — порт агента;
  • -regport — порт главного менеджера кластера;
  • -range — диапазон портов рабочих процессов;
  • -d — каталог данных кластера (у второго экземпляра должен быть свой).

В Windows эта строка хранится в параметре ImagePath службы агента в реестре: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<имя службы агента 1С>. Имя службы видно в оснастке services.msc, в свойствах службы «Агент сервера 1С:Предприятия 8.3».

В Linux строка запуска находится в unit-файле службы systemd. Найти её проще всего командой:

systemctl cat 'srv1cv8*'

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

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

Диапазон рабочих процессов — в консоли администрирования

Диапазон портов rphost можно поменять без переустановки службы, через консоль администрирования серверов 1С:

  1. Откройте консоль, разверните Central 1C:Enterprise 8.3 servers → <имя сервера> → Кластеры → <кластер> → Рабочие серверы.
  2. Откройте свойства нужного рабочего сервера.
  3. В поле с диапазоном IP-портов укажите новый диапазон, например 1560:1620.
  4. Сохраните. Новые рабочие процессы будут запускаться с портами из нового диапазона.

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

Брандмауэр Windows и Linux для сервера 1С

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

Windows: PowerShell

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

New-NetFirewallRule -DisplayName "1C Server 8.3" -Direction Inbound -Protocol TCP -LocalPort 1540,1541,1560-1591 -Action Allow

Если нужен RAS для удалённого администрирования, лучше сделать отдельное правило и ограничить его адресами администраторов:

New-NetFirewallRule -DisplayName "1C RAS" -Direction Inbound -Protocol TCP -LocalPort 1545 -RemoteAddress 192.168.1.10 -Action Allow

Через графический интерфейс то же самое делается в Брандмауэр Защитника Windows → Дополнительные параметры → Правила для входящих подключений → Создать правило: тип «Для порта», протокол TCP, порты через запятую 1540,1541,1560-1591.

Linux: firewalld и ufw

Для дистрибутивов с firewalld:

sudo firewall-cmd --permanent --add-port=1540-1541/tcp
sudo firewall-cmd --permanent --add-port=1560-1591/tcp
sudo firewall-cmd --reload

Для Ubuntu и Debian с ufw:

sudo ufw allow 1540:1541/tcp
sudo ufw allow 1560:1591/tcp

Если диапазон рабочих процессов расширяли в консоли, не забудьте расширить его и в правилах. Это самая частая причина, по которой «всё работало, а после настройки перестало».

Перед тем как звать пользователей в серверную базу
Выполнено: 0 / 6

Сервер 1С не отвечает: проверяем порты по шагам

Типичные сообщения при сетевых проблемах выглядят так: в тексте ошибки есть server_addr=tcp://srv1c:1541 и описание от Windows, например код 10061 (подключение отвергнуто) или 10060 (время ожидания истекло). Они подсказывают, где искать.

  • 🚫 10061 — до сервера дошли, но порт никто не слушает. Служба не запущена или работает на другом порту.
  • ⏳ 10060 — ответа нет вообще. Чаще всего режет брандмауэр или пакеты не доходят по сети.

Шаг 1. Слушает ли сервер нужные порты

На сервере Windows:

netstat -ano | findstr ":154 :156 :157 :158 :159"

На сервере Linux:

sudo ss -tlnp | grep -E 'ragent|rmngr|rphost'

В выводе должны быть 1540, 1541 и несколько портов из диапазона. Если 1540 нет — не запущена служба агента. Если нет портов рабочих процессов — ни одна база ещё не открывалась или процессы не стартуют, смотрите журнал событий.

Шаг 2. Доступны ли порты с клиента

С клиентского компьютера Windows:

Test-NetConnection srv1c -Port 1541
Test-NetConnection srv1c -Port 1560

TcpTestSucceeded : True значит, что порт открыт. Проверьте 1541 и пару портов из диапазона, которые реально заняты на сервере по итогам шага 1.

Шаг 3. Разрешаются ли имена

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

Проверьте с клиента ping srv1c по короткому имени. Если DNS в сети нет или он настроен криво, пропишите сервер в файл C:\Windows\System32\drivers\etc\hosts на клиентах:

192.168.1.20    srv1c

Это классический приём при подключении из другой подсети или через VPN: по IP-адресу пингуется, а 1С не подключается — почти всегда вопрос имён.

Шаг 4. Нет ли конфликта портов

Если на сервере стоит другая программа, которая заняла порт из диапазона 1560–1591, рабочий процесс не сможет на нём подняться. Найти владельца порта поможет PID из вывода netstat -ano: сопоставьте его с процессом в диспетчере задач. Решение — сдвинуть диапазон 1С или перенастроить чужую программу.

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

Доступ к 1С из интернета: порты, VPN и веб-публикация

Открывать порты 1540–1591 в интернет — плохая идея. Протокол сервера 1С не рассчитан на прямой доступ из внешней сети, а открытый агент кластера без пароля администратора даёт посторонним возможность управлять кластером.

Безопасных вариантов три.

СпособКакие порты наружуКогда подходитРиски
VPN до офисной сетиПорт VPN (зависит от решения)Удалённые сотрудники с толстым или тонким клиентомНужно администрировать VPN
Веб-публикация на IIS или Apache443Тонкий клиент и браузер, работа из любой точкиНужен сертификат, обновления веб-сервера
Терминальный сервер (RDP) через шлюз443 (через шлюз RD)Работа в толстом клиенте, внешние обработкиЛицензии RDS, нагрузка на сервер

Как работают порты при веб-публикации

При веб-публикации пользователь подключается только к веб-серверу по 443. Веб-сервер сам ходит в кластер 1С по 1541 и диапазону рабочих процессов, как обычный клиент.

Отсюда схема: снаружи открыт только 443 на веб-сервере, а порты 1540–1591 открыты только для адреса веб-сервера. Если веб-сервер и сервер 1С на одном компьютере, порты кластера наружу не нужны вовсе.

Что ещё закрыть

  • 🔐 Задайте администратора кластера и администратора центрального сервера в консоли. Без них любой, кто достучится до 1540, может управлять кластером.
  • 🛡 Порт RAS 1545 разрешайте только с адресов администраторов. Через RAS можно завершать сеансы и менять настройки кластера.
  • 🧱 Порты СУБД 1433 и 5432 разрешайте только с адреса сервера 1С.
  • 🐞 Сервер отладки на 1550 на рабочем сервере не держите включённым постоянно.

Частые вопросы о портах сервера 1С

Какой порт указывать в списке баз при подключении к серверу 1С?
Порт кластера, по умолчанию 1541. Если он стандартный, достаточно имени сервера. Нестандартный пишут через двоеточие: srv1c:1641.
Нужен ли UDP для сервера 1С?
Для агента, кластера и рабочих процессов используется TCP. UDP может понадобиться только менеджеру лицензий HASP для сетевых аппаратных ключей.
Можно ли запустить сервер 1С на одном порту, без диапазона?
Нет. Каждому рабочему процессу нужен свой порт, поэтому диапазон обязателен. Его можно сузить, но не меньше числа рабочих процессов с запасом на их перезапуск.
Нужно ли открывать порты 1С на компьютерах пользователей?
Обычно нет. Входящие правила нужны на сервере 1С. Клиент только устанавливает исходящие соединения, которые брандмауэр Windows по умолчанию пропускает.
Как узнать, на каком порту работает уже установленный сервер?
Посмотрите строку запуска службы агента в services.msc или реестре: там ключи -port, -regport и -range. Второй способ — команда netstat на сервере, отфильтрованная по процессам ragent и rmngr.