Кластер 1С Linux на разных портах: установка, настройка, конфигурация | AdminWiki

Установка кластера 1С на Linux с разными портами: полное руководство для DevOps

18 декабря 2025 7 мин. чтения #1с #centos #devops #linux #ubuntu #кластер #настройка #порты #установка

Введение: зачем нужны разные порты в кластере 1С?

Представь, что ты разворачиваешь несколько кластеров 1С на одном сервере или хочешь изолировать тестовую и продуктивную среду. Стандартные порты (1540-1541) уже заняты? Или нужна тонкая настройка безопасности? Именно здесь пригодится установка кластера 1С Linux на разных портах.

Давай разберем, как правильно настроить кластер серверов 1С на Linux с нестандартными портами, чтобы избежать конфликтов и повысить безопасность системы.

Подготовка окружения Linux

Перед началом установки кластера 1С убедись, что у тебя есть:

  • Сервер на базе CentOS 7/8 или Ubuntu 20.04/22.04
  • Установленные пакеты: wget, tar, systemd
  • Доступ к репозиториям 1С (лицензия или тестовый ключ)
  • Права root или sudo
Важно: Все команды ниже выполняются от имени root или с использованием sudo. Для тестового стенда можно отключить SELinux и firewall, но для продакшена нужна тонкая настройка правил.

Установка сервера 1С на Linux

Сначала установим базовый сервер 1С. Выбери свою ОС:

Для CentOS/RHEL

bash
# Добавляем репозиторий 1С
wget -O /etc/yum.repos.d/1c.repo https://repo.1c.ru/1c.repo

# Устанавливаем сервер 1С
sudo yum install 1c-enterprise83-server -y

# Устанавливаем сервер лицензирования
sudo yum install 1c-enterprise83-server-licenses -y

Для Ubuntu/Debian

bash
# Добавляем ключ репозитория
wget -qO - https://repo.1c.ru/1c.key | sudo apt-key add -

# Добавляем репозиторий
sudo echo "deb https://repo.1c.ru/apt/ubuntu/ focal main" > /etc/apt/sources.list.d/1c.list

# Обновляем и устанавливаем
sudo apt update
sudo apt install 1c-enterprise83-server -y

Настройка кластера 1С на разных портах

Теперь перейдем к главному — конфигурации портов. По умолчанию кластер использует:

  • Порт менеджера кластера: 1540
  • Порт рабочего процесса: 1541

Мы изменим эти порты на, например, 15540 и 15541 для первого кластера, и 15640/15641 для второго.

Шаг 1: Создание конфигурационных файлов

Создадим отдельные конфиги для каждого кластера:

bash
# Создаем директории для конфигов
sudo mkdir -p /etc/1c/1C_cluster1
sudo mkdir -p /etc/1c/1C_cluster2

Шаг 2: Конфиг для первого кластера (порты 15540-15541)

config
# /etc/1c/1C_cluster1/ragent.conf
[General]
ClusterPort=15540
ClusterUdpPort=15540

[Cluster]
Port=15541
Range=15541:15549

[WorkerProcess]
StartPort=15550
Range=15550:15599

Шаг 3: Конфиг для второго кластера (порты 15640-15641)

config
# /etc/1c/1C_cluster2/ragent.conf
[General]
ClusterPort=15640
ClusterUdpPort=15640

[Cluster]
Port=15641
Range=15641:15649

[WorkerProcess]
StartPort=15650
Range=15650:15699
Внимание: Диапазоны портов (Range) не должны пересекаться между кластерами! Это вызовет конфликты при запуске рабочих процессов.

Создание systemd сервисов для каждого кластера

Чтобы кластеры запускались автоматически, создадим отдельные systemd-юниты:

Сервис для кластера 1 (порты 15540-15541)

config
# /etc/systemd/system/1c_cluster1.service
[Unit]
Description=1C:Enterprise Cluster 1 (Ports 15540-15541)
After=network.target

[Service]
Type=forking
ExecStart=/opt/1C/v8.3/x86_64/ragent -daemon -d /var/1C/cluster1 -port 15540
ExecStop=/opt/1C/v8.3/x86_64/ragent -kill -d /var/1C/cluster1
PIDFile=/var/1C/cluster1/ragent.pid
Restart=on-failure
User=usr1cv8
Group=grp1cv8

[Install]
WantedBy=multi-user.target

Сервис для кластера 2 (порты 15640-15641)

config
# /etc/systemd/system/1c_cluster2.service
[Unit]
Description=1C:Enterprise Cluster 2 (Ports 15640-15641)
After=network.target

[Service]
Type=forking
ExecStart=/opt/1C/v8.3/x86_64/ragent -daemon -d /var/1C/cluster2 -port 15640
ExecStop=/opt/1C/v8.3/x86_64/ragent -kill -d /var/1C/cluster2
PIDFile=/var/1C/cluster2/ragent.pid
Restart=on-failure
User=usr1cv8
Group=grp1cv8

[Install]
WantedBy=multi-user.target

Активация и запуск сервисов

bash
# Перечитываем конфигурацию systemd
sudo systemctl daemon-reload

# Включаем автозагрузку
sudo systemctl enable 1c_cluster1.service
sudo systemctl enable 1c_cluster2.service

# Запускаем кластеры
sudo systemctl start 1c_cluster1.service
sudo systemctl start 1c_cluster2.service

# Проверяем статус
sudo systemctl status 1c_cluster1.service
sudo systemctl status 1c_cluster2.service

Настройка firewall для нестандартных портов

Если firewall включен, нужно открыть наши порты:

Для firewalld (CentOS/RHEL)

bash
# Открываем порты для первого кластера
sudo firewall-cmd --permanent --add-port=15540/tcp
sudo firewall-cmd --permanent --add-port=15541/tcp
sudo firewall-cmd --permanent --add-port=15540/udp

# Открываем порты для второго кластера
sudo firewall-cmd --permanent --add-port=15640/tcp
sudo firewall-cmd --permanent --add-port=15641/tcp
sudo firewall-cmd --permanent --add-port=15640/udp

# Применяем изменения
sudo firewall-cmd --reload

# Проверяем
sudo firewall-cmd --list-ports

Для ufw (Ubuntu)

bash
sudo ufw allow 15540/tcp
sudo ufw allow 15541/tcp
sudo ufw allow 15540/udp

sudo ufw allow 15640/tcp
sudo ufw allow 15641/tcp
sudo ufw allow 15640/udp

sudo ufw reload

Проверка работы кластеров на разных портах

Убедимся, что кластеры слушают правильные порты:

bash
# Проверяем сетевые соединения
sudo netstat -tulpn | grep 1C

# Ожидаемый вывод:
# tcp 0 0 0.0.0.0:15540 0.0.0.0:* LISTEN 12345/ragent
# tcp 0 0 0.0.0.0:15541 0.0.0.0:* LISTEN 12346/ragent
# tcp 0 0 0.0.0.0:15640 0.0.0.0:* LISTEN 12347/ragent
# tcp 0 0 0.0.0.0:15641 0.0.0.0:* LISTEN 12348/ragent

Также можно проверить через браузер:

  • Кластер 1: http://ваш_сервер:15540/1c/clusman
  • Кластер 2: http://ваш_сервер:15640/1c/clusman

Настройка клиентских подключений

В клиентских приложениях 1С теперь нужно указывать соответствующие порты:

text
В строке подключения:
Стандартно: tcp://сервер:1541/база_данных
Для кластера 1: tcp://сервер:15541/база_данных
Для кластера 2: tcp://сервер:15641/база_данных

Таблица сравнения конфигураций портов

Компонент Стандартные порты Кластер 1 Кластер 2
Менеджер кластера (TCP) 1540 15540 15640
Менеджер кластера (UDP) 1540 15540 15640
Рабочий процесс 1541 15541 15641
Диапазон рабочих процессов 1541:1549 15541:15549 15641:15649

Частые проблемы и их решение

Проблема 1: Кластер не запускается

Решение: Проверь логи:

bash
sudo journalctl -u 1c_cluster1.service -f
# Или
sudo tail -f /var/1C/cluster1/logs/*.log

Частая причина — занятый порт. Проверь: sudo lsof -i :15540

Проблема 2: Клиенты не подключаются

Решение:

  1. Проверь firewall: порты должны быть открыты
  2. Убедись, что в строке подключения указан правильный порт
  3. Проверь сетевую доступность: telnet сервер 15541

Проблема 3: Конфликт диапазонов портов

Решение: Убедись, что в конфигах Range не пересекаются. Между диапазонами должен быть запас минимум в 10 портов.

Оптимизация и мониторинг

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

  • Настроить логирование в отдельные файлы для каждого кластера
  • Реализовать мониторинг доступности портов (например, через Zabbix или Nagios)
  • Настроить балансировку нагрузки между кластерами, если это требуется
  • Регулярно делать бэкапы конфигурационных файлов
bash
# Пример скрипта для проверки доступности кластеров
#!/bin/bash
PORTS=(15540 15541 15640 15641)
SERVER="localhost"

for port in "${PORTS[@]}"; do
  nc -z $SERVER $port > /dev/null 2>&1
  if [ $? -eq 0 ]; then
    echo "Port $port: OK"
  else
    echo "Port $port: FAILED"
  fi
done

Заключение

Установка кластера 1С на Linux с разными портами — мощный инструмент для DevOps-инженеров. Это позволяет:

  • Запускать несколько независимых кластеров на одном сервере
  • Изолировать тестовую и продуктивную среду
  • Обходить конфликты портов в сложных инфраструктурах
  • Повышать безопасность через нестандартные порты

Главное — внимательно настраивать конфигурационные файлы, не допускать пересечения диапазонов портов и правильно конфигурировать firewall. Следуя этому руководству, ты сможешь развернуть отказоустойчивую кластерную среду 1С любой сложности.

Поделиться:
Сохранить гайд? В закладки браузера