Какие порты занимает сервер 1С и где их узнать на своём компьютере
Содержание
Порт сервера 1С быстрее всего посмотреть в командной строке службы агента: у процесса ragent в параметрах указаны -port (агент, по умолчанию 1540), -regport (менеджер кластера, 1541) и -range (рабочие процессы, 1560:1591). Тот же набор видно в консоли кластера — в свойствах кластера и рабочего сервера. Порт базы данных задаётся не в 1С, а в настройках СУБД: у SQL Server по умолчанию 1433, у PostgreSQL — 5432.
Какой способ выбрать? Если есть доступ к серверу по RDP или SSH — смотрите параметры службы и netstat. Если сервер чужой, а консоль администрирования установлена у вас — открывайте свойства кластера. Если нужно лишь понять, «пробивается» ли порт с клиента, хватит одной команды Test-NetConnection.
Какие порты использует сервер 1С 8.3 по умолчанию
Сервер 1С — это не один процесс, а связка из нескольких. Каждый слушает свой порт, и клиент проходит их по цепочке: сначала агент, потом менеджер кластера, потом рабочий процесс.
| Компонент | Процесс | Порт по умолчанию | Протокол |
|---|---|---|---|
| Агент сервера | ragent | 1540 | TCP |
| Главный менеджер кластера | rmngr | 1541 | TCP |
| Рабочие процессы и доп. менеджеры | rphost, rmngr | 1560–1591 | TCP |
Сервер администрирования (для rac) | ras | 1545 | TCP |
| Сервер отладки по HTTP | dbgs | 1550 | TCP |
| Веб-публикация через IIS или Apache | веб-сервер | 80 / 443 | TCP |
Чтобы не путаться, держите в голове простую схему:
- 🔹 1540 — «дверь» в сервер. Через неё идёт консоль кластера и первичное обращение клиента.
- 🔹 1541 — порт кластера. Именно его подразумевают, когда пишут адрес сервера как
srv1c:1541. - 🔹 1560–1591 — диапазон, из которого рабочие процессы берут себе порты. Закрыт диапазон — клиент подключится к агенту, но базу не откроет.
Если на одном компьютере работают два сервера 1С разных версий, второй обычно ставят со смещением: 2540, 2541 и диапазон 2560:2591. Тогда в адресе базы пишут srv1c:2541.
Файловой базе порты 1С не нужны вообще. Клиент открывает файл 1Cv8.1CD по сетевой папке, а трафик идёт по протоколу SMB (порт 445).
Как узнать порт 1С по службе и процессам
Самый надёжный источник — параметры запуска агента. Что прописано в службе, то сервер и слушает.
Windows: параметры службы
- Откройте
services.msc. - Найдите службу, имя которой начинается с
1C:Enterprise 8.3 Server Agent. - Откройте её свойства и посмотрите поле «Исполняемый файл».
Там будет строка примерно такого вида:
"C:\Program Files\1cv8\8.3.24.1548\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug
Из неё читаем все три значения сразу. Если -port и -regport в строке нет, сервер работает на значениях по умолчанию: 1540 и 1541.
Та же информация одной командой PowerShell — удобно, когда служб несколько:
Get-CimInstance Win32_Service | Where-Object { $_.Name -like '1C*' } | Select-Object Name, State, PathName | Format-List
Linux: процессы и systemd
На Linux параметры видно прямо в списке процессов:
ps -ef | grep -E 'ragent|rmngr|ras' | grep -v grep
В выводе у ragent будут те же ключи -port, -regport, -range. Если сервер запущен как служба systemd, имя юнита можно найти так:
systemctl list-units --type=service | grep -i 1c
Проверка портов 1С через командную строку
Параметры службы говорят, какие порты сервер должен слушать. Сетевые утилиты показывают, какие он слушает на самом деле. Расхождение бывает: служба могла не стартовать, а порт мог занять другой процесс.
На самом сервере
Windows:
netstat -ano | findstr ":1540 :1541 :1545"
В последней колонке — PID процесса. Чтобы понять, чей это порт, сопоставьте PID с именем:
tasklist /fi "pid eq 4312"
Если вместо ragent.exe или rmngr.exe там чужая программа — порт перехвачен, и сервер 1С на нём не поднимется.
Посмотреть, какие порты уже взяли рабочие процессы, удобнее в PowerShell:
Get-NetTCPConnection -State Listen | Where-Object { (Get-Process -Id $_.OwningProcess).ProcessName -match 'ragent|rmngr|rphost|ras' } | Select-Object LocalPort, OwningProcess | Sort-Object LocalPort
Linux:
sudo ss -tlnp | grep -E 'ragent|rmngr|rphost|ras'
С компьютера пользователя
Здесь задача другая: проверить, доходит ли клиент до сервера. В Windows это делает PowerShell:
Test-NetConnection srv1c -Port 1541
В ответе смотрите строку TcpTestSucceeded. True — порт открыт и доступен, False — мешает брандмауэр, маршрут или служба не запущена.
Проверьте по очереди 1540, 1541 и один-два порта из рабочего диапазона, например 1560. Частая картина: 1540 и 1541 открыты, а диапазон закрыт. Тогда список баз в окне запуска виден, а сама база не открывается.
На Linux-клиенте вместо Test-NetConnection подойдёт nc -zv srv1c 1541.
Где посмотреть порт в консоли администрирования кластера
Консоль кластера показывает порты в трёх местах. Подключение к центральному серверу в ней настраивают по порту агента — 1540.
Свойства кластера
- В дереве консоли раскройте центральный сервер и ветку «Кластеры».
- Щёлкните правой кнопкой по кластеру и выберите «Свойства».
- Поле «IP-порт» — это порт главного менеджера кластера, по умолчанию 1541.
Именно этот номер пишут через двоеточие в адресе сервера при добавлении базы в список: srv1c:1541. Порт 1541 можно не указывать — клиент подставит его сам.
Свойства рабочего сервера
- Внутри кластера раскройте ветку «Рабочие серверы».
- Откройте свойства нужного сервера.
- Здесь видны «IP-порт» агента, «Диапазон IP-портов» для рабочих процессов и порт главного менеджера кластера.
Диапазон портов рабочих процессов задаётся только в свойствах рабочего сервера, а не кластера. Если сузили или сдвинули диапазон, правило в брандмауэре надо поменять вслед за ним.
Через rac
Если графической консоли нет, тот же результат даёт утилита rac через сервер администрирования ras (порт 1545):
rac localhost:1545 cluster list
В выводе у кластера есть поле port. Для рабочих серверов используйте rac server list --cluster=<id кластера> — там видны порт агента и диапазон портов. Полный список параметров покажет rac help.
Если консоль не открывается с ошибкой о незарегистрированном компоненте, порты ни при чём. Обычно помогает перерегистрация radmin.dll той же версии, что и сервер: regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\radmin.dll" из командной строки администратора.
Порт базы данных: SQL Server и PostgreSQL
Порт информационной базы в 1С — это на деле порт СУБД. Сервер 1С подключается к ней сам, клиент к СУБД не ходит.
| СУБД | Порт по умолчанию | Где посмотреть |
|---|---|---|
| Microsoft SQL Server (экземпляр по умолчанию) | 1433 TCP | SQL Server Configuration Manager → «Протоколы» → TCP/IP → вкладка «IP-адреса» |
| SQL Server, именованный экземпляр | динамический порт | там же, поле «Динамические TCP-порты» |
| Служба SQL Server Browser | 1434 UDP | нужна, если подключаетесь по имени экземпляра |
| PostgreSQL / Postgres Pro | 5432 TCP | параметр port в postgresql.conf |
Как узнать порт PostgreSQL
Из консоли psql под администратором:
SHOW port;
Или прямо в файле настроек:
grep -E '^\s*port' /var/lib/pgsql/data/postgresql.conf
Путь к postgresql.conf у разных сборок свой. Узнать его можно запросом SHOW config_file;.
Как указать нестандартный порт в 1С
Порт СУБД задают в свойствах информационной базы в консоли кластера, в поле «Сервер баз данных»:
- 🗄️ SQL Server — имя и порт через запятую:
sqlsrv,1435. Для именованного экземпляра —sqlsrv\INSTANCE. - 🐘 PostgreSQL — имя и параметр через пробел:
pgsrv port=5433.
Порт СУБД открывают только между сервером 1С и сервером СУБД. Пользователям он не нужен, и выставлять 1433 или 5432 наружу незачем.
Порты менеджера лицензий 1С
Тут всё зависит от типа лицензии.
- 🔑 Программные лицензии не требуют отдельного порта. Их выдаёт сам кластер 1С, лицензия привязана к оборудованию сервера. Достаточно портов сервера из первой таблицы.
- 🔌 Сетевые USB-ключи HASP обслуживает HASP License Manager. Он работает по UDP-порту 475 — именно его открывают в брандмауэре на компьютере с ключом.
- 🖥️ Драйвер Sentinel слушает порт 1947. На нём же работает его веб-страница
http://localhost:1947— там видно, какие ключи драйвер обнаружил.
Если клиенты не находят сетевой ключ, укажите адрес менеджера лицензий явно в файле nethasp.ini в каталоге conf платформы на клиенте:
[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.20
NH_USE_BROADCAST = Disabled
Явный адрес вместо широковещательного поиска убирает зависимость от того, пропускает ли сеть broadcast-пакеты.
Какие программные лицензии сейчас заняты сеансами, покажет rac session list --cluster=<id кластера> --licenses.
Как открыть порты 1С в брандмауэре
Набор правил для типового сервера: входящие TCP 1540, 1541 и диапазон 1560–1591. Если администрируете через rac с другого компьютера — ещё 1545. Если используется HASP-ключ — UDP 475 на машине с ключом.
Windows Server
Одной командой PowerShell от администратора:
New-NetFirewallRule -DisplayName "1C Server" -Direction Inbound -Protocol TCP -LocalPort 1540,1541,1560-1591 -Action Allow
То же через netsh, если PowerShell под рукой нет:
netsh advfirewall firewall add rule name="1C Server" dir=in action=allow protocol=TCP localport=1540-1541,1560-1591
Для HASP:
New-NetFirewallRule -DisplayName "HASP LM" -Direction Inbound -Protocol UDP -LocalPort 475 -Action Allow
Linux
ufw (Ubuntu, Debian):
sudo ufw allow 1540:1541/tcp
sudo ufw allow 1560:1591/tcp
firewalld (РЕД ОС, Astra, CentOS-подобные):
sudo firewall-cmd --permanent --add-port=1540-1541/tcp
sudo firewall-cmd --permanent --add-port=1560-1591/tcp
sudo firewall-cmd --reload
Не открывайте порты 1С в интернет напрямую. Для удалённых сотрудников надёжнее VPN, RDP-шлюз или веб-публикация по HTTPS.
Как сменить порты сервера 1С
Порты меняют, когда на одном сервере нужны две версии платформы или стандартный порт занят. Делается это перерегистрацией службы агента с новыми параметрами -port, -regport и -range.
Остановка службы агента обрывает все сеансы пользователей на этом сервере. Делайте это вне рабочего времени и предупредите людей заранее.
Порядок на Windows:
- Остановите службу
1C:Enterprise 8.3 Server Agent. - Перерегистрируйте её с новыми портами — например, через
ragent.exe -rmsrvc, затемragent.exe -instsrvcс нужными ключами. Точный набор ключей для вашей версии покажет справкаragent.exe -help. - Запустите службу и проверьте
netstat, что новые порты слушаются. - Поменяйте правила брандмауэра.
- В списке баз у пользователей допишите порт к имени сервера:
srv1c:2541.
Каталог srvinfo у нового экземпляра должен быть свой. Если два сервера будут писать в один каталог, реестр кластера испортится.