Порты для подключения тонкого клиента 1С к серверу и веб-публикации

· 9 мин

Содержание

Тонкому клиенту 1С нужен один из двух путей к базе, и порты у них разные. Клиент-серверная база : открыть 1540, 1541 и диапазон 1560-1591 на сервере 1С. Веб-публикация: достаточно 80 или 443 на веб-сервере. Если ограничить сетевой доступ по этим значениям, а тонкий клиент всё равно не подключается, дело почти всегда в диапазоне рабочих процессов или во втором, внутреннем сегменте сети.

Ниже схема соединения, таблица портов, правила для брандмауэра Windows и Linux и способы проверки связи. Все значения указаны для стандартных настроек; если администратор менял параметры службы сервера 1С, ориентируйтесь на его значения.

Как тонкий клиент ходит к базе: три схемы подключения

Порты зависят от того, как опубликована база. Сначала определите свою схему, иначе откроете лишнее или не откроете нужное.

СхемаЧто делает клиентЧто должно быть доступно
Файловая база по сетиЧитает файл 1Cv8.1CD из общей папкиПорты SMB (445) до файлового сервера
Клиент-серверПодключается к серверу 1С напрямую1540, 1541, 1560-1591
Веб-сервер (тонкий клиент по HTTP)Обращается к .vrd-публикации, дальше веб-сервер идёт к серверу 1С самТолько 80 / 443 до веб-сервера

Для клиент-серверной базы цепочка такая. Клиент обращается к агенту сервера (ragent) на порт 1540. Агент перенаправляет его к менеджеру кластера (rmngr), который слушает 1541. Менеджер назначает сеансу рабочий процесс (rphost), и дальше клиент работает уже с ним на одном из портов диапазона 1560-1591.

Именно поэтому открытых 1540 и 1541 мало. Соединение установится, а на этапе открытия базы зависнет или выдаст ошибку.

Тонкий клиент с веб-публикацией сам к серверу 1С не стучится. Все порты кластера в этом случае нужны только между веб-сервером и сервером 1С, а клиентам достаточно HTTP/HTTPS.

Порты клиент-серверного режима: ragent, rmngr, rphost

Базовый набор для кластера со стандартными настройками:

  • 🔹 1540 (TCP) — главный агент сервера, точка первого контакта;
  • 🔹 1541 (TCP) — менеджер кластера;
  • 🔹 1560-1591 (TCP) — диапазон рабочих процессов;
  • 🔹 1545 (TCP) — сервер администрирования RAS, нужен только если вы им пользуетесь;
  • 🔹 1550 (TCP) — отладчик, нужен только разработчикам для отладки на сервере.

Подключиться к серверу 1С можно из строки Srvr="имя-сервера". Если порт агента не стандартный, его пишут через двоеточие: Srvr="app01:1640". Порты менеджера кластера и рабочих процессов задаются отдельно, поэтому после смены порта агента проверьте и их.

Так выглядит запуск агента вручную с явными портами (в продакшене то же самое прописывают в параметрах службы):

ragent.exe -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\1C\srvinfo"

Здесь -port — порт агента, -regport — порт менеджера кластера по умолчанию, -range — диапазон для рабочих процессов, -d — каталог служебных данных сервера.

Сколько портов нужно в диапазоне рабочих процессов

Рабочие процессы получают порты из диапазона по очереди. Чем больше процессов запущено, тем больше портов занято. Диапазон по умолчанию из 32 портов хватает почти всегда: в типичной базе на 50-100 пользователей работает несколько процессов.

Запас нужен, когда:

  1. в кластере много информационных баз и для каждой запущен отдельный процесс;
  2. включено несколько рабочих серверов в одном кластере (диапазон нужен на каждом);
  3. вы настроили ограничение «количество соединений на процесс» меньше обычного, и процессов стало больше.

Диапазон можно сузить, чтобы открыть меньше портов. Но тогда посчитайте максимум процессов заранее: когда свободных портов не остаётся, новый сеанс не получает процесс и подключение падает. Увеличивать диапазон безопаснее, чем урезать. Меняется он в параметрах службы агента сервера, после чего службу нужно перезапускать.

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

Порты веб-публикации: IIS, Apache, nginx

Если база опубликована для тонкого клиента через .vrd, пользователю нужен лишь порт веб-сервера:

ПротоколПорт по умолчаниюКогда используют
HTTP80внутренняя сеть, тестовая публикация
HTTPS443доступ из интернета, обязательно для внешних пользователей
Свой портнапример, 8080, 8443когда 80 и 443 заняты другим сайтом

Если порт нестандартный, клиент подключается по адресу вида http://server:8080/base. Тонкий клиент принимает такую запись в списке баз как адрес веб-сервера.

Между веб-сервером и сервером 1С схема та же, что в клиент-серверном режиме: 1540, 1541 и диапазон процессов должны быть доступны с веб-сервера. Если IIS и сервер 1С стоят на одной машине, внутренние соединения идут через loopback, и снаружи этих портов открывать не нужно.

Из интернета наружу публикуйте только 443. Порты кластера не стоит выводить в публичную сеть. Если нужен удалённый доступ, используйте VPN или веб-публикацию с TLS.

Брандмауэр Windows: правила для сервера 1С

На Windows Server открыть порты можно в графической оснастке «Монитор брандмауэра Защитника Windows в режиме повышенной безопасности» или командой PowerShell. Команды удобнее: правила воспроизводятся на другом сервере и их легко описать в инструкции.

Запустите PowerShell от имени администратора:

New-NetFirewallRule -DisplayName "1C Server Agent" -Direction Inbound -Protocol TCP -LocalPort 1540,1541 -Action Allow
New-NetFirewallRule -DisplayName "1C Worker Processes" -Direction Inbound -Protocol TCP -LocalPort 1560-1591 -Action Allow

Если нужно ограничить доступ подсетью офиса, добавьте параметр -RemoteAddress:

New-NetFirewallRule -DisplayName "1C Server Agent LAN" -Direction Inbound -Protocol TCP -LocalPort 1540,1541 -RemoteAddress 192.168.10.0/24 -Action Allow

Для веб-сервера правило добавляется на тот сервер, где работает IIS или Apache:

New-NetFirewallRule -DisplayName "HTTPS" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow

Если правила создали в графической оснастке, проверьте две вещи: профиль сети (доменный, частный, общий) и направление. Правило, включённое только для доменного профиля, не сработает, если сервер определил сеть как общую.

Linux: firewalld и iptables

На Linux-сервере 1С открываются те же порты. Вид команд зависит от того, чем вы управляете межсетевым экраном.

firewalld (RHEL, CentOS, ALT, Rocky):

sudo firewall-cmd --permanent --add-port=1540-1541/tcp
sudo firewall-cmd --permanent --add-port=1560-1591/tcp
sudo firewall-cmd --reload
sudo firewall-cmd --list-ports

ufw (Ubuntu, Debian):

sudo ufw allow 1540:1541/tcp
sudo ufw allow 1560:1591/tcp
sudo ufw status

iptables напрямую:

sudo iptables -A INPUT -p tcp --dport 1540:1541 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 1560:1591 -j ACCEPT

Правила iptables после перезагрузки пропадут, если их не сохранить. В Debian и Ubuntu для этого есть пакет iptables-persistent, в системах с nftables правила записывают в конфигурацию этого сервиса.

Правило -A добавляет запись в конец цепочки. Если выше стоит запрещающее правило (например, DROP для всей сети), разрешение ниже не сработает. Смотрите порядок командой iptables -L INPUT -n --line-numbers.

Несколько серверов и кластеров: как не запутаться в портах

Когда в схеме больше одного рабочего сервера, правила нужны на каждом из них. Клиент может получить рабочий процесс на любом сервере кластера, поэтому диапазон 1560-1591 должен быть доступен со всех клиентских подсетей до всех рабочих серверов, а не только до главного.

Если на одной машине запущено два кластера, у второго должны быть свои порты агента и менеджера, иначе службы не смогут занять один и тот же порт. Для второго выбирают, например, 1640 и 1641 с диапазоном 1660:1691. В брандмауэре под него создают отдельные правила, а в строке подключения клиента указывают порт явно: Srvr="app01:1640".

Заведите таблицу портов в документации к серверу: какой кластер, какой агент, какой диапазон, кто имеет доступ. Через год, когда понадобится переносить сервер, она сэкономит часы поиска.

Проверка и диагностика: как понять, на каком порту обрыв

Если клиент не подключается, не гадайте, а проверьте каждый порт по цепочке с клиентской машины.

Проверка достижимости портов

В Windows:

Test-NetConnection -ComputerName app01 -Port 1540
Test-NetConnection -ComputerName app01 -Port 1541
Test-NetConnection -ComputerName app01 -Port 1560

В выводе смотрите строку TcpTestSucceeded. True — порт открыт и достижим, False — пакеты режутся или служба не слушает.

В Linux:

nc -zv app01 1540
nc -zv app01 1541
nc -zv app01 1560

Проверяйте именно первый порт диапазона и пару случайных из середины: частая ситуация, когда открыли 1560, а процессам досталась остальная часть диапазона.

Проверка на самом сервере

Убедитесь, что служба действительно слушает порты. В Windows:

netstat -ano | findstr "1540 1541 1560"

В Linux:

ss -tlnp | grep -E '1540|1541|156[0-9]'

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

Типичные картины сбоя

СимптомЧто проверить
Клиент не находит сервер вообще1540, имя сервера и DNS
Сервер находится, но база не открывается1541 и диапазон 1560-1591
Подключение работает у одних пользователей и не работает у другихсетевой экран между подсетями, маршрутизация, VPN
Подключение держится минуту и обрываетсяобрыв по таймауту на промежуточном устройстве (межсетевой экран, прокси)
Работает по IP, не работает по имениDNS и запись в hosts

Ещё один приём: если сервер скрыт за NAT, клиент получает от кластера внутренний адрес рабочего процесса, до которого не может достучаться. Это решается либо VPN, либо публикацией через веб-сервер.

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

  • 🚫 Открыли 1540 и 1541, а диапазон процессов забыли — самая частая причина «зависающего» подключения.
  • 🚫 Правило создали только для UDP. Все порты 1С в этой статье работают по TCP.
  • 🚫 Порты открыты на сервере, но закрыты на промежуточном сетевом оборудовании или у облачного провайдера. Группы безопасности в облаке настраиваются отдельно от ОС.
  • 🚫 Службу сервера перезапустили после смены диапазона, а правило брандмауэра не обновили: процессам достались порты вне разрешённого диапазона.
  • 🚫 Порты кластера выведены прямо в интернет «чтобы работало». Вместо этого опубликуйте базу через HTTPS или настройте VPN.
Диагностика: выберите симптом

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

Нужно ли открывать порты на клиентских компьютерах?
Нет. Подключение инициирует клиент, поэтому входящих правил на рабочих станциях не требуется. Исходящий трафик на нужные порты не должен блокироваться корпоративным экраном.
Можно ли изменить стандартные порты 1С?
Да. Порт агента, порт менеджера и диапазон процессов задаются в параметрах службы агента сервера. После изменения обновите правила брандмауэра и сообщите пользователям порт подключения, если он нестандартный.
Какие порты нужны для ключа защиты и сервера лицензий?
Для сетевого аппаратного ключа HASP обычно используют 1947 (TCP и UDP). Порт зависит от типа защиты, поэтому смотрите документацию вашего ключа.
Работает ли 1С через VPN без дополнительных портов?
Да, если VPN пропускает TCP-трафик до сервера на нужные порты. Отдельных портов для VPN в 1С нет. Если соединение нестабильно, проверьте MTU и таймауты на VPN-шлюзе.
Нужны ли порты для консоли администрирования кластера?
Для консоли серверов 1С достаточно подключения к агенту 1540. Отдельный сервер администрирования RAS слушает 1545, и этот порт открывают, только если используете его.