Сетевые порты 1С:Предприятия 8.3 — таблица и готовые правила файрвола

· 9 мин

Содержание

Для клиент-серверной 1С на сервере открывают входящие TCP-порты 1540 (агент), 1541 (менеджер кластера) и диапазон 1560–1591 (рабочие процессы). На компьютере пользователя входящие порты не нужны: клиент сам подключается к серверу, а исходящие соединения брандмауэр Windows по умолчанию пропускает.

Дальше всё зависит от схемы. Файловой базе нужен доступ к общей папке (SMB, 445), веб-клиенту и тонкому клиенту через публикацию — 80 или 443 на веб-сервере, серверу 1С — доступ к СУБД (1433, 5432 и т. д.). Ниже — полная таблица портов, правила для Windows и Linux и способы быстро понять, какой порт закрыт.

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

Подключение к кластеру идёт в три шага, и на каждом нужен свой порт:

  1. Клиент обращается к агенту сервера (ragent) на порт 1540 и узнаёт, где искать кластер.
  2. Затем идёт к менеджеру кластера (rmngr) на порт 1541. Менеджер выбирает рабочий процесс для сеанса.
  3. Сеанс устанавливается с рабочим процессом (rphost) на один из портов диапазона 1560–1591.

Отсюда главная ловушка. Если открыть только 1540 и 1541, база в списке видна, первые секунды подключения проходят, а потом клиент падает по таймауту. Рабочий процесс слушает порт из диапазона, и именно его режет файрвол.

Диапазон портов рабочих процессов задаётся в свойствах рабочего сервера в консоли кластера, а не в свойствах самого кластера. Если администратор его сузил или сдвинул, открывать нужно фактический диапазон, а не 1560–1591 по памяти.

Вторая ловушка — имя сервера. Менеджер кластера сообщает клиенту адрес рабочего процесса по имени компьютера, а не по IP. Если клиент это имя не разрешает (другая подсеть, VPN, нет записи в DNS), порты будут открыты, а подключение всё равно не пройдёт. Лечится записью в DNS или строкой в C:\Windows\System32\drivers\etc\hosts на клиенте:

192.168.10.15   srv-1c   srv-1c.company.local

Таблица портов сервера 1С:Предприятия

Порты по умолчанию для платформы 8.3. Все — TCP.

ПортСлужбаКто подключаетсяНужен, если
1540Агент сервера ragentКлиенты, консоль кластера, веб-серверВсегда в клиент-серверном режиме
1541Менеджер кластера rmngrКлиенты, веб-серверВсегда в клиент-серверном режиме
1560–1591Рабочие процессы rphostКлиенты, веб-серверВсегда в клиент-серверном режиме
1545Сервер администрирования rasУтилита rac, сторонние консолиАдминистрируете кластер через rac
1542Сервер хранилища конфигураций crserverКонфигураторы разработчиковХранилище работает по tcp://
1550Сервер отладки dbgsКонфигуратор, EDTОтлаживаете по протоколу HTTP
475 (TCP и UDP)Менеджер сетевых ключей HASPКлиенты и сервер 1СЗащита на сетевых аппаратных ключах

Консоль администрирования (оснастка MMC) ходит через агент, то есть ей достаточно 1540. Утилита rac и сторонние консоли подключаются к ras, поэтому для них открывают 1545. Сама служба ras должна быть запущена — по умолчанию её нет.

Если на сервере несколько кластеров

Каждый кластер получает свой набор портов. Принято сдвигать «тысячи»: второй кластер — 2540, 2541 и 2560–2591. Порты задаются параметрами строки запуска службы агента:

"C:\Program Files\1cv8\8.3.24.1691\bin\ragent.exe" -srvc -agent -port 2540 -regport 2541 -range 2560:2591 -d "C:\Program Files\1cv8\srvinfo2"

Клиент в этом случае указывает порт в адресе сервера: srv-1c:2541. Номер — порт менеджера кластера, а не агента.

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

К СУБД подключается сервер 1С, а не клиент. Значит, порт СУБД открывают только для адреса сервера 1С. Пользователям доступ к базе данных напрямую не нужен, и лучше его не давать.

СУБДПорт по умолчаниюПротокол
Microsoft SQL Server1433TCP
SQL Server Browser (для именованных экземпляров)1434UDP
PostgreSQL5432TCP
Oracle Database (listener)1521TCP
IBM Db250000TCP

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

Именованный экземпляр MS SQL

Именованный экземпляр (например, SQL01\BASE1C) по умолчанию слушает динамический порт, который меняется после перезапуска. Правило на 1433 ему не поможет. Варианты:

  • 🔧 в SQL Server Configuration Manager в свойствах протокола TCP/IP экземпляра очистить «Динамические порты» и вписать постоянный порт, затем перезапустить службу SQL Server;
  • 🔧 открыть UDP 1434, чтобы служба SQL Server Browser сообщала текущий порт.

Первый вариант надёжнее. В строке подключения базы в 1С можно указать порт явно: SQL01,1435.

PostgreSQL: файрвол — это не всё

Открытый 5432 ещё не значит доступ. PostgreSQL дополнительно проверяет два файла:

  • 📄 postgresql.conf — параметр listen_addresses должен включать сетевой адрес (по умолчанию слушается только localhost);
  • 📄 pg_hba.conf — нужна строка, разрешающая подключение с IP сервера 1С.
# pg_hba.conf
host    all    all    192.168.10.15/32    md5

После правки listen_addresses нужен перезапуск PostgreSQL, после правки pg_hba.conf достаточно перечитать конфигурацию. Перезапуск СУБД обрывает сеансы всех пользователей 1С — делайте его вне рабочего времени.

Веб-публикация, тонкий клиент через HTTP и файловый режим

Публикация на веб-сервере

При работе через веб-клиент или тонкий клиент по адресу https://… пользователю нужен единственный порт — 443 (или 80 без шифрования) на веб-сервере. Порты кластера ему не нужны вообще. Поэтому публикация — самый удобный способ дать доступ удалённым сотрудникам: наружу торчит только HTTPS.

Зато сам веб-сервер (IIS или Apache с модулем расширения 1С) подключается к кластеру как обычный клиент. Если веб-сервер и сервер 1С на разных машинах, с веб-сервера должны быть доступны 1540, 1541 и диапазон рабочих процессов, а имя сервера 1С должно разрешаться.

Не публикуйте в интернет порт 80 без перенаправления на 443. Логины и пароли пользователей 1С при этом передаются открытым текстом.

То же касается HTTP-сервисов и веб-сервисов конфигурации: внешней системе нужен только порт веб-сервера.

Файловая база в сетевой папке

Файловая база работает через общий доступ Windows. Клиенту нужен доступ к компьютеру с папкой по SMB — TCP 445. Старые порты NetBIOS (137–139) современным системам не нужны.

В брандмауэре Windows на компьютере с папкой достаточно включить готовую группу правил «Общий доступ к файлам и принтерам» для нужного профиля сети. Кроме порта, пользователю нужны права на чтение и запись в папку базы — без права записи 1С не создаст файлы блокировки.

Подключение по RDP

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

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

Правила создаются на сервере 1С, направление — входящее. Быстрее всего — одной командой PowerShell от имени администратора:

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

Если нужны ras и хранилище — добавьте отдельные правила, чтобы потом было понятно, что за что отвечает:

New-NetFirewallRule -DisplayName "1C RAS" -Direction Inbound -Protocol TCP -LocalPort 1545 -Action Allow
New-NetFirewallRule -DisplayName "1C Config Storage" -Direction Inbound -Protocol TCP -LocalPort 1542 -Action Allow

То же через классический netsh (работает и в cmd):

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

Через графический интерфейс

  1. Откройте wf.msc (Монитор брандмауэра Защитника Windows в режиме повышенной безопасности).
  2. Слева выберите «Правила для входящих подключений», справа — «Создать правило».
  3. Тип правила — «Для порта», протокол TCP, «Определённые локальные порты»: 1540-1541, 1560-1591.
  4. Действие — «Разрешить подключение».
  5. Профили — оставьте «Доменный» и «Частный». «Публичный» включайте, только если понимаете зачем.
  6. Задайте понятное имя, например «1С сервер 8.3».

Ограничение по источнику

Хорошая практика — разрешать порты не всем, а только своей подсети. В свойствах правила на вкладке «Область» укажите удалённые адреса, например 192.168.10.0/24. В PowerShell это параметр -RemoteAddress 192.168.10.0/24.

Альтернатива портам — правило «для программы» на ragent.exe, rmngr.exe и rphost.exe. Минус: путь содержит номер версии платформы (C:\Program Files\1cv8\8.3.xx.xxxx\bin\), и после обновления правила перестают работать. Правило по портам переживает обновление платформы.

Настройка iptables, firewalld и ufw на Linux-сервере

Порты на Linux те же. Выбирайте инструмент, который реально управляет файрволом в вашем дистрибутиве: одновременно править iptables вручную и пользоваться firewalld не стоит.

firewalld (CentOS, РЕД ОС, Astra Linux, AlmaLinux)

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      # если нужен ras
sudo firewall-cmd --reload
sudo firewall-cmd --list-ports

Без --permanent правило проживёт до перезагрузки. Без --reload постоянное правило не применится сразу.

ufw (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
sudo ufw status numbered

iptables напрямую

sudo iptables -A INPUT -p tcp -s 192.168.10.0/24 -m multiport --dports 1540,1541,1560:1591 -j ACCEPT

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

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

Не забудьте про сервер СУБД: если PostgreSQL на отдельной машине, на ней открывают 5432 только для IP сервера 1С.

Проверка доступности портов и разбор ошибок

Сначала убедитесь, что служба вообще слушает порт. На сервере:

netstat -ano | findstr ":1540 :1541 :156"
sudo ss -tlnp | grep -E '154[01]|15[6-9][0-9]'

Если порта нет в списке — дело не в файрволе: служба сервера 1С не запущена или работает на других портах.

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

Test-NetConnection srv-1c -Port 1541
nc -zv srv-1c 1541

В выводе Test-NetConnection смотрите строку TcpTestSucceeded. True — порт доступен. Проверьте 1540, 1541 и пару портов из диапазона: какой-нибудь rphost слушает, например, 1560 или 1561 — посмотреть точный номер можно в netstat на сервере.

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

Быстрый способ понять, виноват ли файрвол: на минуту отключите его на сервере для доменного профиля и повторите подключение. Заработало — значит, не хватает правила. Сразу включите обратно. Делайте это только во внутренней сети, не на сервере, открытом в интернет.

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

Нужно ли открывать порты на компьютере пользователя?
Для обычной работы — нет. Тонкий и толстый клиент сами устанавливают исходящие соединения с сервером, а их брандмауэр Windows по умолчанию разрешает. Входящие правила нужны только серверу.
Можно ли сузить диапазон 1560–1591?
Можно, в свойствах рабочего сервера в консоли кластера. Но каждый рабочий процесс занимает порт, и при нехватке портов новые процессы не стартуют. Для небольшой организации хватает и десятка портов, для нагруженного сервера оставляйте стандартный диапазон.
Безопасно ли открыть порты 1С в интернет?
Не рекомендуется. Порты кластера рассчитаны на работу внутри сети. Удалённым сотрудникам лучше дать доступ через VPN, терминальный сервер или веб-публикацию по HTTPS.
Какой порт указывать в адресе сервера при подключении базы?
Порт менеджера кластера. Для стандартной установки его не пишут вообще: srv-1c. Для второго кластера пишут явно: srv-1c:2541.
Нужен ли порт для сервера лицензий?
Программные лицензии 1С хранятся на сервере 1С и отдельного порта не требуют. Порт 475 нужен только для сетевых аппаратных ключей HASP, которые раздаёт менеджер лицензий.