Какие порты нужны клиент-серверной 1С и как пропустить их через брандмауэр

· 9 мин

Содержание

Чтобы клиенты увидели сервер 1С 8.3, на нём нужно открыть входящие TCP-порты 1540 (агент), 1541 (менеджер кластера) и диапазон 1560-1591 (рабочие процессы). Если администрируете кластер удалённо через RAS — добавьте 1545. Порты СУБД (1433 у MS SQL, 5432 у PostgreSQL) открывают только для сервера 1С, а не для всех компьютеров сети.

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

Как клиент 1С находит сервер и базу

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

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

Консоль администрирования серверов тоже подключается через агент, то есть ей нужен 1540. Утилита rac и консоли сторонних разработчиков работают через сервер администрирования RAS, у которого свой порт.

Менеджер кластера сообщает клиенту имя рабочего сервера, а не IP-адрес. Если клиентский компьютер не может разрешить это имя через DNS, подключение оборвётся даже при открытых портах. Проверьте ping имя_сервера с клиента, а при отсутствии DNS пропишите сервер в C:\Windows\System32\drivers\etc\hosts.

Таблица портов сервера 1С, СУБД и сопутствующих служб

Ниже — порты по умолчанию для типовой установки. Все они TCP, кроме отмеченных отдельно.

ПортСлужбаКто подключаетсяНужен, когда
1540Агент сервера ragentКлиенты, консоль администрированияВсегда в клиент-серверном режиме
1541Менеджер кластера rmngrКлиенты, другие серверы кластераВсегда
1560-1591Рабочие процессы rphostКлиентыВсегда
1545Сервер администрирования RASrac, сторонние консоли, мониторингТолько при удалённом управлении через RAS
1550Сервер отладки dbgsКонфигуратор, EDTТолько при отладке по HTTP
1433MS SQL ServerСервер 1СЕсли СУБД на отдельной машине
1434 UDPSQL Server BrowserСервер 1СДля именованного экземпляра SQL с динамическим портом
5432PostgreSQLСервер 1СЕсли СУБД на отдельной машине
475 TCP и UDPМенеджер лицензий HASPКлиенты с сетевым ключомТолько при аппаратных сетевых ключах
80, 443Веб-сервер IIS или ApacheБраузеры, мобильные клиенты, HTTP-сервисыТолько при веб-публикации базы

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

Диапазон 1560-1591 — это 32 порта. На нагруженном сервере с большим количеством рабочих процессов его расширяют в свойствах рабочего сервера в консоли администрирования. После расширения не забудьте добавить новые порты в правило брандмауэра, иначе часть процессов окажется недоступной и ошибка будет появляться «через раз».

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

Открываем порты в брандмауэре Windows

Есть три способа: через оснастку, командой netsh и через PowerShell. Результат одинаковый, выбирайте удобный.

Через оснастку «Брандмауэр Защитника Windows»

  1. Нажмите Win + R, введите wf.msc и нажмите Enter.
  2. Слева выберите Правила для входящих подключений, справа — Создать правило.
  3. Тип правила — Для порта, протокол TCP.
  4. В поле определённых локальных портов впишите 1540-1541, 1560-1591.
  5. Действие — Разрешить подключение.
  6. Профили — оставьте Доменный и Частный. Публичный отмечайте, только если сервер реально подключён к сети с таким профилем.
  7. Имя правила — например, 1C Server 8.3. Нажмите Готово.

Для RAS и СУБД создайте отдельные правила. Так их проще отключить по одному и видно, что за что отвечает.

Командой netsh

Запустите командную строку от имени администратора:

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

Через PowerShell с ограничением по адресам

PowerShell удобен тем, что сразу можно указать, из какой подсети разрешён вход:

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

New-NetFirewallRule -DisplayName "MS SQL for 1C" -Direction Inbound -Protocol TCP `
  -LocalPort 1433 -RemoteAddress 192.168.1.10 -Action Allow

Во втором правиле 192.168.1.10 — адрес сервера 1С. Так SQL-сервер принимает подключения только от него, а не от любой машины в офисе.

Вместо портов можно разрешить программы: ragent.exe, rmngr.exe, rphost.exe из каталога C:\Program Files\1cv8\<версия>\bin. Минус в том, что после обновления платформы путь меняется и правила придётся пересоздать. Правило по портам переживает обновление без правок.

Порты 1С на Linux: firewalld, ufw и iptables

На Linux сервер 1С слушает те же порты по умолчанию. Какой инструмент брать, зависит от дистрибутива.

firewalld (РЕД ОС, Альт, CentOS, Rocky)

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

Последняя команда покажет, что порты действительно добавились. Без --permanent правило пропадёт после перезагрузки, без --reload — не применится к постоянной конфигурации сразу.

ufw (Ubuntu, Debian)

sudo ufw allow from 192.168.1.0/24 to any port 1540:1541 proto tcp
sudo ufw allow from 192.168.1.0/24 to any port 1560:1591 proto tcp
sudo ufw status numbered

В ufw диапазон портов записывается через двоеточие и требует явного указания протокола.

iptables

sudo iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 1540:1541 -j ACCEPT
sudo iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 1560:1591 -j ACCEPT

Правила iptables не сохраняются после перезагрузки сами по себе. В Debian и Ubuntu для этого ставят пакет iptables-persistent и выполняют sudo netfilter-persistent save.

Если INPUT уже содержит запрещающее правило в конце цепочки, -A добавит разрешение после него, и оно не сработает. Посмотрите порядок командой sudo iptables -L INPUT -n --line-numbers и при необходимости вставьте правило выше через -I INPUT <номер>.

Для PostgreSQL на Linux открыть порт 5432 мало. Сервер СУБД должен слушать сетевой интерфейс (параметр listen_addresses в postgresql.conf), а в pg_hba.conf нужна строка, разрешающая вход с адреса сервера 1С. После правки этих файлов PostgreSQL перезапускают — подключённые к нему сеансы 1С при этом оборвутся, так что делайте это вне рабочего времени.

Проверка связи и поиск закрытого порта

Сначала убедитесь, что служба вообще слушает порт на сервере. Потом — что порт доступен с клиента.

На сервере Windows:

netstat -ano | findstr ":1540 :1541 :156"

В выводе должны быть строки со статусом LISTENING. Последний столбец — PID процесса, его можно сверить в диспетчере задач.

На сервере Linux:

sudo ss -tlnp | grep -E ':15(4[0-5]|[5-9][0-9])'

С клиентского компьютера удобнее всего PowerShell:

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

Строка TcpTestSucceeded : True значит, что порт доступен. False — порт закрыт брандмауэром, служба не запущена или имя не разрешается.

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

Временно выключать брандмауэр целиком ради проверки — плохая идея на боевом сервере. Если очень нужно, отключите на пару минут только нужный профиль и сразу включите обратно, а лучше проверьте конкретное правило через Test-NetConnection.

Нестандартные порты и защита сервера 1С

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

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

Порты задаются в параметрах запуска службы агента. Их видно в свойствах службы в поле «Исполняемый файл»:

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

Для второго экземпляра службы обычно сдвигают всё на тысячу: -port 2540 -regport 2541 -range 2560:2591 и отдельный каталог -d, например C:\Program Files\1cv8\srvinfo2. Два экземпляра с одним каталогом данных запускать нельзя.

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

После смены порта клиенты подключаются с явным указанием порта менеджера кластера: в поле «Кластер серверов 1С:Предприятия» пишут srv1c:2541, а не просто srv1c. Для консоли администрирования при добавлении центрального сервера указывают порт агента — 2540.

Порты СУБД

  • MS SQL Server: в SQL Server Configuration Manager откройте свойства протокола TCP/IP для нужного экземпляра, на вкладке IP-адресов в блоке IPAll задайте порт. После перезапуска службы SQL в параметрах информационной базы 1С сервер СУБД указывают через запятую: sqlsrv,1435.
  • PostgreSQL: порт задаётся параметром port в postgresql.conf. В поле сервера СУБД в параметрах базы 1С указывают sqlsrv port=5433.

Что реально защищает сервер

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

  • 🔒 Не публикуйте порты 1С в интернет. Удалённым сотрудникам — VPN или веб-клиент через HTTPS. Проброс 1540-1591 на роутере наружу открывает сервер для перебора.
  • 🌐 Ограничьте источники. В правилах брандмауэра разрешайте вход только из своей подсети, а порт СУБД — только с адреса сервера 1С.
  • 👤 Задайте администратора кластера. Без него любой, кто дотянулся до порта 1540, через консоль может завершать сеансы и менять настройки баз. Администратора назначают в консоли администрирования в ветке кластера.
  • 🗄️ Задайте администраторов центрального сервера — они защищают создание и удаление кластеров.
  • 📋 Ведите список правил. Каждое правило с понятным именем и комментарием: через год никто не вспомнит, зачем открыт порт 1550.
Перед вводом сервера 1С в работу
Выполнено: 0 / 7

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

Нужно ли открывать порты на компьютерах пользователей?
Нет. Клиент сам устанавливает соединение с сервером, входящие порты на его стороне не нужны. Исключение — если на компьютере пользователя работает менеджер лицензий HASP для других машин.
Для файловой базы нужны порты 1540-1591?
Нет. Файловая база работает через общую сетевую папку, то есть через протокол SMB (порт 445). Порты сервера 1С нужны только в клиент-серверном режиме.
Сколько портов нужно в диапазоне рабочих процессов?
Стандартных 32 портов хватает для большинства серверов. Расширять диапазон имеет смысл, если в консоли видно, что рабочих процессов много и они упираются в лимит.
Почему консоль администрирования подключается, а пользователи нет?
Консоли достаточно порта агента 1540, а пользователям нужны ещё 1541 и диапазон рабочих процессов. Проверьте их отдельно через Test-NetConnection.
Можно ли работать с сервером 1С через интернет без VPN?
Технически да, если пробросить порты, но это небезопасно и плохо переносит нестабильный канал. Для удалённой работы надёжнее веб-публикация через HTTPS или VPN-туннель до офисной сети.