Как исправить ошибку «В соединении отказано» при настройке сервера 1С на Astra Linux?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При развертывании серверной версии 1С:Предприятие на операционных системах семейства Linux, в частности на Astra Linux, системные администраторы часто сталкиваются с ошибкой «В соединении отказано» (код ошибки 111). Эта ситуация возникает на этапе создания новой информационной базы через консоль администрирования или при попытке первого подключения. Разберем детально, почему возникает эта проблема и как ее решить, пройдя путь от простых сетевых проверок до глубокой настройки прав доступа и параметров СУБД.

Анализ природы ошибки 111

Для начала проанализируем само сообщение об ошибке: descr=10.206.76.3:1541:111(0x0000006F): В соединении отказано. В сетевой архитектуре Linux код 111 (ECONNREFUSED) означает, что попытка установления соединения была отклонена целевым хостом. Это принципиально отличается от ошибки тайм-аута (код 10060), когда сервер просто не отвечает. Ошибка 111 говорит нам об одном из двух сценариев:

  1. На указанном IP-адресе и порту (в нашем случае 1541) не запущено ни одно приложение (сервис 1С не «слушает» порт).
  2. Система защиты (брандмауэр или средства мандатного контроля доступа) активно блокирует входящий пакет и посылает ответ об отказе.

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

Шаг 1: Проверка состояния службы сервера 1С

Выясним, запущен ли процесс ragent, который отвечает за работу кластера 1С. В Astra Linux управление службами осуществляется через systemctl. Выполним команду для проверки статуса сервиса:


sudo systemctl status srv1cv8-8.3.x@default

Если в статусе указано failed или activating (restarting), значит, сервер 1С не может стартовать корректно. Проанализируем системный журнал, чтобы увидеть причину падения:


journalctl -u srv1cv8-8.3.x@default -n 50

Часто причиной остановки службы являются некорректные права на каталоги или отсутствие необходимых библиотек (включая лицензии) в системе.

Шаг 2: Проверка портов и сетевых интерфейсов

Проанализируем ситуацию, когда служба формально запущена, но порт 1541 недоступен. Выясним, какие порты реально «слушает» сервер (удобнее через инструмент администрирования и управления процессами 1С), используя утилиту ss:


ss -tunlp | grep 1541

Если вывод пустой, значит, процесс ragent не смог занять порт. Если же в выводе мы видим 127.0.0.1:1541, это означает, что сервер принимает соединения только внутри себя. Для работы в сети он должен слушать адрес 0.0.0.0:1541 или конкретный IP-адрес сетевой карты.

Также стоит проверить файл /etc/hosts. В Linux-системах 1С крайне чувствительна к разрешению имен. Убедимся, что имя сервера (hostname) сопоставлено с его реальным IP-адресом, а не только с петлевым интерфейсом 127.0.1.1. Пример правильной настройки:


127.0.0.1       localhost
10.206.76.3     server1c.local  server1c

Шаг 3: Настройка прав доступа (права на файлы и папки)

Рассмотрим одну из самых частых причин отказа в соединении — отсутствие прав у пользователя usr1cv8 на запись в каталог кластера. По умолчанию данные кластера хранятся в /home/usr1cv8/.1cv8/1C/1cv8/ или /var/1C/1cv8/ в зависимости от настроек. Если сервер 1С не может создать файлы блокировок или журналы в этих папках, сетевая часть службы просто не поднимется. Для таких задач обслуживания инфраструктуры есть система централизованного администрирования и мониторинга баз 1С.

Применим корректные права рекурсивно для всех директорий, связанных с 1С:


sudo chown -R usr1cv8:grp1cv8 /opt/1cv8
sudo chown -R usr1cv8:grp1cv8 /home/usr1cv8/.1cv8

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

Шаг 4: Специфика Astra Linux и средства защиты

Astra Linux (особенно версия Special Edition) обладает встроенными механизмами защиты Parsec. Выясним, не блокируют ли они работу сокетов. Если используется мандатный контроль доступа, убедитесь, что пользователь usr1cv8 имеет права на работу в соответствующей иерархии уровней целостности.

Также проверим состояние встроенного брандмауэра. Посмотрим на список правил iptables:


sudo iptables -L -n

Если в выводе присутствуют запрещающие правила (DROP или REJECT), попробуем временно разрешить трафик на портах 1С (1540-1541, 1560-1591):


sudo ufw allow 1540:1591/tcp

Шаг 5: Настройка взаимодействия с PostgresPro

Если ошибка возникает именно в момент нажатия кнопки «ОК» при создании базы, проблема может крыться в настройках СУБД. Разберем по шагам настройку PostgresPro для приема соединений от сервера 1С.

  1. Проверим файл postgresql.conf. Параметр listen_addresses должен разрешать внешние подключения:
    
    listen_addresses = '*'
    
  2. Проанализируем файл pg_hba.conf. В нем должно быть разрешено подключение для пользователя postgres (или того, под которым создается база) с IP-адреса сервера 1С:
    
    host    all             all             10.206.76.0/24          md5
    

После изменения конфигурационных файлов PostgresPro не забудьте выполнить перезагрузку службы СУБД: sudo systemctl restart postgrespro-1c-15 (название службы может отличаться в зависимости от версии).

Шаг 6: Использование технологического журнала для диагностики

Если вышеописанные методы не помогли, нам потребуется «тяжелая артиллерия» — технологический журнал 1С. Он позволит увидеть, на каком именно этапе происходит отказ. Создадим файл /opt/1cv8/conf/logcfg.xml (или в каталоге conf вашей версии платформы) со следующим содержанием:


<config xmlns="http://v8.1c.ru/7.4/config/logcfg">
  <log location="/var/log/1c/logs" history="24">
    <event>
      <eq property="name" value="EXCP"/>
    </event>
    <property name="all"/>
  </log>
</config>

Важно убедиться, что у пользователя usr1cv8 есть права на запись в папку /var/log/1c/logs. После попытки создания базы в логах появится детальное описание ошибки, которое укажет на конкретный файл или системный вызов, вызвавший сбой.

Проанализировав все указанные аспекты — от сетевых настроек хоста до прав доступа внутри Linux — вы сможете точно определить причину ошибки «В соединении отказано» и успешно запустить сервер 1С на Astra Linux.

← На главную