На каких портах работает сервер 1С 8.3 и как их открыть
Содержание
Сервер 1С 8.3 по умолчанию работает на портах TCP 1540 (агент сервера), 1541 (менеджер кластера) и диапазоне 1560–1591 (рабочие процессы). Чтобы клиенты подключались, в брандмауэре сервера нужно открыть все три позиции, а не только 1541, как часто думают.
Частое заблуждение — «открыл 1540 и 1541, этого хватит». Нет: после знакомства с менеджером клиент получает адрес конкретного рабочего процесса и дальше говорит с ним напрямую, по порту из диапазона. Если диапазон закрыт, база не откроется, хотя telnet на 1541 проходит.
Как клиент 1С соединяется с сервером: путь по шагам
Подключение к клиент-серверной базе идёт в три этапа. Понимание этой цепочки сразу объясняет, какие порты и в каком порядке проверять.
- Клиент обращается к агенту сервера (
ragent) на порт 1540 и спрашивает, где живёт кластер. - Агент отдаёт адрес менеджера кластера (
rmngr), клиент идёт на порт 1541. Менеджер знает список информационных баз и проверяет, кому можно работать. - Менеджер назначает рабочий процесс (
rphost) и сообщает клиенту его адрес и порт из диапазона 1560–1591. Дальше весь обмен данными идёт с рабочим процессом. - Рабочий процесс сам подключается к СУБД — уже по её порту (1433 у MS SQL, 5432 у PostgreSQL).
Консоль администрирования кластера тоже ходит через агент, то есть на 1540. Утилита rac подключается не к агенту напрямую, а к серверу администрирования ras (по умолчанию порт 1545).
Клиенту СУБД не нужна вообще. Порт 1433 или 5432 должен быть доступен только с серверов 1С, а не с рабочих мест бухгалтеров. Так безопаснее.
Есть ещё одна деталь, на которой спотыкаются чаще, чем на самих портах. Менеджер отдаёт клиенту адрес рабочего процесса по имени сервера, как оно записано в кластере. Если рабочая станция это имя не разрешает (нет записи в DNS, другой домен, подключение через VPN), соединение рвётся на третьем шаге. Лечится записью в DNS или в файле C:\Windows\System32\drivers\etc\hosts на клиенте.
Список портов сервера 1С:Предприятие 8.3
Сводная таблица того, что может слушать сервер с установленной платформой и окружением.
| Порт | Протокол | Кто слушает | Нужен ли клиентам |
|---|---|---|---|
| 1540 | TCP | Агент сервера ragent | Да |
| 1541 | TCP | Менеджер кластера rmngr | Да |
| 1560–1591 | TCP | Рабочие процессы rphost, доп. менеджеры | Да |
| 1545 | TCP | Сервер администрирования ras | Только админам с rac |
| 1542 | TCP | Сервер хранилища конфигурации crserver | Только разработчикам |
| 1550 | TCP | Сервер отладки dbgs (HTTP-отладка) | Только разработчикам |
| 1433 | TCP | MS SQL Server | Нет, только серверам 1С |
| 1434 | UDP | SQL Server Browser (именованные экземпляры) | Нет |
| 5432 | TCP | PostgreSQL | Нет, только серверам 1С |
| 80 / 443 | TCP | Веб-сервер (Apache, IIS) с публикацией | Да, для веб- и тонкого клиента по HTTP |
| 475 | TCP/UDP | Менеджер лицензий HASP (аппаратные ключи) | Да, если ключ сетевой |
| 445 | TCP | Общая папка Windows (SMB) | Только для файловых баз |
Порты 1542 и 1550 не открыты «сами по себе». Они появляются, только если вы запустили сервер хранилища или включили HTTP-отладку. Порт 1545 появится, если запущена служба ras.
Публиковать 1540–1591 в интернет напрямую нельзя. Удалённым сотрудникам давайте доступ через VPN, удалённый рабочий стол или веб-публикацию по HTTPS.
Диапазон портов рабочих процессов: зачем он и как его поменять
Диапазон 1560–1591 — это 32 порта. Каждый рабочий процесс занимает порт из него. Если на сервере включён режим отдельного менеджера под каждый сервис, дополнительные менеджеры кластера тоже берут порты отсюда.
На обычном сервере 32 порта хватает с запасом. Сужать диапазон до 2–3 портов не стоит: при росте числа рабочих процессов новым просто не достанется порта, и пользователи получат ошибку подключения.
Где задаётся диапазон
Диапазон настраивается в свойствах рабочего сервера, а не кластера:
- Откройте консоль администрирования серверов 1С.
- Разверните
Кластеры → <ваш кластер> → Рабочие серверы. - Откройте свойства нужного рабочего сервера и найдите поле с диапазоном IP-портов.
- Добавьте или замените диапазон, сохраните.
Новые порты начинают использоваться рабочими процессами при их следующем запуске. Перезапуск рабочих процессов или службы обрывает сеансы пользователей — делайте это вне рабочего времени и после предупреждения сотрудников.
Параметры службы при установке
Базовые порты задаются параметрами запуска агента. На Windows они видны в пути к исполняемому файлу службы «Агент сервера 1С:Предприятия 8.3» (services.msc → свойства службы):
"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— каталог данных кластераsrvinfo.
На Linux те же ключи передаются агенту в параметрах службы (systemd-юнит или конфигурационный файл службы, в зависимости от версии платформы и способа установки).
Два сервера 1С на одной машине
Типичный случай — разные версии платформы на одном сервере, например для теста обновления. Второму экземпляру выдают свой набор портов, обычно со сдвигом на тысячу: -port 2540 -regport 2541 -range 2560:2591 и отдельный каталог -d. В строке подключения клиента тогда указывают порт явно: srv1c:2541.
Порты для связи с СУБД: MS SQL и PostgreSQL
Это внутренний трафик между рабочими процессами 1С и сервером баз данных. Если СУБД стоит на той же машине, что и 1С, брандмауэр его не касается — соединение идёт локально.
MS SQL Server
- Экземпляр по умолчанию слушает TCP 1433.
- Именованный экземпляр (
SQLSRV\BUH) часто получает динамический порт. Его ищет служба SQL Server Browser через UDP 1434. - Надёжнее закрепить порт экземпляра статически в SQL Server Configuration Manager (протоколы → TCP/IP → вкладка IP-адресов) и открыть только его.
- Проверьте, что протокол TCP/IP вообще включён — после установки он бывает выключен.
PostgreSQL
- По умолчанию слушает TCP 5432.
- Адрес, на котором сервер принимает соединения, задаёт
listen_addressesвpostgresql.conf. Значениеlocalhostне пустит удалённый сервер 1С. - Кому разрешено подключаться, определяет
pg_hba.conf. Добавьте строку с IP-адресом сервера 1С и методом аутентификации. - После правки
postgresql.confнужен перезапуск службы, послеpg_hba.confдостаточно перечитать конфигурацию.
# Разрешить подключение к PostgreSQL с сервера 1С 10.0.0.15
echo "host all all 10.0.0.15/32 scram-sha-256" | sudo tee -a /etc/postgresql/16/main/pg_hba.conf
sudo systemctl reload postgresql
Путь к pg_hba.conf зависит от версии и сборки PostgreSQL. Узнать его можно запросом SHOW hba_file; в psql.
Правила брандмауэра для сервера 1С: Windows и Linux
Открывайте порты на входящие соединения на самом сервере 1С. На клиентах обычно ничего настраивать не нужно: исходящий трафик Windows по умолчанию пропускает.
Windows Server
Через PowerShell от администратора:
New-NetFirewallRule -DisplayName "1C Server 8.3" -Direction Inbound -Protocol TCP -LocalPort 1540,1541,1560-1591 -Action Allow
То же через netsh, если PowerShell под рукой нет:
netsh advfirewall firewall add rule name="1C Server 8.3" dir=in action=allow protocol=TCP localport=1540-1541,1560-1591
Ограничить правило подсетью офиса можно параметром -RemoteAddress 192.168.10.0/24 в PowerShell или remoteip=192.168.10.0/24 в netsh.
Для MS SQL на отдельном сервере добавьте правило на 1433, а при именованном экземпляре — его статический порт.
Linux (ufw и firewalld)
Ubuntu и Debian с ufw:
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
RHEL-подобные системы с firewalld:
sudo firewall-cmd --permanent --add-port=1540-1541/tcp
sudo firewall-cmd --permanent --add-port=1560-1591/tcp
sudo firewall-cmd --reload
Если меняли диапазон или порты агента, правила брандмауэра нужно поправить вслед. Забытое правило под старый диапазон — классика после переезда сервера.
Не забудьте про внешние фильтры: антивирус с сетевым экраном, облачные security groups, правила на маршрутизаторе между филиалами. Порт может быть открыт в Windows и закрыт уровнем выше.
Как проверить порты и найти причину отказа подключения
Идите по цепочке из первого раздела: сначала слушает ли сервер, потом доступен ли порт с клиента, потом разрешается ли имя.
Шаг 1. Слушает ли сервер нужные порты
На Windows-сервере:
netstat -ano | findstr ":1540 :1541 :156"
В выводе должны быть строки LISTENING. Последний столбец — PID. Сопоставьте его с процессом в диспетчере задач на вкладке «Подробности»: 1540 держит ragent.exe, 1541 — rmngr.exe, порты диапазона — rphost.exe.
На Linux:
sudo ss -tlnp | grep -E ':15(4[0-5]|[6-9][0-9])'
Если 1540 никто не слушает — служба агента не запущена или стартовала с другими параметрами. Если порт занят чужим процессом, агент не поднимется: смотрите журнал служб.
Шаг 2. Доступен ли порт с рабочего места
С клиента в PowerShell:
Test-NetConnection srv1c -Port 1541
Строка TcpTestSucceeded : True — порт доступен. Проверьте так 1540, 1541 и хотя бы один порт рабочего процесса, который вы увидели в netstat на сервере.
На Linux-клиенте то же делает nc -zv srv1c 1541.
Шаг 3. Разрешается ли имя сервера
Выполните на клиенте ping srv1c или Resolve-DnsName srv1c по тому имени, которое указано в свойствах рабочего сервера в консоли кластера. Если имя не находится, а по IP-адресу порты доступны — проблема в DNS, не в брандмауэре.
Расшифровка типичных ошибок
Когда порты сервера 1С вообще не нужны
Не каждая схема работы требует открывать 1540–1591 для пользователей. Выбор схемы иногда решает задачу проще, чем настройка правил.
| Схема | Какие порты нужны пользователю | Когда подходит |
|---|---|---|
| Клиент-сервер в локальной сети | 1540, 1541, 1560–1591 | Офис, один сегмент сети |
| Веб-публикация, тонкий клиент по HTTP | 80 или 443 | Филиалы, удалёнка без VPN |
| Удалённый рабочий стол (RDP, RemoteApp) | 3389 до терминального сервера | Много удалённых пользователей |
| Файловая база | 445 (общая папка) | 1–3 пользователя |
При веб-публикации порты кластера нужны только веб-серверу: он сам ходит к агенту и менеджеру. Пользователю хватает HTTPS, а сервер 1С остаётся закрыт снаружи.
Частые вопросы
Можно ли запустить сервер 1С на нестандартных портах?
-port, -regport и -range в параметрах службы агента и укажите порт в строке подключения клиента: srv1c:2541.