Брандмауэр и сервер 1С:Предприятие 8.3: через какие порты идёт трафик и как их пропустить

· 10 мин

Содержание

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

Важно различать, кому нужен порт. Клиентам достаточно портов кластера. Порт СУБД нужен только серверу 1С, а порт RAS — только администратору. Чем уже правило, тем меньше поверхность атаки.

Как клиент 1С соединяется с сервером

Порядок соединения объясняет, почему одного порта мало. Толстый или тонкий клиент проходит три шага:

  1. Обращается к агенту сервера (ragent) или сразу к менеджеру кластера (rmngr) по адресу из списка баз, например srv-1c или srv-1c:1541.
  2. Менеджер кластера находит информационную базу и выбирает рабочий процесс, который будет обслуживать сеанс.
  3. Клиенту возвращается адрес и порт рабочего процесса (rphost) из диапазона, и дальше весь обмен данными идёт уже с ним.

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

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

Клиенты 1С не ходят напрямую к СУБД. В клиент-серверном варианте с SQL Server или PostgreSQL общается только сервер 1С. Порт базы данных на рабочие места открывать не нужно, и делать этого не стоит.

Порты кластера серверов 1С:Предприятие

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

Порт / диапазонПротоколКомпонентКто подключается
1540TCPАгент сервера ragentКлиенты, консоль администрирования, другие серверы кластера
1541TCPМенеджер кластера rmngrКлиенты, рабочие серверы кластера
1560–1591TCPРабочие процессы rphost и служебные соединенияКлиенты, другие серверы кластера
1545TCPСервер администрирования rasУтилита rac, сторонние консоли
1550TCPСервер отладки dbgs (отладка по HTTP)Конфигуратор разработчика, EDT

Несколько уточнений по таблице:

  • 🔹 1540 — точка входа для консоли «Администрирование серверов 1С Предприятия». Через агент консоль видит кластеры и их состав.
  • 🔹 1541 — основной порт кластера. Его же указывают в адресе базы, если кластер работает не на стандартных портах: Srvr="srv-1c:2541".
  • 🔹 1560–1591 — 32 порта. Диапазон задают в свойствах рабочего сервера, а не кластера: в консоли откройте Кластеры → <кластер> → Рабочие серверы → <сервер> → Свойства, поле с диапазонами IP-портов.
  • 🔹 1545 нужен только тому, кто управляет кластером через rac или веб-консоли. Пользователям его открывать не нужно.
  • 🔹 1550 открывают на время отладки на сервере, и только для машин разработчиков.

Если на одной машине несколько кластеров или версий

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

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

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

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

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

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

СУБДПорт по умолчаниюЧто ещё учесть
Microsoft SQL Server, экземпляр по умолчанию1433 TCPПротокол TCP/IP должен быть включён в SQL Server Configuration Manager
Microsoft SQL Server, именованный экземплярдинамический TCP + 1434 UDPСлужба SQL Server Browser сообщает порт экземпляра; надёжнее закрепить статический порт
PostgreSQL5432 TCPНужны listen_addresses в postgresql.conf и разрешение в pg_hba.conf

Закрепить порт именованного экземпляра SQL Server

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

  1. Откройте SQL Server Configuration Manager.
  2. Перейдите в SQL Server Network Configuration → Protocols for <имя экземпляра> → TCP/IP.
  3. На вкладке IP Addresses, в блоке IPAll, очистите поле TCP Dynamic Ports и впишите номер в TCP Port, например 1433 или 14330.
  4. Перезапустите службу SQL Server. На это время база будет недоступна, а сеансы 1С оборвутся.

В строке подключения базы в консоли кластера сервер СУБД тогда указывают с портом через запятую: sql-srv,14330.

Разрешить внешние подключения к PostgreSQL

PostgreSQL из коробки часто слушает только localhost. Если СУБД на отдельном сервере, правьте два файла:

# postgresql.conf
listen_addresses = '*'
port = 5432

# pg_hba.conf — разрешить подключения только с сервера 1С
host    all    all    192.168.10.20/32    md5

Вместо md5 в свежих сборках обычно стоит scram-sha-256 — оставьте метод, который уже указан в файле. Адрес 192.168.10.20 замените на IP вашего сервера 1С. После изменения listen_addresses нужен перезапуск PostgreSQL, для pg_hba.conf достаточно перечитать конфигурацию.

Прочие порты: ключи защиты, веб-публикация, файловые базы

Сервер кластера — не единственное, что ходит по сети в инфраструктуре 1С.

  • 🔑 475 TCP/UDP — менеджер лицензий для сетевых аппаратных ключей HASP. Клиенты ищут ключ широковещательным запросом по UDP. Если сеть сегментирована, адрес сервера с ключом прописывают в файле nethasp.ini на клиентах.
  • 🔑 1947 TCP — служба Sentinel License Manager. Через этот порт открывается её веб-интерфейс http://localhost:1947.
  • 🌐 80 и 443 TCP — веб-сервер (IIS или Apache) с опубликованной базой. Нужен для веб-клиента, тонкого клиента по HTTP, мобильных приложений и HTTP-сервисов.
  • 📁 445 TCP — общий доступ к файлам SMB. Он нужен, только если база файловая и лежит в сетевой папке. Для клиент-серверной базы на рабочих местах этот порт ни при чём.

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

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

Правила брандмауэра в Windows Server

В Windows Server 2016 и новее правила удобнее всего добавлять из командной строки. Запускайте консоль от имени администратора.

PowerShell

# Сервер 1С: агент, менеджер кластера, рабочие процессы
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 -RemoteAddress 192.168.10.5 -Action Allow

netsh (подойдёт и для bat-файла)

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="MS SQL 1433" dir=in action=allow protocol=TCP localport=1433 remoteip=192.168.10.20

Второе правило ставится на сервере СУБД и пропускает только сервер 1С.

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

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

Если сервер в домене, проверьте, к какому профилю отнесён сетевой адаптер. Правило только для профиля «Доменный» не сработает, когда Windows посчитала сеть «Общедоступной».

Правила для Linux: firewalld, iptables, ufw

Набор портов на Linux тот же самый. Отличается только инструмент.

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

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

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

iptables

sudo iptables -A INPUT -p tcp -m multiport --dports 1540,1541,1560:1591 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 5432 -s 192.168.10.20 -j ACCEPT

Правила iptables живут до перезагрузки. Сохраните их тем способом, который принят в вашем дистрибутиве: пакет iptables-persistent в Debian и Ubuntu (netfilter-persistent save), либо iptables-save в файл, который читается при старте.

ufw (Ubuntu, Debian)

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

В ufw диапазон пишется через двоеточие и обязательно с протоколом — без /tcp команда выдаст ошибку.

На Linux порты сервера 1С меняются теми же ключами -port, -regport, -range в параметрах запуска ragent. Где они записаны, зависит от способа установки: в юните systemd или в файле настроек службы. Найдите строку запуска командой systemctl cat с именем вашей службы 1С.

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

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

Слушает ли сервер нужный порт

Сначала убедитесь, что служба 1С вообще запущена и заняла порты.

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

Если строк нет, дело не в брандмауэре: служба не стартовала или работает на других портах.

Доступен ли порт с рабочего места

Test-NetConnection srv-1c -Port 1541
Test-NetConnection srv-1c -Port 1560

В выводе смотрите строку TcpTestSucceeded : True. На Linux-клиенте то же самое делает nc -zv srv-1c 1541.

Проверяйте не только 1540 и 1541, но и пару портов из диапазона. Рабочий процесс занимает первые свободные номера, поэтому обычно отвечает 1560 и несколько следующих.

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

Частые ошибки при настройке портов

  • ❌ Открыли только 1541. Клиент найдёт кластер, но не дойдёт до рабочего процесса. Диапазон обязателен.
  • ❌ Сузили диапазон до пары портов. При нескольких рабочих процессах и служебных соединениях их не хватит. Оставляйте не меньше стандартных 32.
  • ❌ Поменяли диапазон в консоли, а правило брандмауэра оставили старым. Правило должно совпадать с тем, что записано в свойствах рабочего сервера.
  • ❌ Открыли 1433 или 5432 для всей сети. Порт СУБД нужен только серверу 1С — ограничьте правило его адресом.
  • ❌ Проверили порт с самого сервера. Такой тест ничего не говорит о брандмауэре — проверяйте с клиента.
  • ❌ Забыли про антивирус с сетевым экраном. Встроенный файрвол ESET, Kaspersky и подобных работает поверх Windows Firewall, и правило нужно продублировать в нём.

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

Нужно ли открывать UDP-порты для сервера 1С?
Нет. Агент, менеджер кластера и рабочие процессы работают по TCP. UDP нужен только для поиска сетевого ключа HASP (475) и службы SQL Server Browser (1434).
Какие порты нужны для тонкого клиента через интернет?
Через веб-публикацию — только 443 (или 80) на веб-сервере. Порты кластера 1540–1591 наружу не открывают.
Можно ли сделать так, чтобы всё работало через один порт?
Нет, для прямого подключения к кластеру нужен диапазон рабочих процессов. Один порт возможен только при подключении через веб-сервер по HTTP или HTTPS.
Какие порты нужны между серверами одного кластера?
Те же 1540, 1541 и диапазон рабочих процессов — в обе стороны между всеми рабочими серверами кластера. Плюс порт СУБД от каждого рабочего сервера к серверу базы данных.
Нужно ли что-то открывать для файловой базы?
Для сервера 1С — нет, его в файловом варианте нет. Нужен доступ к сетевой папке с базой (SMB, порт 445) и, если ключ защиты сетевой, порт 475 до менеджера лицензий.