Какие порты нужны клиент-серверной 1С и как пропустить их через брандмауэр
Содержание
Чтобы клиенты увидели сервер 1С 8.3, на нём нужно открыть входящие TCP-порты 1540 (агент), 1541 (менеджер кластера) и диапазон 1560-1591 (рабочие процессы). Если администрируете кластер удалённо через RAS — добавьте 1545. Порты СУБД (1433 у MS SQL, 5432 у PostgreSQL) открывают только для сервера 1С, а не для всех компьютеров сети.
Частая ошибка — открыть только 1541, потому что он указан в строке подключения. Агент отвечает, база в списке видна, а при входе вылетает Сервер 1С:Предприятия не обнаружен. Дело в закрытом диапазоне рабочих процессов: клиент работает именно с ними, а агент и менеджер только направляют его к нужному процессу.
Как клиент 1С находит сервер и базу
Подключение к клиент-серверной базе идёт в несколько ходов. Если понимать порядок, сразу ясно, какой порт закрыт.
- Клиент обращается к агенту сервера (
ragent) на порт1540. Агент знает, какие кластеры работают на машине. - Агент направляет клиента к менеджеру кластера (
rmngr) на порт1541. Менеджер знает список информационных баз и рабочих процессов. - Менеджер выбирает рабочий процесс (
rphost) и сообщает его адрес и порт из диапазона1560-1591. Дальше весь обмен данными идёт через этот процесс. - Рабочий процесс сам ходит в СУБД по её порту. Клиенты с SQL-сервером напрямую не общаются.
Консоль администрирования серверов тоже подключается через агент, то есть ей нужен 1540. Утилита rac и консоли сторонних разработчиков работают через сервер администрирования RAS, у которого свой порт.
Менеджер кластера сообщает клиенту имя рабочего сервера, а не IP-адрес. Если клиентский компьютер не может разрешить это имя через DNS, подключение оборвётся даже при открытых портах. Проверьте ping имя_сервера с клиента, а при отсутствии DNS пропишите сервер в C:\Windows\System32\drivers\etc\hosts.
Таблица портов сервера 1С, СУБД и сопутствующих служб
Ниже — порты по умолчанию для типовой установки. Все они TCP, кроме отмеченных отдельно.
| Порт | Служба | Кто подключается | Нужен, когда |
|---|---|---|---|
1540 | Агент сервера ragent | Клиенты, консоль администрирования | Всегда в клиент-серверном режиме |
1541 | Менеджер кластера rmngr | Клиенты, другие серверы кластера | Всегда |
1560-1591 | Рабочие процессы rphost | Клиенты | Всегда |
1545 | Сервер администрирования RAS | rac, сторонние консоли, мониторинг | Только при удалённом управлении через RAS |
1550 | Сервер отладки dbgs | Конфигуратор, EDT | Только при отладке по HTTP |
1433 | MS SQL Server | Сервер 1С | Если СУБД на отдельной машине |
1434 UDP | SQL Server Browser | Сервер 1С | Для именованного экземпляра SQL с динамическим портом |
5432 | PostgreSQL | Сервер 1С | Если СУБД на отдельной машине |
475 TCP и UDP | Менеджер лицензий HASP | Клиенты с сетевым ключом | Только при аппаратных сетевых ключах |
80, 443 | Веб-сервер IIS или Apache | Браузеры, мобильные клиенты, HTTP-сервисы | Только при веб-публикации базы |
Если СУБД стоит на той же машине, что и сервер 1С, её порт наружу открывать не надо вовсе. Это самый простой способ закрыть лишнюю дверь.
Диапазон 1560-1591 — это 32 порта. На нагруженном сервере с большим количеством рабочих процессов его расширяют в свойствах рабочего сервера в консоли администрирования. После расширения не забудьте добавить новые порты в правило брандмауэра, иначе часть процессов окажется недоступной и ошибка будет появляться «через раз».
На клиентских компьютерах входящие порты для работы с сервером 1С открывать не нужно. Клиент сам инициирует соединение, а ответ брандмауэр пропускает автоматически.
Открываем порты в брандмауэре Windows
Есть три способа: через оснастку, командой netsh и через PowerShell. Результат одинаковый, выбирайте удобный.
Через оснастку «Брандмауэр Защитника Windows»
- Нажмите
Win + R, введитеwf.mscи нажмите Enter. - Слева выберите Правила для входящих подключений, справа — Создать правило.
- Тип правила — Для порта, протокол TCP.
- В поле определённых локальных портов впишите
1540-1541, 1560-1591. - Действие — Разрешить подключение.
- Профили — оставьте Доменный и Частный. Публичный отмечайте, только если сервер реально подключён к сети с таким профилем.
- Имя правила — например,
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 — порт закрыт брандмауэром, служба не запущена или имя не разрешается.
netstat, она могла запуститься с другими параметрами порта.ping по имени с клиента, при необходимости добавьте запись в hosts.listen_addresses и pg_hba.conf.Временно выключать брандмауэр целиком ради проверки — плохая идея на боевом сервере. Если очень нужно, отключите на пару минут только нужный профиль и сразу включите обратно, а лучше проверьте конкретное правило через 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.
Частые вопросы
Нужно ли открывать порты на компьютерах пользователей?
Для файловой базы нужны порты 1540-1591?
445). Порты сервера 1С нужны только в клиент-серверном режиме.Сколько портов нужно в диапазоне рабочих процессов?
Почему консоль администрирования подключается, а пользователи нет?
1540, а пользователям нужны ещё 1541 и диапазон рабочих процессов. Проверьте их отдельно через Test-NetConnection.