Какие порты открыть, чтобы сервер 1С работал без сбоев

· 10 мин

Содержание

Для корректной работы сервера 1С:Предприятие 8.3 на нём должны быть открыты входящие TCP-порты 1540 (агент сервера), 1541 (менеджер кластера) и диапазон 1560–1591 (рабочие процессы). Это значения по умолчанию. К ним добавляются порт СУБД (5432 для PostgreSQL, 1433 для MS SQL), 80/443 для веб-публикации, 475 или 1947 для сетевого ключа HASP и 3389 для RDP, если администрируете сервер удалённо.

Все порты из этого списка открываются только для тех, кому они нужны. Клиентам — порты кластера, серверу 1С — порт СУБД, интернету — в лучшем случае 443 веб-публикации. Остальное держите закрытым.

Как устроены сетевые соединения в клиент-серверной 1С

Без понимания схемы правила firewall пишутся вслепую. Поток подключения такой:

  1. 🖥️ Толстый или тонкий клиент обращается к агенту сервера (ragent, порт 1540).
  2. 🔀 Дальше клиент работает с менеджером кластера (rmngr, порт 1541).
  3. ⚙️ Менеджер направляет сеанс в рабочий процесс (rphost). Порт рабочего процесса берётся из диапазона, по умолчанию 1560–1591.
  4. 🗄️ Рабочий процесс сам ходит в СУБД. Клиенту доступ к порту СУБД не нужен.

Отсюда главное правило: клиентским компьютерам нужны все три группы портов сервера 1С — 1540, 1541 и весь диапазон рабочих процессов. Открыли только 1541 — клиент увидит кластер, но сеанс не запустится.

КомпонентПроцессПорт по умолчаниюКто подключается
Агент сервераragent1540/TCPклиенты, консоль администрирования, RAS
Менеджер кластераrmngr1541/TCPклиенты, другие серверы кластера
Рабочие процессыrphost1560–1591/TCPклиенты, веб-сервер
Сервер администрированияras1545/TCPутилита rac, сторонние консоли
Сервер отладкиdbgs1550/TCPКонфигуратор, EDT при отладке
PostgreSQLpostgres5432/TCPрабочие процессы 1С
MS SQL Serversqlservr1433/TCP, браузер 1434/UDPрабочие процессы 1С
Веб-серверIIS / Apache80, 443/TCPтонкий и веб-клиент через HTTP
HASP License Managerhasplm475/UDPклиенты с сетевым ключом
Sentinel LDKhasplms1947/TCP и UDPклиенты с сетевым ключом нового драйвера
RDPTermService3389/TCPадминистратор, терминальные пользователи

Файловой базе на сетевом диске порты 15xx не нужны вообще. Там работает обычный доступ к общей папке (SMB, 445/TCP).

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

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

"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"

Здесь:

  • -port — порт агента;
  • -regport — порт главного менеджера кластера;
  • -range — диапазон портов рабочих процессов, который служба использует при старте;
  • -d — каталог реестра кластера (srvinfo).

В Linux те же параметры передаются в строке запуска службы ragent в unit-файле systemd или в файле с переменными окружения, который этот unit подключает. Номер версии платформы в путях у вас будет свой.

Диапазон рабочих процессов

Диапазон, который реально выдаётся процессам, хранится в свойствах рабочего сервера. В консоли администрирования: кластер → Рабочие серверы → ваш сервер → Свойства, поле с диапазоном IP-портов. Его и нужно открыть в брандмауэре целиком.

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

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

Когда на одной машине работают две версии платформы или два кластера, второму задают свои порты. Распространённая схема — сдвиг на тысячу: 2540, 2541, 2560–2591. В строке подключения клиента тогда указывают порт явно: Srvr="srv1c:2541";Ref="buh";.

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

RAS и сервер отладки

Сервер администрирования ras нужен, если кластером управляют через rac или веб-консоль. Запускается он отдельно и слушает 1545:

ras cluster --service --port=1545 localhost:1540
rac cluster list srv1c:1545

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

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

К СУБД подключаются только рабочие процессы 1С. Поэтому порт СУБД открывают не для всей сети, а только для IP-адресов серверов 1С. Если 1С и СУБД стоят на одной машине, открывать порт наружу не нужно вовсе.

PostgreSQL

  • Порт по умолчанию — 5432/TCP, задаётся параметром port в postgresql.conf.
  • Параметр listen_addresses должен включать адрес, на котором ждут подключения от 1С, иначе PostgreSQL слушает только localhost.
  • В pg_hba.conf добавьте строку, разрешающую подключение пользователя 1С с адреса сервера приложений.
# pg_hba.conf
host    all    postgres    10.0.0.15/32    scram-sha-256

MS SQL Server

  • Экземпляр по умолчанию слушает 1433/TCP.
  • Именованный экземпляр по умолчанию получает динамический порт. Тогда нужна служба SQL Server Browser на 1434/UDP, через неё клиент узнаёт реальный порт.
  • Надёжнее закрепить статический порт: SQL Server Configuration Manager → сетевая конфигурация экземпляра → протокол TCP/IP → вкладка IP-адресов → раздел IPAll. Очистите динамический порт и пропишите постоянный.

После закрепления статического порта у именованного экземпляра в настройках информационной базы в кластере 1С можно указать сервер СУБД как sqlsrv,1433. Тогда браузер SQL и порт 1434/UDP не понадобятся.

Веб-публикация баз через IIS или Apache

Публикация через веб-сервер — способ дать доступ к базе без открытия портов кластера наружу. Схема меняется так:

  • 🌐 Пользователь подключается к веб-серверу по HTTP (80) или HTTPS (443).
  • 🔌 Модуль расширения веб-сервера 1С (wsisapi.dll для IIS, wsap24.so или wsap24.dll для Apache 2.4) от имени веб-сервера подключается к кластеру по 1540, 1541 и диапазону рабочих процессов.

Значит, правила такие:

  1. На веб-сервере открыть входящие 80/443 для пользователей.
  2. Между веб-сервером и сервером 1С разрешить порты 1540, 1541 и 1560–1591. Если это одна машина — внутри неё ничего открывать не надо.
  3. Для внешних пользователей оставить только 443 с действующим TLS-сертификатом. Порт 80 используйте лишь для перенаправления на HTTPS.

Тонкий клиент при таком подключении работает по адресу вида https://1c.company.ru/buh. Порты 15xx на его компьютере и в его сети не участвуют.

Публикуйте во внешний мир только 443, а не порты кластера 1540–1591. Протокол кластера не рассчитан на прямой выход в интернет.

Лицензирование: HASP-ключи и программные лицензии

Сетевой аппаратный ключ HASP втыкается в один компьютер, а лицензии раздаёт по сети менеджер лицензий. Здесь два варианта в зависимости от драйвера:

Менеджер лицензийПортПротокол
HASP License Manager (hasplm, старый)475UDP (и TCP)
Sentinel LDK License Manager (hasplms)1947TCP и UDP

Клиент ищет ключ широковещательным запросом. В сетях с несколькими подсетями или VPN такой поиск часто не доходит. Решение — явно прописать адрес менеджера лицензий в файле nethasp.ini в каталоге conf платформы:

[NH_COMMON]
NH_TCPIP = Enabled

[NH_TCPIP]
NH_SERVER_ADDR = 10.0.0.20
NH_USE_BROADCAST = Disabled

Программные лицензии 1С не требуют отдельного порта. В клиент-серверном варианте их выдаёт сам кластер, то есть они работают через те же 1540–1591. Интернет нужен только в момент активации или повторной активации — для обращения к центру лицензирования по HTTPS.

Удалённое администрирование: RDP и SSH

Сервер 1С почти всегда администрируют удалённо, и здесь важнее безопасность, чем удобство.

RDP (Windows Server)

  • Порт по умолчанию — 3389/TCP.
  • Не публикуйте 3389 в интернет напрямую. Подбор паролей к открытому RDP — самый частый способ взлома серверов с 1С.
  • Варианты безопаснее: VPN до офиса, шлюз удалённых рабочих столов (RD Gateway, работает через 443), ограничение правила по IP-адресам администраторов.
  • Смена порта — через параметр PortNumber в HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp. Это лишь уменьшает шум сканеров, но не защищает. Перед сменой откройте новый порт в брандмауэре, иначе потеряете доступ к серверу.

Если пользователи работают в 1С через терминальный сервер , клиенту нужен только RDP до терминала. Порты кластера должны быть открыты между терминальным сервером и сервером 1С.

При публикации 1С как RemoteApp публикуют 1cestart.exe или 1cv8c.exe. Пользователь видит окно 1С без рабочего стола сервера, а сетевые правила остаются теми же.

SSH (Linux)

  • Порт 22/TCP. Отключите вход по паролю для root, используйте ключи.
  • Консоль администрирования с рабочего места администратора можно пустить через SSH-туннель к 1540 или к RAS на 1545, не открывая эти порты в сеть.

Правила брандмауэра для сервера 1С

Правила пишите с ограничением по источнику. Ниже примеры для типичного случая: клиенты в сети 10.0.0.0/24, СУБД на той же машине.

Windows, PowerShell (от имени администратора):

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

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

То же через netsh:

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

Linux, ufw:

ufw allow from 10.0.0.0/24 to any port 1540:1541 proto tcp
ufw allow from 10.0.0.0/24 to any port 1560:1591 proto tcp

Linux, firewalld:

firewall-cmd --permanent --add-port=1540-1541/tcp
firewall-cmd --permanent --add-port=1560-1591/tcp
firewall-cmd --reload
Перед вводом сервера 1С в работу
Выполнено: 0 / 6

В кластере из нескольких серверов порты 1540, 1541 и диапазон рабочих процессов должны быть открыты между всеми серверами в обе стороны. Иначе один из серверов будет выпадать из кластера.

Как проверить, что порты доступны

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

Слушает ли сервер порт (на сервере 1С):

netstat -ano | findstr ":1540 :1541 :156"
ss -tlnp | grep -E ':15(4|6)'

Если в выводе нет строк в состоянии LISTENING, проблема не в firewall: служба агента не запущена или стартовала с другими портами.

Доступен ли порт по сети (с клиента):

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

TcpTestSucceeded : True — порт доступен. В Linux то же делают командой nc -zv srv1c 1541.

Проверьте не один порт из диапазона, а хотя бы два-три, на которых реально висят рабочие процессы. Их видно в выводе netstat на сервере.

Диагностика: выберите симптом
Нужно ли открывать порты 1С на компьютерах пользователей?
Нет. Входящие правила нужны на сервере. Клиент только устанавливает исходящие соединения, которые брандмауэр Windows по умолчанию разрешает.
Можно ли пробросить порт 1541 на роутере, чтобы работать из дома?
Технически подключение может заработать, если пробросить и 1540, и весь диапазон рабочих процессов. Но так кластер оказывается открытым в интернет. Безопаснее VPN или веб-публикация на 443.
Почему после обновления платформы клиенты перестали подключаться?
Новая версия установилась отдельной службой, часто с другим набором портов или вторым кластером. Проверьте строку запуска службы агента и сверьте порты с правилами firewall.
Нужен ли порт для сервера лицензирования 1С?
Отдельного порта нет: программные лицензии выдаёт кластер через свои порты. Для HASP-ключа нужен порт менеджера лицензий — 475/UDP или 1947.
Какие порты нужны файловой базе в общей папке?
Порты сервера 1С не нужны. Достаточно доступа к общей папке по SMB, это 445/TCP.