Какие порты открыть, чтобы клиент 1С видел сервер, СУБД и веб-публикацию
Содержание
Клиент 1С подключается к серверу по TCP: агент сервера слушает порт 1540, менеджер кластера — 1541, рабочие процессы — диапазон 1560–1591. Для обычной клиент-серверной базы на файрволе сервера нужно открыть входящие соединения именно на эти три позиции: 1540, 1541 и 1560–1591. Веб-клиент и тонкий клиент через публикацию ходят на веб-сервер по 80 или 443, а с СУБД общается только сервер 1С, а не компьютеры пользователей.
Типичная ситуация: администратор поднял новый сервер, базы в консоли видны, а бухгалтер с соседнего компьютера получает Ошибка соединения с сервером 1С:Предприятия с кодом 10060 или 10061. Частая причина — закрытый диапазон рабочих процессов: 1541 открыли, а 1560–1591 забыли. Клиент находит кластер, но не может дойти до процесса, который обслуживает его базу.
Как устроено сетевое подключение клиента к серверу 1С
Сервер 1С:Предприятия 8.3 — это не одна программа, а несколько процессов. Каждый слушает свой порт, и клиент проходит их по цепочке.
- 🖥️ ragent — агент сервера. Точка входа, к нему обращается клиент и консоль администрирования.
- 📋 rmngr — менеджер кластера. Хранит список баз, сеансов, распределяет нагрузку.
- ⚙️ rphost — рабочие процессы. Именно они выполняют код конфигурации и ходят в СУБД.
Порядок соединения такой:
- Клиент обращается к агенту сервера на
1540. - Далее — к менеджеру кластера на
1541, получает адрес рабочего процесса для своей базы. - Клиент открывает прямое соединение с назначенным
rphostна порту из диапазона1560–1591. Через это соединение идёт вся дальнейшая работа. - Рабочий процесс сам подключается к СУБД по её порту.
Отсюда главный вывод: недостаточно открыть один «порт 1С». Если не пропустить диапазон рабочих процессов, клиент дойдёт до шага 2 и упадёт на шаге 3.
Файловая база портов 1С не использует вовсе. Клиент открывает файл 1Cv8.1CD по сетевой папке, то есть работает протокол SMB (порт 445). Всё, что ниже, касается клиент-серверного варианта и веб-публикации.
Стандартные порты сервера 1С 8.3: сводная таблица
Значения по умолчанию, которые ставит установщик для первого экземпляра сервера:
| Порт / диапазон | Процесс | Кто подключается | Нужно ли открывать для клиентов |
|---|---|---|---|
1540 | ragent (агент сервера) | клиенты, консоль кластера | да |
1541 | rmngr (менеджер кластера) | клиенты, другие серверы кластера | да |
1560–1591 | rphost (рабочие процессы) | клиенты | да |
1545 | ras (сервер администрирования) | утилита rac, сторонние консоли | только для админов |
1542 | crserver (сервер хранилища конфигурации) | Конфигуратор разработчиков | только для разработчиков |
1550 | dbgs (сервер отладки) | Конфигуратор, EDT | только для разработчиков |
80 / 443 | веб-сервер (IIS, Apache) | веб-клиент, тонкий клиент по HTTP, мобильные приложения | да, если есть публикация |
Порты 1545, 1542 и 1550 открывать всему офису не нужно. Их достаточно пропустить с компьютеров администратора и разработчиков.
Что такое 1541 в строке подключения
При добавлении базы в список в поле «Кластер серверов
1С:Предприятия» пишут имя сервера, например srv-1c. Если кластер работает на нестандартном порту, указывают имя и порт менеджера кластера через двоеточие: srv-1c:2541. В строке подключения это выглядит как Srvr="srv-1c:2541";Ref="buh";.
Второй экземпляр сервера на той же машине
Два сервера разных версий платформы на одном компьютере не могут занимать одни и те же порты. Второму экземпляру обычно сдвигают все значения целиком: 2540, 2541, 2560–2591. Тогда клиенты второго кластера подключаются как srv-1c:2541.
Как поменять порты агента, кластера и рабочих процессов
Порты задаются в двух местах, и путать их нельзя.
Порты агента и менеджера — параметры службы
Агент запускается с параметрами командной строки:
ragent.exe -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug
-port— порт агента;-regport— порт главного менеджера кластера;-range— диапазон портов для рабочих процессов при первичной регистрации.
В Windows эта строка хранится в свойстве службы «Агент сервера 1С:Предприятия 8.3». Изменить её можно в реестре, параметр ImagePath в разделе службы под HKLM\SYSTEM\CurrentControlSet\Services\. В Linux параметры задаются в unit-файле службы srv1cv8 или в её файле настроек — путь зависит от версии платформы и способа установки.
Изменение параметров службы требует её перезапуска: все пользователи будут отключены от баз. Делайте это вне рабочего времени и предупредите людей заранее.
Если в каталоге srvinfo уже есть зарегистрированный кластер, смена -regport в строке запуска сама по себе не переносит существующий кластер на новый порт. Порт кластера меняется в его свойствах в консоли.
Диапазон рабочих процессов — свойства рабочего сервера
Диапазон для rphost правят в консоли кластера:
- Откройте
Администрирование серверов 1С Предприятия. - Раскройте
Центральные серверы 1С:Предприятия 8.3 → <имя сервера> → Кластеры → <кластер> → Рабочие серверы. - Откройте свойства нужного рабочего сервера.
- В поле «Диапазоны IP портов» задайте диапазон, например
1560:1591. - Сохраните. Новые рабочие процессы будут подниматься уже на этих портах.
Диапазон относится к конкретному рабочему серверу. В кластере из двух машин его настраивают у каждой отдельно, и на файрволе каждой машины открывают свой диапазон.
Сколько портов нужно в диапазоне
Каждый рабочий процесс занимает порты из диапазона, плюс часть уходит под служебные менеджеры кластера. Стандартных 32 портов хватает небольшому и среднему серверу. Если в консоли видно много процессов rphost, а в журнале появляются сообщения о нехватке портов, расширьте диапазон и не забудьте про правило файрвола.
Порты веб-сервера и HTTP-сервисов 1С
Опубликованная база работает через веб-сервер. Схема другая:
- 🌐 браузер, тонкий клиент «на веб-сервере», мобильное приложение и внешние системы через HTTP- и веб-сервисы подключаются к IIS или Apache по
80(HTTP) или443(HTTPS); - 🔗 модуль расширения веб-сервера 1С (
wsisapi.dllдля IIS,wsap24.soили аналог для Apache) сам подключается к кластеру по1540,1541и1560–1591.
Получается, что пользователям снаружи нужен только 443. Порты кластера открывают только между веб-сервером и сервером 1С. Если веб-сервер стоит на той же машине, что и сервер 1С, наружу вообще не нужно выпускать ничего, кроме HTTPS.
Порт 8080 не является «портом 1С». Его иногда назначают Apache, когда 80 занят другим сайтом. Тогда в адресе публикации порт пишут явно: http://srv-1c:8080/buh.
Для доступа из интернета публикуйте базу только по HTTPS с действующим сертификатом. Обычный HTTP передаёт логин и пароль пользователя 1С открытым текстом.
Порты СУБД: MS SQL Server, PostgreSQL, Oracle
С базой данных работает только рабочий процесс rphost. Компьютерам пользователей доступ к СУБД не нужен, и давать его не стоит.
| СУБД | Порт по умолчанию | Комментарий |
|---|---|---|
| Microsoft SQL Server | 1433 TCP | именованный экземпляр может получить динамический порт; служба SQL Browser отвечает на 1434 UDP |
| PostgreSQL | 5432 TCP | дополнительно разрешите адрес сервера 1С в pg_hba.conf |
| Oracle Database | 1521 TCP | порт слушателя (listener) |
| IBM Db2 | 50000 TCP | типичное значение, задаётся при создании экземпляра |
Подвох с именованным экземпляром SQL Server
Если база создана на экземпляре вида SQLSRV\BUH, SQL Server по умолчанию выделяет ему динамический порт. После перезагрузки порт может смениться, и правило файрвола перестанет работать. Решения два:
- Задать экземпляру фиксированный порт в SQL Server Configuration Manager (свойства протокола TCP/IP, вкладка с IP-адресами) и открыть именно его.
- Открыть
1434UDP для SQL Browser, чтобы клиент мог узнать текущий порт.
Первый вариант надёжнее. При фиксированном порте можно указать его прямо в поле «Сервер баз данных»: SQLSRV,14330 — через запятую, так принято у SQL Server.
Если СУБД и сервер 1С стоят на одной машине, порт СУБД наружу открывать не нужно совсем.
Как проверить, открыт ли порт и кто его слушает
Проверку делают с двух сторон: на самом сервере (слушает ли процесс) и с компьютера пользователя (доходит ли соединение).
На сервере Windows
Какие процессы 1С слушают порты:
netstat -ano | findstr "LISTENING" | findstr ":154 :156"
tasklist | findstr /I "ragent rmngr rphost"
Сопоставьте PID из первой команды с PID из второй. Если 1540 не слушается никем, служба агента не запущена или стартовала с другими параметрами.
С компьютера пользователя
В PowerShell:
Test-NetConnection srv-1c -Port 1540
Test-NetConnection srv-1c -Port 1541
Test-NetConnection srv-1c -Port 1561
Строка TcpTestSucceeded : True значит, что порт доступен. Для диапазона проверьте порт, который реально слушает работающий rphost — его видно в выводе netstat на сервере.
На сервере Linux
ss -tlnp | grep -E 'ragent|rmngr|rphost'
nc -zv srv-1c 1541
Проверка имени сервера
Частая причина, которую не видно по портам. Сервер 1С сообщает клиенту адрес рабочего процесса по своему имени компьютера. Если клиент не может это имя разрешить, соединение не установится, даже когда все порты открыты.
Проверьте на клиенте ping srv-1c по короткому имени, которое указано у сервера в консоли кластера. Не разрешается — добавьте запись в DNS или в файл C:\Windows\System32\drivers\etc\hosts.
-regport службы.1540, 1541 и диапазон рабочих процессов.1540–1541, а 1560–1591 закрыт. Добавьте диапазон в правило.hosts.Настройка файрвола для сервера 1С: правила и безопасность
Windows: одно правило на входящие
От имени администратора в командной строке:
netsh advfirewall firewall add rule name="1C Server 8.3" dir=in action=allow protocol=TCP localport=1540-1541,1560-1591
То же в PowerShell с ограничением по подсети офиса:
New-NetFirewallRule -DisplayName "1C Server 8.3" -Direction Inbound -Protocol TCP -LocalPort 1540,1541,"1560-1591" -RemoteAddress 192.168.10.0/24 -Action Allow
Linux: ufw или firewalld
# Ubuntu / Debian
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
# RHEL / Astra / РЕД ОС с firewalld
sudo firewall-cmd --permanent --add-port=1540-1541/tcp
sudo firewall-cmd --permanent --add-port=1560-1591/tcp
sudo firewall-cmd --reload
Чего не делать
- 🚫 Не пробрасывайте
1540,1541и1560–1591на роутере в интернет. Протокол сервера 1С не рассчитан на открытую сеть. Удалённых сотрудников подключайте через VPN или веб-публикацию по HTTPS. - 🚫 Не открывайте порт СУБД пользователям. Доступ к
1433или5432нужен только серверу 1С. - 🚫 Не оставляйте
1545(RAS) доступным всей сети. Через него можно управлять кластером, если у кластера не задан администратор. - 🚫 Не отключайте файрвол целиком «для проверки» и не забывайте включить обратно. Лучше точечное правило.
Задайте администратора кластера в консоли. Пока его нет, любой, кто дотянулся до 1540, может через консоль удалить базу из кластера или завершить сеансы пользователей.
Частые вопросы
Нужен ли UDP для подключения к серверу 1С?
1434) или менеджера лицензий аппаратных ключей.Какой порт у сервера лицензий HASP?
475. Если ключ стоит на другом компьютере, этот порт должен быть доступен с сервера 1С или клиентов, которые берут лицензию. Программные лицензии сетевых портов не требуют.Можно ли уменьшить диапазон 1560–1591 до нескольких портов?
Тонкий клиент подключается по HTTP — нужны ли ему порты 1540–1541?
80 или 443). Порты кластера нужны веб-серверу.Где посмотреть порт кластера, если его меняли до меня?
-port и -regport смотрите в свойствах службы или в unit-файле на Linux.