Сервер 1С не отвечает: ищем закрытый или занятый порт

· 9 мин

Содержание

Чтобы проверить порты 1С, выполните с компьютера пользователя Test-NetConnection srv1c -Port 1540, затем то же для 1541 и любого порта из диапазона 1560–1591. Если хоть один ответ TcpTestSucceeded : False, соединение с сервером 1С:Предприятия режет брандмауэр, служба не запущена или порт занят другой программой.

Проверять нужно с компьютера пользователя, у которого возникает ошибка, а не с самого сервера: только так видно, доходят ли пакеты по сети. Порты одинаковы для любой конфигурации, будь то БП, ЗУП или УТ, потому что работу с сетью обеспечивает платформа 8.3 в клиент-серверном варианте, а не прикладное решение.

Если порты открыты, но вход в базу всё равно не удаётся, чаще всего виновато не сетевое правило, а имя сервера, которое клиент не может разрешить. Тогда первым делом выполните на клиенте ping по имени сервера, под которым он записан в консоли кластера, а не по IP-адресу.

Какие порты нужны серверу 1С:Предприятия 8.3

Клиент подключается к серверу в три шага. Сначала он стучится к агенту сервера, тот передаёт его менеджеру кластера, а менеджер направляет на рабочий процесс. Каждому этапу нужен свой порт.

ПортПроцессЗачем
1540ragent (агент сервера)первая точка входа, сюда же подключается консоль администрирования
1541rmngr (менеджер кластера)распределение клиентов по рабочим процессам
1560–1591rphost (рабочие процессы)обмен данными с клиентом во время работы
1545ras (сервер администрирования)нужен утилите rac и сторонним консолям
1542crserverсервер хранилища конфигурации, если он установлен
1433 / 5432MS SQL / PostgreSQLсвязь рабочих процессов с СУБД, клиенту не нужен
475менеджер лицензий HASPтолько при аппаратных ключах защиты

📌 Стандартные номера можно сменить. Второй кластер на том же сервере обычно ставят на 2540, 2541 и 2560–2591. Тогда в списке баз у клиента сервер указывают с портом кластера: srv1c:2541.

Клиенту открывают 1540, 1541 и весь диапазон рабочих процессов. Порт СУБД нужен только серверу 1С: пользователи к базе данных напрямую не ходят.

Где посмотреть фактические порты

Не доверяйте таблице, пока не сверились с сервером. Порты задаются при запуске службы агента:

  1. Откройте services.msc на сервере.
  2. Найдите службу агента сервера 1С:Предприятия 8.3 и откройте её свойства.
  3. В поле «Исполняемый файл» будет строка вида:
"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 — диапазон рабочих процессов. Если параметров нет, используются стандартные значения.

Проверка доступности портов из консоли кластера

Консоль администрирования серверов 1С — первый инструмент проверки. Она подключается к агенту по порту 1540, поэтому уже сам факт подключения говорит, что этот порт открыт.

  1. Запустите «Администрирование серверов 1С Предприятия» на любом компьютере сети.
  2. Добавьте центральный сервер: имя сервера и IP-порт 1540.
  3. Раскройте кластер, затем «Рабочие серверы» → ваш сервер → «Свойства».
  4. Посмотрите поле с диапазоном IP-портов: именно этот диапазон должен быть открыт на брандмауэре.
  5. В ветке «Рабочие процессы» видны запущенные rphost и порт каждого из них.

Если консоль не запускается

Частая история после обновления платформы: оснастка выдаёт ошибку ещё до попытки соединения. Порты тут ни при чём, слетела регистрация библиотеки. Выполните в командной строке от имени администратора:

regsvr32 "C:\Program Files\1cv8\8.3.xx.xxxx\bin\radmin.dll"

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

Консоль, подключённая с другого компьютера, проверяет только порт 1540. Рабочие процессы она не трогает, поэтому успешное подключение консоли не гарантирует, что пользователи войдут в базу.

Диагностика портов 1С через telnet, PowerShell и PortQry

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

Test-NetConnection — встроен в Windows

Test-NetConnection srv1c -Port 1540
Test-NetConnection srv1c -Port 1541
Test-NetConnection srv1c -Port 1560

Смотрите на строку TcpTestSucceeded. True — порт открыт и кто-то его слушает. False — соединение отклонено или не дошло.

Проверить весь диапазон рабочих процессов одной командой:

1560..1591 | ForEach-Object {
  $r = Test-NetConnection srv1c -Port $_ -WarningAction SilentlyContinue
  "{0}  {1}" -f $_, $r.TcpTestSucceeded
}

Не пугайтесь, если открыты не все 32 порта. Рабочий процесс занимает порт из диапазона только когда запущен, остальные просто никто не слушает. Важно, чтобы порты запущенных rphost (их видно в консоли) отвечали True.

Telnet — по старинке

Клиент telnet в Windows по умолчанию выключен. Включается командой от администратора:

dism /online /Enable-Feature /FeatureName:TelnetClient

Проверка: telnet srv1c 1540. Чёрный пустой экран — порт открыт. Сообщение о невозможности открыть подключение — закрыт.

PortQry — когда нужен точный статус

Утилита Microsoft PortQry различает три состояния, и это полезно для диагностики:

portqry -n srv1c -e 1540 -p TCP
portqry -n srv1c -r 1560:1591 -p TCP
  • ✅ LISTENING — порт открыт, служба отвечает.
  • ❌ NOT LISTENING — пакеты доходят, но на порту никого нет: служба 1С остановлена или слушает другой порт.
  • 🚧 FILTERED — ответа нет совсем: пакеты режет брандмауэр по пути.

Кто занял порт на сервере

Если служба агента не стартует, проверьте, не захватила ли порт другая программа:

netstat -ano | findstr :1540
tasklist /FI "PID eq 4321"

Вместо 4321 подставьте PID из последней колонки netstat. В PowerShell то же самое: Get-NetTCPConnection -LocalPort 1540 -State Listen. Если порт держит не ragent.exe, а посторонний процесс, — либо освобождайте порт, либо переносите кластер на другие номера.

Технологический журнал и консоль кластера: что смотреть

Когда порты по тестам открыты, а соединение всё равно рвётся, нужны логи.

Журнал событий Windows. Откройте eventvwr.msc → «Журналы Windows» → «Приложение» и отфильтруйте по источнику, связанному с 1С. Ошибки старта службы и падения рабочих процессов видны там.

Технологический журнал. Включается файлом logcfg.xml в каталоге conf платформы (C:\Program Files\1cv8\conf). Минимальная настройка для сетевых проблем:

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
  <log location="C:\1C_TechLog" history="24">
    <event>
      <eq property="name" value="EXCP"/>
    </event>
    <event>
      <eq property="name" value="CONN"/>
    </event>
  </log>
</config>

События EXCP показывают исключения с текстом ошибки, CONN — установку и разрыв соединений. Каталог C:\1C_TechLog создайте заранее и дайте на него права пользователю, под которым работает служба.

Технологический журнал быстро растёт. Включайте его на время диагностики и убирайте logcfg.xml сразу после, иначе диск сервера заполнится за несколько дней.

Консоль кластера. Ветка «Сеансы» покажет, доходят ли пользователи до сервера вообще. Если сеанса нет, проблема на входе (1540–1541). Если сеанс был и пропал, смотрите рабочие процессы и их порты.

Как открыть порты 1С в брандмауэре Windows

Через графический интерфейс: wf.msc → «Правила для входящих подключений» → «Создать правило» → «Для порта» → TCP → указать 1540-1541, 1560-1591 → «Разрешить подключение» → выбрать профили сети.

Быстрее одной командой PowerShell от администратора:

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

Если используете rac и сервер хранилища, добавьте 1545 и 1542 отдельным правилом. Не открывайте эти порты наружу в интернет: правило лучше ограничить подсетью офиса параметром -RemoteAddress 192.168.1.0/24.

Проверьте профиль сети. Сервер в домене живёт в профиле «Доменный»; правило, созданное только для «Частного», на нём не сработает.

Помимо брандмауэра Windows, порты может блокировать антивирус с собственным сетевым экраном. Если правило есть, а PortQry показывает FILTERED, проверьте его настройки.

Проверка портов 1С в Linux и на виртуальных машинах

Сервер 1С на Linux

Слушает ли сервер нужные порты:

sudo ss -tlnp | grep -E 'ragent|rmngr|rphost'

Проверка с другой Linux-машины:

nc -zv srv1c 1540
nc -zv srv1c 1560-1591

Служба сервера в старых сборках называется srv1cv83, в новых версиях платформы используется systemd-юнит с номером версии в имени. Найти его можно командой systemctl list-units | grep 1c.

Открыть порты в firewalld (CentOS, РЕД ОС, Astra в части конфигураций):

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

В Ubuntu и Debian с ufw:

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

Виртуализация и облака

  • 🖥️ Hyper-V, VMware с NAT. Порты нужно пробросить на хосте или перевести виртуальную машину в режим моста. Иначе клиент видит хост, а не сервер 1С.
  • ☁️ Облачный VPS. Кроме брандмауэра в самой ОС, у провайдера обычно есть свои правила (группы безопасности, облачный файрвол). Открывать порты надо в обоих местах.
  • 🐳 Docker. Пробросить нужно весь диапазон, а имя хоста контейнера должно разрешаться у клиентов. Сервер 1С сообщает клиенту своё имя, и если оно внутреннее, вида случайного ID контейнера, подключение оборвётся после первого шага.

Почему не подключается к серверу 1С: разбор ошибок

Главный приём, который пропускают: клиенту мало видеть IP сервера, он должен разрешать его имя. Агент на порту 1540 отвечает клиенту адресом менеджера по имени компьютера, под которым зарегистрирован кластер. Если это имя не резолвится у пользователя, первый порт проверяется успешно, а подключение всё равно падает.

Проверка: ping srv1c по имени из консоли кластера (ветка «Рабочие серверы»). Нет ответа — добавьте запись в DNS или в файл C:\Windows\System32\drivers\etc\hosts на клиенте:

192.168.1.10   srv1c

Остальные типовые ситуации собраны в подсказке:

Диагностика: выберите симптом

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

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

Нужно ли открывать порты 1С на компьютерах пользователей?
Нет. Входящие подключения принимает только сервер. На клиенте должен быть разрешён исходящий трафик, а он в Windows по умолчанию открыт.
Можно ли сузить диапазон 1560–1591?
Можно, но в нём должно хватать портов на все рабочие процессы с запасом. Каждый rphost занимает свой порт, и при нехватке новые процессы не запустятся.
Файловую базу по сети тоже проверяют по портам 1С?
Нет. Файловая база открывается через общую папку по протоколу SMB, это порт 445. Порты 1540–1591 нужны только клиент-серверному варианту.
Работает ли проверка портов через VPN?
Да, команды те же. Если через VPN не проходит только диапазон рабочих процессов, проверьте правила VPN-шлюза: часто разрешают лишь 1540–1541.
Веб-клиенту нужны порты 1540–1591?
Пользователю нет: он ходит на веб-сервер по 80 или 443. Порты 1С нужны самому веб-серверу, если он стоит на отдельной машине от сервера 1С.