Linux под сервер 1С:Предприятия: на чём остановиться и как всё настроить

· 12 мин

Содержание

Для сервера 1С 8.3 без требований к сертификации выбирайте Ubuntu Server LTS или Debian: под них больше всего инструкций, сборки PostgreSQL для 1С ставятся без плясок, а поддержки LTS-выпуска хватает на 5 лет. Если организация обязана работать на отечественной ОС из реестра (госсектор, КИИ), берите Astra Linux Special Edition, РЕД ОС или Альт. RHEL-совместимые системы (Rocky Linux, AlmaLinux) — выбор тех, у кого уже есть экспертиза в этой ветке.

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

Что сервер 1С требует от операционной системы

Платформа 1С:Предприятие 8.3 для Linux работает только на 64-битной архитектуре x86-64. Перед выбором проверьте пять вещей.

  • 🧩 Версия платформы и список поддерживаемых ОС. Для каждой версии платформы фирма 1С публикует перечень проверенных дистрибутивов. Свежий выпуск Linux может появиться в нём позже, чем вышел сам. Сверяйтесь с документацией к вашей версии платформы, а не со статьями двухлетней давности.
  • 🐘 СУБД. На Linux реалистичные варианты — PostgreSQL в сборке с патчами для 1С (от фирмы 1С или Postgres Professional) либо Postgres Pro. MS SQL Server под Linux существует, но с 1С на Linux его используют редко.
  • 🔑 Лицензирование. Программные лицензии привязываются к оборудованию и хранятся в /var/1C/licenses. Для аппаратных ключей HASP нужен драйвер aksusbd.
  • 🌐 Локаль и шрифты. Нужна локаль ru_RU.UTF-8. Без шрифтов, совместимых с Arial и Times New Roman, печатные формы на сервере «поплывут».
  • 🧠 Ресурсы. Ориентир для небольшой организации (до 20–30 пользователей): 4–8 ядер, 16–32 ГБ ОЗУ, быстрые SSD/NVMe под базы и журналы PostgreSQL. Сервер 1С и СУБД на одной машине — нормальная схема для такого масштаба.

Если у вас файловые базы и до 5 пользователей, сервер 1С на Linux может быть избыточен. Выигрыш появляется с клиент-серверным режимом, когда растёт число пользователей и объём данных.

Сравнение дистрибутивов Linux для 1С

ДистрибутивПакетыСрок поддержки выпускаКогда выбиратьНа что смотреть
Ubuntu Server LTS (22.04, 24.04)deb5 лет, с платной подпиской дольшеНет требований к сертификации, нужен максимум готовых инструкцийПроверьте, что ваша версия платформы поддерживает выбранный LTS
Debian (12, 13)debоколо 5 лет с учётом LTSНужна стабильность и минимум лишнего в системеПакеты консервативные, свежий PostgreSQL ставить из внешнего репозитория
Rocky Linux, AlmaLinuxrpmдо 10 лет на основной выпускКоманда уже администрирует RHEL-веткуSELinux включён по умолчанию, его нужно настроить, а не выключать
RHELrpmдо 10 лет и дольшеНужна коммерческая поддержка вендораДля российских компаний доступ к подписке затруднён
CentOS 7 / 8rpmподдержка законченаНе выбирать для нового сервераCentOS 7 без обновлений с 30.06.2024; CentOS Stream — «плавающий» выпуск
Astra Linux Special Editiondebдолгий цикл, по планам вендораГоссектор, КИИ, требования ФСТЭКРежимы защищённости и замкнутая программная среда требуют донастройки под 1С
РЕД ОСrpmпо планам вендораНужна ОС из реестра отечественного ПО на rpm-основеСверьте версию с перечнем поддерживаемых ОС для платформы
Альт (Сервер, Рабочая станция)rpm (apt-rpm)по планам вендораИмпортозамещение, есть опыт с АльтомСвоя система пакетов, инструкции «для Ubuntu» напрямую не подходят

Ubuntu Server и Debian

Самый частый выбор для 1С на Linux. Установщик платформы, PostgreSQL для 1С, драйвер HASP и шрифты ставятся на них без сюрпризов. Большинство ответов на форумах администраторов 1С написаны именно для этой ветки.

Debian чуть «тише»: меньше предустановленных служб, реже меняется поведение системы между выпусками. Ubuntu удобнее, если нужен более свежий набор ядра и драйверов на новом железе.

RHEL, Rocky Linux и AlmaLinux

Подходят, если ваши администраторы привыкли к dnf, firewalld и SELinux. После ухода CentOS на модель Stream стабильными заменами стали Rocky Linux и AlmaLinux — они пересобираются из исходников RHEL.

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

Astra Linux, РЕД ОС и Альт

Эти системы выбирают, когда отечественная ОС — требование, а не пожелание. Astra Linux Special Edition сертифицирована ФСТЭК и имеет несколько уровней защищённости. На максимальных уровнях действуют мандатный контроль целостности и замкнутая программная среда — сервер 1С запустится только после их настройки под исполняемые файлы платформы.

РЕД ОС близка к RHEL по командам и пакетам, Альт использует собственную пакетную базу. Под обе системы инструкции для Ubuntu придётся адаптировать.

Какой Linux ставить под сервер 1С в вашем случае?

Установка сервера 1С на Linux по шагам

Начиная с версии 8.3.20 платформа для Linux поставляется единым установщиком setup-full-<версия>-x86_64.run. Порядок ниже — для Ubuntu/Debian, на rpm-системах меняются только команды пакетного менеджера.

  1. Подготовьте систему. Обновите пакеты, задайте постоянное имя хоста и часовой пояс:
    sudo apt update && sudo apt full-upgrade -y
    sudo hostnamectl set-hostname srv1c
    sudo timedatectl set-timezone Europe/Moscow
    
  2. Включите русскую локаль и поставьте шрифты:
    sudo locale-gen ru_RU.UTF-8
    sudo apt install -y fontconfig ttf-mscorefonts-installer
    
    На Debian пакет со шрифтами Microsoft лежит в разделе contrib — его нужно подключить в источниках пакетов.
  3. Пропишите имя сервера в DNS или /etc/hosts — и на самом сервере, и на клиентах. Кластер регистрируется под именем хоста, и клиент будет обращаться именно по нему.
  4. Установите PostgreSQL для 1С и создайте кластер СУБД с локалью ru_RU.UTF-8. Сборку берите той версии, которую поддерживает ваша версия платформы.
  5. Запустите установщик платформы в автоматическом режиме:
    chmod +x setup-full-8.3.xx.xxxx-x86_64.run
    sudo ./setup-full-8.3.xx.xxxx-x86_64.run --mode unattended --enable-components server,ws,server_admin
    
    Полный список компонентов выводит ключ --help. Файлы окажутся в /opt/1cv8/x86_64/8.3.xx.xxxx/, установщик создаст пользователя usr1cv8.
  6. Подключите службу сервера. В новых версиях платформы файл службы systemd лежит в каталоге установки:
    sudo systemctl link /opt/1cv8/x86_64/8.3.xx.xxxx/srv1cv8-8.3.xx.xxxx@.service
    sudo systemctl enable --now srv1cv8-8.3.xx.xxxx@default
    systemctl status srv1cv8-8.3.xx.xxxx@default
    
  7. Поставьте драйвер HASP (если ключи аппаратные) или активируйте программную лицензию при первом запуске базы.
  8. Создайте информационную базу через консоль администрирования с рабочего места администратора или командой rac. Для управления с Windows-машины на сервере должна работать служба ras — она слушает порт 1545.

Версия платформы на сервере и на клиентах должна совпадать до последней цифры. Клиент 8.3.24 к серверу 8.3.25 не подключится.

Настройка Linux под нагрузку 1С: сеть, память, PostgreSQL

Свежеустановленный Linux настроен под «среднюю» нагрузку. Для 1С с десятками сеансов и сотнями соединений к СУБД есть смысл поправить несколько параметров.

Сеть для большого числа соединений

Создайте файл /etc/sysctl.d/90-1c.conf:

net.core.somaxconn = 4096
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.ip_local_port_range = 10000 65000
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 5
fs.file-max = 1000000

Примените командой sudo sysctl --system. Диапазон локальных портов начинается с 10000, чтобы не пересекаться с портами кластера 1540–1591.

Лимит открытых файлов для службы задают в самом systemd: файл /etc/security/limits.conf на службы не действует. Выполните sudo systemctl edit srv1cv8-8.3.xx.xxxx@default и добавьте:

[Service]
LimitNOFILE=65536

Подкачка: уменьшить, но не обязательно выключать

Совет «отключите SWAP» работает только при большом запасе памяти. Если ОЗУ кончится без подкачки, ядро запустит OOM killer и может убить рабочий процесс rphost или процесс PostgreSQL — пользователи потеряют сеансы.

Надёжнее оставить небольшой swap (2–4 ГБ) и снизить склонность к нему:

echo 'vm.swappiness = 1' | sudo tee /etc/sysctl.d/91-swap.conf
sudo sysctl --system

Полностью отключать (sudo swapoff -a и удаление строки из /etc/fstab) можно, когда пиковое потребление стабильно ниже 70–75% памяти. Дополнительно для сервера СУБД отключают прозрачные огромные страницы: echo never | sudo tee /sys/kernel/mm/transparent_hugepage/enabled (чтобы настройка пережила перезагрузку, пропишите её в параметры загрузки ядра или в отдельную службу).

Память для PostgreSQL

Стартовые значения для сервера, где 1С и СУБД живут вместе на 32 ГБ ОЗУ:

ПараметрОриентирЗачем
shared_buffers25% ОЗУ → 8GBКэш страниц самой СУБД
effective_cache_size50–60% ОЗУ → 16GBПодсказка планировщику о кэше ОС
work_mem32–64MBПамять на сортировку в одном запросе
maintenance_work_mem1GBУскоряет VACUUM и построение индексов
max_connections300–5001С открывает много соединений

Учитывайте, что work_mem умножается на число одновременных операций. 64 МБ × 300 соединений — это уже до 19 ГБ при пике.

Поиск медленных запросов

Когда пользователи жалуются на «тормоза», ищите конкретные запросы, а не меняйте всё подряд. В postgresql.conf включите журналирование долгих запросов и расширение статистики:

log_min_duration_statement = 1000
shared_preload_libraries = 'pg_stat_statements'

После перезапуска PostgreSQL выполните в базе CREATE EXTENSION pg_stat_statements;, а затем:

SELECT calls, round(total_exec_time) AS total_ms,
       round(mean_exec_time) AS avg_ms, left(query, 120) AS q
FROM pg_stat_statements
ORDER BY total_exec_time DESC
LIMIT 10;

Со стороны 1С тот же вопрос решает технологический журнал: файл logcfg.xml в каталоге /opt/1cv8/conf/. Событие DBPOSTGRS с отбором по длительности покажет, какой код конфигурации порождает тяжёлый запрос.

Защита сервера 1С на Linux

Сервер с бухгалтерией и зарплатой — привлекательная цель. Базовый уровень защиты закрывается за час.

  • 🔒 Сетевой экран. Открыты только 1540, 1541 и диапазон рабочих процессов (по умолчанию 1560–1591), и только для сети офиса или VPN. Порт PostgreSQL 5432 доступен лишь с сервера 1С, порт ras 1545 — только администраторам.
  • 🔑 SSH по ключам. Запретите вход по паролю и вход под root (PasswordAuthentication no, PermitRootLogin no в /etc/ssh/sshd_config), поставьте fail2ban.
  • 👤 Администратор кластера. Задайте его в консоли кластера сразу после установки. Без него любой, кто дотянется до порта 1540, может управлять базами.
  • 🐘 Пароль PostgreSQL. Отдельный пользователь СУБД для 1С со сложным паролем, в pg_hba.conf — доступ только с нужных адресов и метод scram-sha-256.
  • 💾 Резервные копии вне сервера. Ежедневный pg_dump или физические копии через pg_basebackup на другой хост. Восстановление проверяйте хотя бы раз в квартал.
  • ♻️ Обновления. Обновления безопасности ОС — регулярно, по расписанию в нерабочее время.
Проверка защищённости сервера 1С
Выполнено: 0 / 7

Переезд сервера 1С с Windows на Linux

Перенос баз — самая простая часть. Сложнее найти в конфигурациях то, что работает только на Windows.

  1. Проведите ревизию доработок. Ищите в коде и обработках: COM-объекты (Новый COMОбъект, работа с Excel и Word через COM), пути с обратной косой чертой, обращения к дискам вида C:\, внешние компоненты без Linux-версии. На сервере под Linux всё это перестанет работать.
  2. Проверьте обмены. COM-соединение с другой базой с сервера Linux недоступно. Обмены через COM переводят на веб-сервисы, HTTP-сервисы или файловый обмен.
  3. Поднимите тестовый сервер с той же версией платформы, что на рабочем.
  4. Перенесите базы. Если базы уже на PostgreSQL — достаточно дампа СУБД. С MS SQL переносят через выгрузку в файл .dt: в Конфигураторе Администрирование → Выгрузить информационную базу, затем загрузка в новую базу на Linux-сервере. Выгрузка и загрузка требуют монопольного доступа — делайте это вне рабочего времени.
  5. Прогоните ключевые операции. Закрытие месяца, расчёт зарплаты, печать форм, обмены, регламентированные отчёты. Сравните время выполнения со старым сервером.
  6. Переведите лицензии. Программную лицензию на новом оборудовании нужно активировать заново, аппаратный ключ — переставить и поставить драйвер.
  7. Переключите пользователей в нерабочее время, старый сервер держите в резерве 2–4 недели.

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

Ошибки после установки и что с ними делать

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

Как правильно перезапустить ragent

Если сервер «завис», перезапускают службу целиком, а не убивают процессы вручную:

sudo systemctl restart srv1cv8-8.3.xx.xxxx@default

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

На старых версиях платформы служба называлась srv1cv83 и управлялась через /etc/init.d/srv1cv83 restart. Если видите такой скрипт — сервер давно не обновлялся.

Для Ubuntu и Debian: ошибки зависимостей

Установщик сообщает о нехватке библиотек — чаще всего на минимальной установке без графических пакетов. Посмотрите, чего не хватает, командой ldd /opt/1cv8/x86_64/8.3.xx.xxxx/ragent | grep "not found" и доставьте недостающие пакеты через apt. Сам сервер графическое окружение не требует.

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

Работает ли 1С на Linux быстрее, чем на Windows?
Выигрыш дают не сами ОС, а связка с PostgreSQL и настройка. На одинаковом железе разница обычно невелика, зато экономия на лицензиях Windows Server и MS SQL заметная.
Можно ли держать сервер 1С на Linux, а клиентов на Windows?
Да, это обычная схема. Тонкий и толстый клиенты на Windows подключаются к серверу на Linux по тем же портам.
Нужна ли отдельная лицензия на сервер 1С под Linux?
Лицензия на сервер 1С одна для обеих ОС. Отдельно нужны клиентские лицензии на число пользователей.
Подойдёт ли виртуальная машина вместо железного сервера?
Подойдёт. Главное — выделить ядра и память без переподписки и быстрые диски под базы. Программная лицензия привяжется к параметрам виртуальной машины, поэтому не меняйте их без нужды.
Можно ли поставить Ubuntu с графическим окружением на сервер?
Можно, но не нужно: графика расходует память и добавляет пакеты, которые придётся обновлять. Сервер администрируют по SSH и через консоль кластера с рабочего места.