Какие порты открыть, чтобы сервер 1С работал без сбоев
Содержание
Для корректной работы сервера 1С:Предприятие 8.3 на нём должны быть открыты входящие TCP-порты 1540 (агент сервера), 1541 (менеджер кластера) и диапазон 1560–1591 (рабочие процессы). Это значения по умолчанию. К ним добавляются порт СУБД (5432 для PostgreSQL, 1433 для MS SQL), 80/443 для веб-публикации, 475 или 1947 для сетевого ключа HASP и 3389 для RDP, если администрируете сервер удалённо.
Все порты из этого списка открываются только для тех, кому они нужны. Клиентам — порты кластера, серверу 1С — порт СУБД, интернету — в лучшем случае 443 веб-публикации. Остальное держите закрытым.
Как устроены сетевые соединения в клиент-серверной 1С
Без понимания схемы правила firewall пишутся вслепую. Поток подключения такой:
- 🖥️ Толстый или тонкий клиент обращается к агенту сервера (
ragent, порт 1540). - 🔀 Дальше клиент работает с менеджером кластера (
rmngr, порт 1541). - ⚙️ Менеджер направляет сеанс в рабочий процесс (
rphost). Порт рабочего процесса берётся из диапазона, по умолчанию 1560–1591. - 🗄️ Рабочий процесс сам ходит в СУБД. Клиенту доступ к порту СУБД не нужен.
Отсюда главное правило: клиентским компьютерам нужны все три группы портов сервера 1С — 1540, 1541 и весь диапазон рабочих процессов. Открыли только 1541 — клиент увидит кластер, но сеанс не запустится.
| Компонент | Процесс | Порт по умолчанию | Кто подключается |
|---|---|---|---|
| Агент сервера | ragent | 1540/TCP | клиенты, консоль администрирования, RAS |
| Менеджер кластера | rmngr | 1541/TCP | клиенты, другие серверы кластера |
| Рабочие процессы | rphost | 1560–1591/TCP | клиенты, веб-сервер |
| Сервер администрирования | ras | 1545/TCP | утилита rac, сторонние консоли |
| Сервер отладки | dbgs | 1550/TCP | Конфигуратор, EDT при отладке |
| PostgreSQL | postgres | 5432/TCP | рабочие процессы 1С |
| MS SQL Server | sqlservr | 1433/TCP, браузер 1434/UDP | рабочие процессы 1С |
| Веб-сервер | IIS / Apache | 80, 443/TCP | тонкий и веб-клиент через HTTP |
| HASP License Manager | hasplm | 475/UDP | клиенты с сетевым ключом |
| Sentinel LDK | hasplms | 1947/TCP и UDP | клиенты с сетевым ключом нового драйвера |
| RDP | TermService | 3389/TCP | администратор, терминальные пользователи |
Файловой базе на сетевом диске порты 15xx не нужны вообще. Там работает обычный доступ к общей папке (SMB, 445/TCP).
Порты кластера серверов 1С и где их поменять
Номера портов задаются параметрами запуска службы агента. В Windows посмотрите их в свойствах службы «Агент сервера 1С:Предприятия 8.3» или в реестре: HKLM\SYSTEM\CurrentControlSet\Services\<имя службы>\ImagePath. Строка выглядит так:
"C:\Program Files\1cv8\8.3.24.1342\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
Здесь:
-port— порт агента;-regport— порт главного менеджера кластера;-range— диапазон портов рабочих процессов, который служба использует при старте;-d— каталог реестра кластера (srvinfo).
В Linux те же параметры передаются в строке запуска службы ragent в unit-файле systemd или в файле с переменными окружения, который этот unit подключает. Номер версии платформы в путях у вас будет свой.
Диапазон рабочих процессов
Диапазон, который реально выдаётся процессам, хранится в свойствах рабочего сервера. В консоли администрирования: кластер → Рабочие серверы → ваш сервер → Свойства, поле с диапазоном IP-портов. Его и нужно открыть в брандмауэре целиком.
Сколько портов нужно? Каждому рабочему процессу требуется несколько портов из диапазона. Стандартных 32 портов хватает для небольших и средних инсталляций. Если на сервере много баз и рабочих процессов, диапазон расширяют, например до 1560:1691, и сразу правят правило firewall.
Второй кластер на том же сервере
Когда на одной машине работают две версии платформы или два кластера, второму задают свои порты. Распространённая схема — сдвиг на тысячу: 2540, 2541, 2560–2591. В строке подключения клиента тогда указывают порт явно: Srvr="srv1c:2541";Ref="buh";.
Смена портов требует перезапуска службы агента. Все сеансы пользователей на этом сервере оборвутся. Делайте это вне рабочего времени и предупредите людей заранее.
RAS и сервер отладки
Сервер администрирования ras нужен, если кластером управляют через rac или веб-консоль. Запускается он отдельно и слушает 1545:
ras cluster --service --port=1545 localhost:1540
rac cluster list srv1c:1545
Сервер отладки по протоколу HTTP по умолчанию использует порт 1550. Его открывают только на тестовых серверах, где реально отлаживают код. На рабочем сервере отладку обычно держат выключенной.
Порты СУБД: PostgreSQL и MS SQL Server
К СУБД подключаются только рабочие процессы 1С. Поэтому порт СУБД открывают не для всей сети, а только для IP-адресов серверов 1С. Если 1С и СУБД стоят на одной машине, открывать порт наружу не нужно вовсе.
PostgreSQL
- Порт по умолчанию — 5432/TCP, задаётся параметром
portвpostgresql.conf. - Параметр
listen_addressesдолжен включать адрес, на котором ждут подключения от 1С, иначе PostgreSQL слушает толькоlocalhost. - В
pg_hba.confдобавьте строку, разрешающую подключение пользователя 1С с адреса сервера приложений.
# pg_hba.conf
host all postgres 10.0.0.15/32 scram-sha-256
MS SQL Server
- Экземпляр по умолчанию слушает 1433/TCP.
- Именованный экземпляр по умолчанию получает динамический порт. Тогда нужна служба SQL Server Browser на 1434/UDP, через неё клиент узнаёт реальный порт.
- Надёжнее закрепить статический порт: SQL Server Configuration Manager → сетевая конфигурация экземпляра → протокол TCP/IP → вкладка IP-адресов → раздел
IPAll. Очистите динамический порт и пропишите постоянный.
После закрепления статического порта у именованного экземпляра в настройках информационной базы в кластере 1С можно указать сервер СУБД как sqlsrv,1433. Тогда браузер SQL и порт 1434/UDP не понадобятся.
Веб-публикация баз через IIS или Apache
Публикация через веб-сервер — способ дать доступ к базе без открытия портов кластера наружу. Схема меняется так:
- 🌐 Пользователь подключается к веб-серверу по HTTP (80) или HTTPS (443).
- 🔌 Модуль расширения веб-сервера 1С (
wsisapi.dllдля IIS,wsap24.soилиwsap24.dllдля Apache 2.4) от имени веб-сервера подключается к кластеру по 1540, 1541 и диапазону рабочих процессов.
Значит, правила такие:
- На веб-сервере открыть входящие 80/443 для пользователей.
- Между веб-сервером и сервером 1С разрешить порты 1540, 1541 и 1560–1591. Если это одна машина — внутри неё ничего открывать не надо.
- Для внешних пользователей оставить только 443 с действующим TLS-сертификатом. Порт 80 используйте лишь для перенаправления на HTTPS.
Тонкий клиент при таком подключении работает по адресу вида https://1c.company.ru/buh. Порты 15xx на его компьютере и в его сети не участвуют.
Публикуйте во внешний мир только 443, а не порты кластера 1540–1591. Протокол кластера не рассчитан на прямой выход в интернет.
Лицензирование: HASP-ключи и программные лицензии
Сетевой аппаратный ключ HASP втыкается в один компьютер, а лицензии раздаёт по сети менеджер лицензий. Здесь два варианта в зависимости от драйвера:
| Менеджер лицензий | Порт | Протокол |
|---|---|---|
HASP License Manager (hasplm, старый) | 475 | UDP (и TCP) |
Sentinel LDK License Manager (hasplms) | 1947 | TCP и UDP |
Клиент ищет ключ широковещательным запросом. В сетях с несколькими подсетями или VPN такой поиск часто не доходит. Решение — явно прописать адрес менеджера лицензий в файле nethasp.ini в каталоге conf платформы:
[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 10.0.0.20
NH_USE_BROADCAST = Disabled
Программные лицензии 1С не требуют отдельного порта. В клиент-серверном варианте их выдаёт сам кластер, то есть они работают через те же 1540–1591. Интернет нужен только в момент активации или повторной активации — для обращения к центру лицензирования по HTTPS.
Удалённое администрирование: RDP и SSH
Сервер 1С почти всегда администрируют удалённо, и здесь важнее безопасность, чем удобство.
RDP (Windows Server)
- Порт по умолчанию — 3389/TCP.
- Не публикуйте 3389 в интернет напрямую. Подбор паролей к открытому RDP — самый частый способ взлома серверов с 1С.
- Варианты безопаснее: VPN до офиса, шлюз удалённых рабочих столов (RD Gateway, работает через 443), ограничение правила по IP-адресам администраторов.
- Смена порта — через параметр
PortNumberвHKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp. Это лишь уменьшает шум сканеров, но не защищает. Перед сменой откройте новый порт в брандмауэре, иначе потеряете доступ к серверу.
Если пользователи работают в 1С через терминальный сервер , клиенту нужен только RDP до терминала. Порты кластера должны быть открыты между терминальным сервером и сервером 1С.
При публикации 1С как RemoteApp публикуют 1cestart.exe или 1cv8c.exe. Пользователь видит окно 1С без рабочего стола сервера, а сетевые правила остаются теми же.
SSH (Linux)
- Порт 22/TCP. Отключите вход по паролю для root, используйте ключи.
- Консоль администрирования с рабочего места администратора можно пустить через SSH-туннель к 1540 или к RAS на 1545, не открывая эти порты в сеть.
Правила брандмауэра для сервера 1С
Правила пишите с ограничением по источнику. Ниже примеры для типичного случая: клиенты в сети 10.0.0.0/24, СУБД на той же машине.
Windows, PowerShell (от имени администратора):
New-NetFirewallRule -DisplayName "1C Server 8.3" -Direction Inbound -Protocol TCP `
-LocalPort 1540,1541,1560-1591 -RemoteAddress 10.0.0.0/24 -Action Allow
New-NetFirewallRule -DisplayName "1C RAS" -Direction Inbound -Protocol TCP `
-LocalPort 1545 -RemoteAddress 10.0.0.5 -Action Allow
То же через netsh:
netsh advfirewall firewall add rule name="1C Server 8.3" dir=in action=allow protocol=TCP localport=1540-1541,1560-1591 remoteip=10.0.0.0/24
Linux, ufw:
ufw allow from 10.0.0.0/24 to any port 1540:1541 proto tcp
ufw allow from 10.0.0.0/24 to any port 1560:1591 proto tcp
Linux, firewalld:
firewall-cmd --permanent --add-port=1540-1541/tcp
firewall-cmd --permanent --add-port=1560-1591/tcp
firewall-cmd --reload
В кластере из нескольких серверов порты 1540, 1541 и диапазон рабочих процессов должны быть открыты между всеми серверами в обе стороны. Иначе один из серверов будет выпадать из кластера.
Как проверить, что порты доступны
Проверку делайте с той машины, с которой подключается клиент, а не на самом сервере. Локально порт может быть открыт, а снаружи его закрывает брандмауэр.
Слушает ли сервер порт (на сервере 1С):
netstat -ano | findstr ":1540 :1541 :156"
ss -tlnp | grep -E ':15(4|6)'
Если в выводе нет строк в состоянии LISTENING, проблема не в firewall: служба агента не запущена или стартовала с другими портами.
Доступен ли порт по сети (с клиента):
Test-NetConnection srv1c -Port 1541
Test-NetConnection srv1c -Port 1560
TcpTestSucceeded : True — порт доступен. В Linux то же делают командой nc -zv srv1c 1541.
Проверьте не один порт из диапазона, а хотя бы два-три, на которых реально висят рабочие процессы. Их видно в выводе netstat на сервере.