Клиент не видит сервер «1С:Предприятие» - чаще всего виноват брандмауэр. По умолчанию Windows Server блокирует входящие подключения, и пока в firewall не появятся правила, клиентские приложения до серверных компонентов не достучатся. Если с самим понятием пока не всё ясно, начните с того, для чего нужен межсетевой экран и как он решает, что пропускать.
Разбираемся, какие порты нужны серверу 1С, как открыть их в Windows и в Linux, как ограничить доступ своей подсетью и что делать, если после всех правил подключение всё равно не идёт.
Начинать надо не с мастера правил, а со списка. Он короткий.
| Порт | Протокол | Что использует | Обязателен |
|---|---|---|---|
| 1540 | TCP | агент сервера ragent, к нему же цепляется консоль администрирования кластера | да |
| 1541 | TCP | менеджер кластера rmngr | да |
| 1560-1591 | TCP | рабочие процессы rphost и менеджеры кластера | да |
| 475 | TCP и UDP | менеджер лицензий HASP (аппаратные ключи) | при аппаратных ключах |
| 1433 | TCP | MS SQL Server, экземпляр по умолчанию | если СУБД - MS SQL |
| 1434 | UDP | SQL Server Browser, нужен для именованных экземпляров | при именованном экземпляре |
| 5432 | TCP | PostgreSQL | если СУБД - PostgreSQL |
| 80, 443 | TCP | веб-сервер, если база опубликована в вебе | при веб-публикации |
Практический минимум для отдельно стоящего сервера с MS SQL на той же машине - 1540, 1541 и диапазон 1560-1591. Если СУБД вынесена на другой сервер, на нём открывается порт СУБД, и открывается он только для адреса сервера 1С, а не для всей сети.
Диапазон 1560-1591 стоит открывать сразу целиком, а не подбирать по одному порту. Кластер раздаёт номера рабочим процессам сам, и какой именно достанется - заранее неизвестно. Диапазон, кстати, настраивается в консоли кластера, так что при желании его можно и сузить - но тогда сузьте и правило firewall.
Дальше - как это выглядит руками. Зайдите на сервер по RDP и откройте брандмауэр: «Панель управления» → «Система и безопасность» → «Брандмауэр Защитника Windows», либо через «Выполнить» (Win+R) командой firewall.cpl.
В левом меню выберите «Дополнительные параметры», оттуда - «Правила для входящих подключений». В меню «Действия» создайте новое правило. В мастере выберите тип «Для порта», протокол TCP и укажите номера портов: сразу все нужные через запятую и диапазон через дефис - 1540, 1541, 1560-1591. Одно правило вместо трёх.
Дальше выберите «Разрешить подключение» и - это самое важное - на шаге профилей снимите галочку с «Публичный». Правило должно действовать в доменном и частном профилях, но не в публичном.
Одного открытия портов недостаточно - ограничьте источник. Мастер по умолчанию разрешает подключение откуда угодно. После создания правила откройте его свойства, вкладку «Область» и в разделе «Удалённый IP-адрес» укажите подсеть вашей локальной сети (например, 192.168.10.0/24). Без этого шага порты кластера 1С открыты всем, кто может достучаться до сервера по сети. Для машины с внешним адресом это прямая дорога к неприятностям - про них у нас есть отдельный разбор, как обезопаситься от дыры в сервере приложений 1С.
Осталось назвать правило понятно - «1С:Предприятие, кластер» лучше, чем «Правило 1», - и сохранить. Проверьте подключение клиента: оно должно пройти.
Если администрируете не один сервер, руками это делать незачем. PowerShell создаёт то же правило одной строкой:
New-NetFirewallRule -DisplayName "1C Enterprise cluster" -Direction Inbound -Protocol TCP -LocalPort 1540,1541,1560-1591 -RemoteAddress 192.168.10.0/24 -Profile Domain,Private -Action Allow
Для HASP-ключей понадобится второе правило, на 475-й порт по обоим протоколам. Если ключей у вас нет и лицензии программные, это правило не нужно - что за лицензии нужны серверу 1С, разбираем отдельно.
New-NetFirewallRule -DisplayName "1C HASP License Manager" -Direction Inbound -Protocol TCP -LocalPort 475 -RemoteAddress 192.168.10.0/24 -Profile Domain,Private -Action Allow
New-NetFirewallRule -DisplayName "1C HASP License Manager UDP" -Direction Inbound -Protocol UDP -LocalPort 475 -RemoteAddress 192.168.10.0/24 -Profile Domain,Private -Action Allow
Обе команды можно завернуть в групповую политику или прогнать удалённо, если серверов много. Про то, как устроен сам кластер и откуда берутся рабочие процессы, у нас есть разбор настройки и проверки кластера 1С.
Связка 1С с внешней СУБД добавляет ещё одно правило - уже на сервере базы данных.
MS SQL. Экземпляр по умолчанию слушает TCP 1433 - открываете этот порт для адреса сервера 1С, и всё. Убедиться, что порт именно такой, можно в «Диспетчере конфигурации SQL Server»: «Сетевая конфигурация» → протоколы вашего экземпляра → TCP/IP → «IP-адреса» → раздел IPAll.
Если в поле «Динамический TCP-порт» стоит значение, а «TCP-порт» пуст - у вас динамический порт, который меняется при перезапуске службы. Есть два пути. Первый и более правильный: задать фиксированный порт в том же IPAll и открыть его. Второй: создать правило не для порта, а для программы, указав в нём sqlservr.exe - тогда номер порта не важен. Путь к файлу зависит от версии SQL Server, найти его проще всего в свойствах службы, а не по памяти.
Для именованного экземпляра дополнительно открывается UDP 1434 - на нём работает SQL Server Browser, который и подсказывает клиенту нужный порт.
PostgreSQL. Порт по умолчанию TCP 5432. Открывается так же и так же ограничивается адресом сервера 1С. Не забудьте, что одного firewall тут мало: доступ разрешается ещё и в pg_hba.conf, иначе соединение отвалится уже на стороне СУБД.
Отдельно про старые системы, потому что серверов на них в работе ещё много.
Порядок действий в Windows Server 2012 R2 и 2008 R2 отличается только названиями пунктов: оснастка называется «Брандмауэр Windows в режиме повышенной безопасности», в остальном мастер тот же. Номера портов у 1С не менялись, так что список выше подходит и для них.
Что действительно стоит помнить: расширенная поддержка Windows Server 2012 и 2012 R2 закончилась 10 октября 2023 года, а 2008 R2 - в январе 2020-го. Обновления безопасности для них не выходят. Открывать на такой машине порты кластера 1С и оставлять её доступной из недоверенной сети - плохая идея независимо от того, насколько аккуратно настроен firewall. Если перенести 1С на актуальную систему пока нельзя, то ограничение правил подсетью из предыдущего раздела перестаёт быть рекомендацией и становится обязательным минимумом.
Ещё одна деталь для старых стендов: путь к sqlservr.exe в статьях тех лет обычно указан с каталогом вида MSSQL10_50.MSSQLSERVER - это SQL Server 2008 R2. У более новых версий номер в имени каталога другой, поэтому копировать путь из инструкции бессмысленно, его нужно смотреть у себя.
Сервер 1С под Linux ведёт себя так же - меняются только команды.
В дистрибутивах с firewalld (RED OS, «Альт», RHEL-совместимые) правило с ограничением по источнику делается rich-правилом:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.10.0/24" port port="1540-1591" protocol="tcp" accept'
firewall-cmd --reload
Если ограничивать источник не нужно (например, сервер и так в изолированном сегменте), хватит короткой формы:
firewall-cmd --permanent --add-port=1540-1591/tcp
firewall-cmd --reload
Ключ --permanent обязателен: без него правило исчезнет после перезагрузки, а --reload применяет постоянные правила к текущей сессии. Забыть одно из двух - самая частая причина «я же открывал порт, а он закрыт».
В Astra Linux и других системах на базе Debian чаще встречается ufw или голый iptables. Для ufw:
ufw allow from 192.168.10.0/24 to any port 1540:1591 proto tcp
Обратите внимание: в ufw диапазон записывается через двоеточие, а не через дефис.
Правило создано, а клиент всё равно не подключается - проверяйте по шагам, снизу вверх.
Слушает ли служба порт. На самом сервере 1С:
netstat -an | findstr "1540 1541"
В Linux то же самое:
ss -tlnp | grep -E '1540|1541'
Если порт не слушается, дело не в firewall - служба 1С либо не запущена, либо стартовала с ошибкой, и смотреть надо её журнал.
Доходит ли соединение снаружи. С клиентской машины:
Test-NetConnection -ComputerName 192.168.10.5 -Port 1541
Ответ TcpTestSucceeded : True означает, что путь свободен. False при работающей службе - это как раз firewall или маршрутизация между сегментами.
Проверять ping бесполезно: он ходит по ICMP и о состоянии TCP-портов не говорит ничего.
Запрос встречается не реже обратного. Логика та же, только правило исходящее.
В брандмауэре Windows создайте правило для исходящих подключений, тип - «Для программы», укажите исполняемый файл (ragent.exe или клиентский 1cv8.exe), действие - «Блокировать подключение». Правило для программы удобнее правила для порта: 1С ходит наружу по обычному HTTPS, и блокировать 443-й порт целиком вы точно не захотите.
Обратная задача - разрешить конкретному приложению выход, когда исходящие закрыты по умолчанию, - решается тем же мастером с действием «Разрешить». Только учтите: если исходящие блокируются политикой, то отдельные разрешения тоже обычно раздаются политикой, и локальное правило она перекроет.
1С может ходить наружу по делу: за обновлениями конфигураций, за проверкой лицензий, к сервисам 1С:ИТС. Полная блокировка выхода ломает эти механизмы, и в большинстве случаев правильнее не резать всё, а выпускать сервер через прокси со списком разрешённых адресов. Чем прокси отличается от межсетевого экрана и зачем он нужен рядом с ним, разобрано в статье «что такое прокси-сервер».
Минимум - TCP 1540 (агент сервера), 1541 (менеджер кластера) и диапазон 1560-1591 (рабочие процессы). Дополнительно: 475 TCP и UDP для HASP-ключей, порт СУБД (1433 для MS SQL, 5432 для PostgreSQL), 80 и 443 при веб-публикации базы.
Кластер сам назначает порты рабочим процессам из этого диапазона, и заранее неизвестно, какой достанется. Диапазон можно сузить в свойствах рабочего сервера в консоли кластера - тогда сужается и правило firewall.
На 1540 работает агент сервера ragent - к нему подключается консоль администрирования кластера. На 1541 - менеджер кластера rmngr, через него идёт работа клиентов. Нужны оба.
Проверьте по порядку: слушает ли служба порт (netstat -an | findstr 1541 на сервере), доходит ли соединение с клиента (Test-NetConnection), не блокирует ли трафик антивирус со своим сетевым экраном, совпадает ли имя сервера в клиенте с реальным. Часто оказывается, что правило создано, но действует только в публичном профиле, а сеть определена как доменная.
Нет, внутри одной машины трафик через firewall не проходит. Порт СУБД открывают только когда база вынесена на отдельный сервер - и открывают его для адреса сервера 1С, а не для всей подсети.
Не надо. Кластер 1С не рассчитан на публичный доступ. Для удалённой работы используют VPN либо публикацию базы через веб-сервер по HTTPS - это отдельная задача, и она решается модулем расширения веб-сервера.
Подобрать сервер под 1С
Firewall настраивается за полчаса, а вот тормоза 1С через полгода работы firewall не лечит - там обычно упираются в диск, память или частоту процессора. Мы 11+ лет на рынке серверов и считаем конфигурацию под конкретное число пользователей и режим работы: файловый, клиент-серверный или терминальный.
Расскажите, сколько человек работает в базе и какая у неё СУБД - подберём сервер для кластера 1С с запасом на рост и обоснуем каждую позицию.
Телефон: +7 (800) 551-80-12
Почта: info@ittelo.ru