Какие порты открыть, чтобы клиент 1С видел сервер, СУБД и веб-публикацию

· 10 мин

Содержание

Клиент 1С подключается к серверу по TCP: агент сервера слушает порт 1540, менеджер кластера — 1541, рабочие процессы — диапазон 1560–1591. Для обычной клиент-серверной базы на файрволе сервера нужно открыть входящие соединения именно на эти три позиции: 1540, 1541 и 1560–1591. Веб-клиент и тонкий клиент через публикацию ходят на веб-сервер по 80 или 443, а с СУБД общается только сервер 1С, а не компьютеры пользователей.

Типичная ситуация: администратор поднял новый сервер, базы в консоли видны, а бухгалтер с соседнего компьютера получает Ошибка соединения с сервером 1С:Предприятия с кодом 10060 или 10061. Частая причина — закрытый диапазон рабочих процессов: 1541 открыли, а 1560–1591 забыли. Клиент находит кластер, но не может дойти до процесса, который обслуживает его базу.

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

Сервер 1С:Предприятия 8.3 — это не одна программа, а несколько процессов. Каждый слушает свой порт, и клиент проходит их по цепочке.

  • 🖥️ ragent — агент сервера. Точка входа, к нему обращается клиент и консоль администрирования.
  • 📋 rmngr — менеджер кластера. Хранит список баз, сеансов, распределяет нагрузку.
  • ⚙️ rphost — рабочие процессы. Именно они выполняют код конфигурации и ходят в СУБД.

Порядок соединения такой:

  1. Клиент обращается к агенту сервера на 1540.
  2. Далее — к менеджеру кластера на 1541, получает адрес рабочего процесса для своей базы.
  3. Клиент открывает прямое соединение с назначенным rphost на порту из диапазона 1560–1591. Через это соединение идёт вся дальнейшая работа.
  4. Рабочий процесс сам подключается к СУБД по её порту.

Отсюда главный вывод: недостаточно открыть один «порт 1С». Если не пропустить диапазон рабочих процессов, клиент дойдёт до шага 2 и упадёт на шаге 3.

Файловая база портов 1С не использует вовсе. Клиент открывает файл 1Cv8.1CD по сетевой папке, то есть работает протокол SMB (порт 445). Всё, что ниже, касается клиент-серверного варианта и веб-публикации.

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

Значения по умолчанию, которые ставит установщик для первого экземпляра сервера:

Порт / диапазонПроцессКто подключаетсяНужно ли открывать для клиентов
1540ragent (агент сервера)клиенты, консоль кластерада
1541rmngr (менеджер кластера)клиенты, другие серверы кластерада
1560–1591rphost (рабочие процессы)клиентыда
1545ras (сервер администрирования)утилита rac, сторонние консолитолько для админов
1542crserver (сервер хранилища конфигурации)Конфигуратор разработчиковтолько для разработчиков
1550dbgs (сервер отладки)Конфигуратор, EDTтолько для разработчиков
80 / 443веб-сервер (IIS, Apache)веб-клиент, тонкий клиент по HTTP, мобильные приложенияда, если есть публикация

Порты 1545, 1542 и 1550 открывать всему офису не нужно. Их достаточно пропустить с компьютеров администратора и разработчиков.

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

При добавлении базы в список в поле «Кластер серверов 1С:Предприятия» пишут имя сервера, например srv-1c. Если кластер работает на нестандартном порту, указывают имя и порт менеджера кластера через двоеточие: srv-1c:2541. В строке подключения это выглядит как Srvr="srv-1c:2541";Ref="buh";.

Второй экземпляр сервера на той же машине

Два сервера разных версий платформы на одном компьютере не могут занимать одни и те же порты. Второму экземпляру обычно сдвигают все значения целиком: 2540, 2541, 2560–2591. Тогда клиенты второго кластера подключаются как srv-1c:2541.

Как поменять порты агента, кластера и рабочих процессов

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

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

Агент запускается с параметрами командной строки:

ragent.exe -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug
  • -port — порт агента;
  • -regport — порт главного менеджера кластера;
  • -range — диапазон портов для рабочих процессов при первичной регистрации.

В Windows эта строка хранится в свойстве службы «Агент сервера 1С:Предприятия 8.3». Изменить её можно в реестре, параметр ImagePath в разделе службы под HKLM\SYSTEM\CurrentControlSet\Services\. В Linux параметры задаются в unit-файле службы srv1cv8 или в её файле настроек — путь зависит от версии платформы и способа установки.

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

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

Диапазон рабочих процессов — свойства рабочего сервера

Диапазон для rphost правят в консоли кластера:

  1. Откройте Администрирование серверов 1С Предприятия.
  2. Раскройте Центральные серверы 1С:Предприятия 8.3 → <имя сервера> → Кластеры → <кластер> → Рабочие серверы.
  3. Откройте свойства нужного рабочего сервера.
  4. В поле «Диапазоны IP портов» задайте диапазон, например 1560:1591.
  5. Сохраните. Новые рабочие процессы будут подниматься уже на этих портах.

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

Сколько портов нужно в диапазоне

Каждый рабочий процесс занимает порты из диапазона, плюс часть уходит под служебные менеджеры кластера. Стандартных 32 портов хватает небольшому и среднему серверу. Если в консоли видно много процессов rphost, а в журнале появляются сообщения о нехватке портов, расширьте диапазон и не забудьте про правило файрвола.

Порты веб-сервера и HTTP-сервисов 1С

Опубликованная база работает через веб-сервер. Схема другая:

  • 🌐 браузер, тонкий клиент «на веб-сервере», мобильное приложение и внешние системы через HTTP- и веб-сервисы подключаются к IIS или Apache по 80 (HTTP) или 443 (HTTPS);
  • 🔗 модуль расширения веб-сервера 1С (wsisapi.dll для IIS, wsap24.so или аналог для Apache) сам подключается к кластеру по 1540, 1541 и 1560–1591.

Получается, что пользователям снаружи нужен только 443. Порты кластера открывают только между веб-сервером и сервером 1С. Если веб-сервер стоит на той же машине, что и сервер 1С, наружу вообще не нужно выпускать ничего, кроме HTTPS.

Порт 8080 не является «портом 1С». Его иногда назначают Apache, когда 80 занят другим сайтом. Тогда в адресе публикации порт пишут явно: http://srv-1c:8080/buh.

Для доступа из интернета публикуйте базу только по HTTPS с действующим сертификатом. Обычный HTTP передаёт логин и пароль пользователя 1С открытым текстом.

Порты СУБД: MS SQL Server, PostgreSQL, Oracle

С базой данных работает только рабочий процесс rphost. Компьютерам пользователей доступ к СУБД не нужен, и давать его не стоит.

СУБДПорт по умолчаниюКомментарий
Microsoft SQL Server1433 TCPименованный экземпляр может получить динамический порт; служба SQL Browser отвечает на 1434 UDP
PostgreSQL5432 TCPдополнительно разрешите адрес сервера 1С в pg_hba.conf
Oracle Database1521 TCPпорт слушателя (listener)
IBM Db250000 TCPтипичное значение, задаётся при создании экземпляра

Подвох с именованным экземпляром SQL Server

Если база создана на экземпляре вида SQLSRV\BUH, SQL Server по умолчанию выделяет ему динамический порт. После перезагрузки порт может смениться, и правило файрвола перестанет работать. Решения два:

  1. Задать экземпляру фиксированный порт в SQL Server Configuration Manager (свойства протокола TCP/IP, вкладка с IP-адресами) и открыть именно его.
  2. Открыть 1434 UDP для SQL Browser, чтобы клиент мог узнать текущий порт.

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

Если СУБД и сервер 1С стоят на одной машине, порт СУБД наружу открывать не нужно совсем.

Как проверить, открыт ли порт и кто его слушает

Проверку делают с двух сторон: на самом сервере (слушает ли процесс) и с компьютера пользователя (доходит ли соединение).

На сервере Windows

Какие процессы 1С слушают порты:

netstat -ano | findstr "LISTENING" | findstr ":154 :156"
tasklist | findstr /I "ragent rmngr rphost"

Сопоставьте PID из первой команды с PID из второй. Если 1540 не слушается никем, служба агента не запущена или стартовала с другими параметрами.

С компьютера пользователя

В PowerShell:

Test-NetConnection srv-1c -Port 1540
Test-NetConnection srv-1c -Port 1541
Test-NetConnection srv-1c -Port 1561

Строка TcpTestSucceeded : True значит, что порт доступен. Для диапазона проверьте порт, который реально слушает работающий rphost — его видно в выводе netstat на сервере.

На сервере Linux

ss -tlnp | grep -E 'ragent|rmngr|rphost'
nc -zv srv-1c 1541

Проверка имени сервера

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

Проверьте на клиенте ping srv-1c по короткому имени, которое указано у сервера в консоли кластера. Не разрешается — добавьте запись в DNS или в файл C:\Windows\System32\drivers\etc\hosts.

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

Настройка файрвола для сервера 1С: правила и безопасность

Windows: одно правило на входящие

От имени администратора в командной строке:

netsh advfirewall firewall add rule name="1C Server 8.3" dir=in action=allow protocol=TCP localport=1540-1541,1560-1591

То же в PowerShell с ограничением по подсети офиса:

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

Linux: ufw или firewalld

# Ubuntu / Debian
sudo ufw allow from 192.168.10.0/24 to any port 1540:1541 proto tcp
sudo ufw allow from 192.168.10.0/24 to any port 1560:1591 proto tcp

# RHEL / Astra / РЕД ОС с firewalld
sudo firewall-cmd --permanent --add-port=1540-1541/tcp
sudo firewall-cmd --permanent --add-port=1560-1591/tcp
sudo firewall-cmd --reload

Чего не делать

  • 🚫 Не пробрасывайте 1540, 1541 и 1560–1591 на роутере в интернет. Протокол сервера 1С не рассчитан на открытую сеть. Удалённых сотрудников подключайте через VPN или веб-публикацию по HTTPS.
  • 🚫 Не открывайте порт СУБД пользователям. Доступ к 1433 или 5432 нужен только серверу 1С.
  • 🚫 Не оставляйте 1545 (RAS) доступным всей сети. Через него можно управлять кластером, если у кластера не задан администратор.
  • 🚫 Не отключайте файрвол целиком «для проверки» и не забывайте включить обратно. Лучше точечное правило.

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

Порты открыты правильно, если
Выполнено: 0 / 7

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

Нужен ли UDP для подключения к серверу 1С?
Нет. Клиент, агент, менеджер кластера и рабочие процессы общаются по TCP. UDP может понадобиться только для служб вокруг: SQL Browser (1434) или менеджера лицензий аппаратных ключей.
Какой порт у сервера лицензий HASP?
Менеджер лицензий HASP License Manager работает на порту 475. Если ключ стоит на другом компьютере, этот порт должен быть доступен с сервера 1С или клиентов, которые берут лицензию. Программные лицензии сетевых портов не требуют.
Можно ли уменьшить диапазон 1560–1591 до нескольких портов?
Можно, но при росте числа рабочих процессов им не хватит портов, и новые соединения начнут падать. Сокращайте диапазон только если точно знаете число процессов на сервере.
Тонкий клиент подключается по HTTP — нужны ли ему порты 1540–1541?
Нет. При подключении «на веб-сервере» клиенту нужен только порт публикации (80 или 443). Порты кластера нужны веб-серверу.
Где посмотреть порт кластера, если его меняли до меня?
В консоли администрирования: свойства кластера показывают его порт. Строку запуска агента с -port и -regport смотрите в свойствах службы или в unit-файле на Linux.