Брандмауэр и сервер 1С:Предприятия 8.3: что разрешить, чтобы клиенты подключались
Содержание
Для сервера 1С:Предприятия 8.3 в брандмауэре открывают входящие TCP-порты 1540 (агент сервера), 1541 (менеджер кластера) и диапазон 1560–1591 (рабочие процессы). Если администрируете кластер через rac с другого компьютера, добавьте TCP 1545 для сервера администрирования RAS. Порт СУБД (1433 у MS SQL Server, 5432 у PostgreSQL) нужен только между сервером 1С и сервером базы данных, пользователям его открывать не надо.
Типичная ситуация: сервер 1С поставили, консоль на самом сервере видит кластер, а у бухгалтеров в офисе база не открывается и висит ошибка про недоступный сервер. Частая причина: сервер настроен правильно, но брандмауэр Windows пропускает только 1540 и 1541, а порты рабочих процессов закрыты.
Из чего складывается соединение клиента с сервером 1С
Клиент 1С не держит один постоянный канал. Подключение идёт в три этапа, и на каждом используется свой порт:
- 🔹 Клиент обращается к агенту сервера (процесс
ragent, порт1540). - 🔹 Агент передаёт его менеджеру кластера (процесс
rmngr, порт1541). Этот номер вы указываете в адресе базы:Srvr="srv1c"подразумевает1541, для нестандартного кластера пишутSrvr="srv1c:1641". - 🔹 Менеджер выдаёт адрес рабочего процесса (
rphost), и дальше клиент работает уже с ним, на одном из портов диапазона.
Отсюда главное правило: если открыть только 1540 и 1541, клиент пройдёт первые два этапа и упадёт на третьем. Именно поэтому ошибка выглядит странно: сервер «виден», но база не открывается.
Все соединения инициирует клиент. Обратных подключений от сервера к рабочей станции нет, поэтому на компьютерах пользователей входящие порты для 1С открывать не нужно.
Таблица портов сервера 1С 8.3 по умолчанию
Сводка для одного кластера со стандартными настройками:
| Порт | Протокол | Процесс | Кто подключается | Когда нужен |
|---|---|---|---|---|
| 1540 | TCP | ragent — агент сервера | Клиенты, консоль кластера | Всегда |
| 1541 | TCP | rmngr — менеджер кластера | Клиенты, другие серверы кластера | Всегда |
| 1560–1591 | TCP | rphost — рабочие процессы | Клиенты | Всегда |
| 1545 | TCP | ras — сервер администрирования | Утилита rac, сторонние консоли | Только при удалённом администрировании через rac |
| 1433 | TCP | MS SQL Server | Сервер 1С | Если СУБД на отдельной машине |
| 1434 | UDP | SQL Server Browser | Сервер 1С | Только для именованного экземпляра без явного порта |
| 5432 | TCP | PostgreSQL | Сервер 1С | Если СУБД на отдельной машине |
| 475 | UDP и TCP | Менеджер сетевых ключей HASP | Клиенты и сервер 1С | Только при аппаратных сетевых ключах |
| 80, 443 | TCP | Веб-сервер (IIS, Apache) | Веб-клиент, тонкий клиент по HTTP, мобильные клиенты | Только при публикации базы на веб-сервере |
RAS работает по TCP, а не по UDP. Встречается совет открыть «UDP 1545» — с таким правилом rac не подключится.
Для отладки конфигурации по протоколу HTTP запускается сервер отладки, по умолчанию на порту 1550. В рабочем окружении его обычно не включают, и наружу этот порт не открывают.
Если на машине несколько кластеров
Второй экземпляр сервера 1С (например, для тестовых баз или другой версии платформы) ставят со сдвигом номеров. Распространённая схема — сдвиг на 100:
| Экземпляр | Агент | Менеджер кластера | Рабочие процессы |
|---|---|---|---|
| Первый | 1540 | 1541 | 1560–1591 |
| Второй | 1640 | 1641 | 1660–1691 |
| Третий | 1740 | 1741 | 1760–1791 |
Каждому экземпляру нужен свой набор правил в брандмауэре. Диапазоны рабочих процессов разных кластеров не должны пересекаться.
Диапазон портов рабочих процессов: где задаётся и как сузить
Диапазон 1560–1591 — это значение по умолчанию. Оно задаётся двумя способами.
При запуске службы. Параметры видны в свойствах службы «Агент сервера 1С:Предприятия 8.3» (services.msc → служба → вкладка «Общие» → «Исполняемый файл»). Строка выглядит примерно так:
"C:\Program Files\1cv8\8.3.24.1586\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug
Здесь -port — агент, -regport — менеджер кластера, -range — диапазон рабочих процессов, -d — каталог служебных файлов кластера.
В консоли кластера. Откройте «Администрирование серверов 1С Предприятия», разверните кластер → «Рабочие серверы» → свойства нужного сервера. Поле с диапазонами IP-портов находится в свойствах рабочего сервера, а не кластера: там можно удалить диапазон по умолчанию и добавить свой.
Изменённый диапазон вступает в силу после перезапуска службы агента. При остановке службы оборвутся сеансы всех пользователей, а несохранённые данные будут потеряны. Делайте это вечером или в выходные, предупредив людей заранее.
Сколько портов действительно нужно
Каждый рабочий процесс занимает порты из диапазона, а при работе с сеансами ему нужны и дополнительные. На небольшом сервере с одним-двумя rphost хватает десятка портов, но сужать диапазон до минимума рискованно: при росте числа процессов новые не смогут стартовать.
Практичный ориентир — оставить стандартные 32 порта. Если служба безопасности требует сузить, считайте не меньше 4–5 портов на каждый рабочий процесс и держите запас. Порт, который никто не слушает, открытым держать безопасно: атаковать на нём нечего.
Правила брандмауэра: готовые команды для Windows и Linux
Windows Server: PowerShell
Запустите PowerShell от администратора на сервере 1С:
New-NetFirewallRule -DisplayName "1C Server 8.3" -Direction Inbound -Protocol TCP -LocalPort 1540,1541,1560-1591 -Action Allow
Если нужно удалённое администрирование через RAS, добавьте отдельное правило и ограничьте его адресами админов:
New-NetFirewallRule -DisplayName "1C RAS" -Direction Inbound -Protocol TCP -LocalPort 1545 -RemoteAddress 192.168.1.10 -Action Allow
Windows: через netsh
Тот же результат для старых скриптов и командной строки:
netsh advfirewall firewall add rule name="1C Server 8.3" dir=in action=allow protocol=TCP localport=1540-1541,1560-1591
Через графический интерфейс: wf.msc → «Правила для входящих подключений» → «Создать правило» → тип «Для порта» → TCP → «Определённые локальные порты» → 1540,1541,1560-1591 → «Разрешить подключение». На шаге «Профиль» оставьте только «Доменный» и «Частный», если сервер не смотрит в интернет.
Linux: ufw и firewalld
Для Ubuntu и Debian с ufw:
sudo ufw allow 1540:1541/tcp
sudo ufw allow 1560:1591/tcp
Для дистрибутивов с firewalld (РЕД ОС, Astra в ряде сборок, CentOS-подобные):
sudo firewall-cmd --permanent --add-port=1540-1541/tcp
sudo firewall-cmd --permanent --add-port=1560-1591/tcp
sudo firewall-cmd --reload
Ограничьте источник
Открывать порты 1С «для всех» без нужды не стоит. Укажите в правиле подсеть офиса или VPN, например -RemoteAddress 192.168.1.0/24. Публиковать порты кластера 1С напрямую в интернет нельзя: для удалённых сотрудников используйте VPN, RDP-шлюз или публикацию базы на веб-сервере по HTTPS.
Связь сервера 1С с MS SQL Server и PostgreSQL
С базой данных работает только сервер 1С: рабочие процессы rphost подключаются к СУБД от имени пользователя, указанного в параметрах информационной базы. Компьютеры бухгалтеров к SQL-серверу не обращаются, поэтому порт СУБД открывают только для IP-адреса сервера 1С.
Если 1С и СУБД стоят на одной машине, порт в брандмауэре открывать не нужно: соединение локальное.
MS SQL Server
- 🔸 Экземпляр по умолчанию слушает TCP
1433. - 🔸 Именованный экземпляр (
SRV\SQL2019) по умолчанию получает динамический порт. Клиент узнаёт его через службу SQL Server Browser на UDP1434. - 🔸 Надёжнее назначить именованному экземпляру фиксированный порт в «Диспетчере конфигурации SQL Server»: «Сетевая конфигурация SQL Server» → протоколы экземпляра → TCP/IP → вкладка «IP-адреса» → блок «IPAll». Очистите «Динамические TCP-порты» и впишите номер в «TCP-порт». После перезапуска службы SQL откройте этот порт.
- 🔸 Протокол TCP/IP в той же оснастке должен быть включён. В редакции Express он после установки часто выключен.
Пример правила на SQL-сервере, разрешающего подключения только от сервера 1С:
New-NetFirewallRule -DisplayName "MSSQL from 1C" -Direction Inbound -Protocol TCP -LocalPort 1433 -RemoteAddress 192.168.1.20 -Action Allow
PostgreSQL
Здесь недостаточно одного брандмауэра. PostgreSQL сам решает, кого пускать:
- В
postgresql.confпараметрlisten_addressesдолжен включать сетевой адрес, а не толькоlocalhost. Напримерlisten_addresses = '*'. - В
pg_hba.confдобавьте строку для адреса сервера 1С:
host all postgres 192.168.1.20/32 md5
- Перезапустите PostgreSQL и откройте TCP
5432для сервера 1С.
Вместо md5 в новых сборках часто используют scram-sha-256: метод должен совпадать с тем, как хранится пароль пользователя.
Перезапуск службы СУБД обрывает работу всех баз на этом сервере. Сеансы пользователей 1С завершатся с ошибкой. Планируйте перезапуск на нерабочее время.
Файловая база: какие порты нужны без сервера 1С
В файловом варианте сервера 1С нет, и порты 1540–1591 не используются вовсе. Клиент открывает файл 1Cv8.1CD прямо из общей сетевой папки. Нужны только порты общего доступа к файлам Windows:
- 📁 TCP
445— протокол SMB, через него идёт вся работа с базой; - 📁 устаревший NetBIOS (TCP
139, UDP137–138) — только для очень старых систем, в современной сети его отключают.
В брандмауэре Windows за это отвечает встроенная группа правил «Общий доступ к файлам и принтерам». Включите её для профиля «Частный» или «Доменный» на компьютере, где лежит база.
Если файловая база опубликована на веб-сервере, пользователи подключаются по HTTP или HTTPS (TCP 80/443), а SMB для них не нужен. Ещё один частый случай — сетевой аппаратный ключ HASP: менеджеру лицензий нужен порт 475, иначе 1С сообщит, что не обнаружен ключ защиты, хотя база доступна.
Как проверить, что порты открыты и слушаются
Проверяйте с двух сторон: на сервере — слушает ли процесс порт, на клиенте — доходят ли пакеты.
На сервере 1С
Windows, командная строка:
netstat -ano | findstr ":1540 :1541 :156"
В выводе должны быть строки в состоянии LISTENING. Номер в последнем столбце — PID процесса; сверить его можно в диспетчере задач на вкладке «Подробности»: ragent.exe, rmngr.exe, rphost.exe.
Linux:
sudo ss -tlnp | grep -E 'ragent|rmngr|rphost'
С компьютера пользователя
PowerShell проверяет TCP-порт без установки дополнительных программ:
Test-NetConnection srv1c -Port 1541
Test-NetConnection srv1c -Port 1560
TcpTestSucceeded : True значит, что порт доступен. Проверьте и агент, и менеджер, и хотя бы один порт из диапазона, на котором netstat на сервере показал LISTENING.
Удалённо через RAS
Если RAS запущен (ras cluster --port=1545 localhost:1540), с машины администратора выполните:
rac srv1c:1545 cluster list
Список кластеров в ответе подтверждает, что и 1545 на сервере, и 1540 внутри сервера доступны.
Имя сервера
Клиент получает от менеджера кластера адрес рабочего процесса в виде имени сервера. Если рабочая станция это имя не разрешает, подключение сорвётся даже при открытых портах. Проверьте ping srv1c по короткому имени. Не помогает — пропишите имя и IP в DNS или в файле C:\Windows\System32\drivers\etc\hosts на клиентах.
Ошибки подключения и что они означают
Тексты сообщений зависят от версии платформы, но причины повторяются. Выберите свой случай:
Test-NetConnection к портам 1540 и 1541. Если на сервере порт в состоянии LISTENING, а с клиента тест не проходит, порт закрыт брандмауэром.netstat на порту 1545.Частая ловушка: правило есть, а порт закрыт
Брандмауэр Windows применяет правила по сетевым профилям. Если правило создано только для профиля «Доменный», а сетевой адаптер сервера определился как «Общедоступный», правило молча не работает. Проверьте профиль подключения командой Get-NetConnectionProfile и поправьте профиль в свойствах правила.
Вторая ловушка — сторонний антивирус со своим сетевым экраном. Он работает поверх брандмауэра Windows, и разрешающее правило в wf.msc для него ничего не значит. Добавьте те же порты в его настройки.
Частые вопросы
Нужно ли открывать порты 1С на компьютерах пользователей?
Можно ли поменять стандартный порт 1541 на другой?
srv1c:1641. Сам по себе нестандартный порт защиту не заменяет.