При развертывании серверной версии 1С:Предприятие на операционных системах семейства Linux, в частности на Astra Linux, системные администраторы часто сталкиваются с ошибкой «В соединении отказано» (код ошибки 111). Эта ситуация возникает на этапе создания новой информационной базы через консоль администрирования или при попытке первого подключения. Разберем детально, почему возникает эта проблема и как ее решить, пройдя путь от простых сетевых проверок до глубокой настройки прав доступа и параметров СУБД.
Для начала проанализируем само сообщение об ошибке: descr=10.206.76.3:1541:111(0x0000006F): В соединении отказано. В сетевой архитектуре Linux код 111 (ECONNREFUSED) означает, что попытка установления соединения была отклонена целевым хостом. Это принципиально отличается от ошибки тайм-аута (код 10060), когда сервер просто не отвечает. Ошибка 111 говорит нам об одном из двух сценариев:
Рассмотрим по шагам, как локализовать и устранить каждую из возможных причин.
Выясним, запущен ли процесс 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
Часто причиной остановки службы являются некорректные права на каталоги или отсутствие необходимых библиотек (включая лицензии) в системе.
Проанализируем ситуацию, когда служба формально запущена, но порт 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
Рассмотрим одну из самых частых причин отказа в соединении — отсутствие прав у пользователя 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С.
Astra Linux (особенно версия Special Edition) обладает встроенными механизмами защиты Parsec. Выясним, не блокируют ли они работу сокетов. Если используется мандатный контроль доступа, убедитесь, что пользователь usr1cv8 имеет права на работу в соответствующей иерархии уровней целостности.
Также проверим состояние встроенного брандмауэра. Посмотрим на список правил iptables:
sudo iptables -L -n
Если в выводе присутствуют запрещающие правила (DROP или REJECT), попробуем временно разрешить трафик на портах 1С (1540-1541, 1560-1591):
sudo ufw allow 1540:1591/tcp
Если ошибка возникает именно в момент нажатия кнопки «ОК» при создании базы, проблема может крыться в настройках СУБД. Разберем по шагам настройку PostgresPro для приема соединений от сервера 1С.
postgresql.conf. Параметр listen_addresses должен разрешать внешние подключения:
listen_addresses = '*'
pg_hba.conf. В нем должно быть разрешено подключение для пользователя postgres (или того, под которым создается база) с IP-адреса сервера 1С:
host all all 10.206.76.0/24 md5
После изменения конфигурационных файлов PostgresPro не забудьте выполнить перезагрузку службы СУБД: sudo systemctl restart postgrespro-1c-15 (название службы может отличаться в зависимости от версии).
Если вышеописанные методы не помогли, нам потребуется «тяжелая артиллерия» — технологический журнал 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.