Linux под сервер 1С:Предприятия: на чём остановиться и как всё настроить
Содержание
Для сервера 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) | deb | 5 лет, с платной подпиской дольше | Нет требований к сертификации, нужен максимум готовых инструкций | Проверьте, что ваша версия платформы поддерживает выбранный LTS |
| Debian (12, 13) | deb | около 5 лет с учётом LTS | Нужна стабильность и минимум лишнего в системе | Пакеты консервативные, свежий PostgreSQL ставить из внешнего репозитория |
| Rocky Linux, AlmaLinux | rpm | до 10 лет на основной выпуск | Команда уже администрирует RHEL-ветку | SELinux включён по умолчанию, его нужно настроить, а не выключать |
| RHEL | rpm | до 10 лет и дольше | Нужна коммерческая поддержка вендора | Для российских компаний доступ к подписке затруднён |
| CentOS 7 / 8 | rpm | поддержка закончена | Не выбирать для нового сервера | CentOS 7 без обновлений с 30.06.2024; CentOS Stream — «плавающий» выпуск |
| Astra Linux Special Edition | deb | долгий цикл, по планам вендора | Госсектор, КИИ, требования ФСТЭК | Режимы защищённости и замкнутая программная среда требуют донастройки под 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 придётся адаптировать.
Установка сервера 1С на Linux по шагам
Начиная с версии 8.3.20 платформа для Linux поставляется единым установщиком setup-full-<версия>-x86_64.run. Порядок ниже — для Ubuntu/Debian, на rpm-системах меняются только команды пакетного менеджера.
- Подготовьте систему. Обновите пакеты, задайте постоянное имя хоста и часовой пояс:
sudo apt update && sudo apt full-upgrade -y sudo hostnamectl set-hostname srv1c sudo timedatectl set-timezone Europe/Moscow - Включите русскую локаль и поставьте шрифты:На Debian пакет со шрифтами Microsoft лежит в разделе
sudo locale-gen ru_RU.UTF-8 sudo apt install -y fontconfig ttf-mscorefonts-installercontrib— его нужно подключить в источниках пакетов. - Пропишите имя сервера в DNS или
/etc/hosts— и на самом сервере, и на клиентах. Кластер регистрируется под именем хоста, и клиент будет обращаться именно по нему. - Установите PostgreSQL для 1С и создайте кластер СУБД с локалью
ru_RU.UTF-8. Сборку берите той версии, которую поддерживает ваша версия платформы. - Запустите установщик платформы в автоматическом режиме:Полный список компонентов выводит ключ
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. - Подключите службу сервера. В новых версиях платформы файл службы 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 - Поставьте драйвер HASP (если ключи аппаратные) или активируйте программную лицензию при первом запуске базы.
- Создайте информационную базу через консоль администрирования с рабочего места администратора или командой
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_buffers | 25% ОЗУ → 8GB | Кэш страниц самой СУБД |
effective_cache_size | 50–60% ОЗУ → 16GB | Подсказка планировщику о кэше ОС |
work_mem | 32–64MB | Память на сортировку в одном запросе |
maintenance_work_mem | 1GB | Ускоряет VACUUM и построение индексов |
max_connections | 300–500 | 1С открывает много соединений |
Учитывайте, что 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С, порт
ras1545 — только администраторам. - 🔑 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С с Windows на Linux
Перенос баз — самая простая часть. Сложнее найти в конфигурациях то, что работает только на Windows.
- Проведите ревизию доработок. Ищите в коде и обработках: COM-объекты (
Новый COMОбъект, работа с Excel и Word через COM), пути с обратной косой чертой, обращения к дискам видаC:\, внешние компоненты без Linux-версии. На сервере под Linux всё это перестанет работать. - Проверьте обмены. COM-соединение с другой базой с сервера Linux недоступно. Обмены через COM переводят на веб-сервисы, HTTP-сервисы или файловый обмен.
- Поднимите тестовый сервер с той же версией платформы, что на рабочем.
- Перенесите базы. Если базы уже на PostgreSQL — достаточно дампа СУБД. С MS SQL переносят через выгрузку в файл
.dt: в КонфигуратореАдминистрирование → Выгрузить информационную базу, затем загрузка в новую базу на Linux-сервере. Выгрузка и загрузка требуют монопольного доступа — делайте это вне рабочего времени. - Прогоните ключевые операции. Закрытие месяца, расчёт зарплаты, печать форм, обмены, регламентированные отчёты. Сравните время выполнения со старым сервером.
- Переведите лицензии. Программную лицензию на новом оборудовании нужно активировать заново, аппаратный ключ — переставить и поставить драйвер.
- Переключите пользователей в нерабочее время, старый сервер держите в резерве 2–4 недели.
Перед загрузкой .dt в рабочую базу убедитесь, что выбрали правильную базу: загрузка полностью заменяет её содержимое.
Ошибки после установки и что с ними делать
ls -la /home/usr1cv8/.1cv8/. Если файлы создавались от root, верните права командой sudo chown -R usr1cv8:grp1cv8 /home/usr1cv8/.1cv8. Причину падения смотрите в journalctl -u srv1cv8-8.3.xx.xxxx@default.Как правильно перезапустить 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. Сам сервер графическое окружение не требует.