Подробный гайд: Выделенный сервер Battlefield 2142 на AlmaLinux

Установка выделенного сервера Battlefield 2142 на AlmaLinux: зависимости, конфиги, systemd, фаервол, диагностика и запуск через сообщество Reclaim

2026.04.28                  


Подробный гайд: Выделенный сервер Battlefield 2142 на AlmaLinuxПодробный гайд: Выделенный сервер Battlefield 2142 на AlmaLinux

Важно:

Официальные мультиплеер-серверы EA были отключены в 2014 году. Запуск сервера возможен только с использованием патчей и инфраструктуры, поддерживаемой сообществом (наиболее активный проект: BF2142 Reclaim / reclaim.bf2142.eu). Данный гайд описывает установку на базе актуальных на 2024–2026 гг. методов сообщества.


Содержание

  1. Подготовка AlmaLinux
  2. Загрузка и установка серверных файлов
  3. Настройка конфигурации
  4. Первый запуск и проверка
  5. Автоматизация через systemd
  6. Сетевая настройка и фаервол
  7. Обновления и взаимодействие с сообществом
  8. Диагностика и типичные ошибки
  9. Юридическое примечание

1. Подготовка AlmaLinux

Гайд протестирован на AlmaLinux 8/9 (x86_64). Сервер BF2142 является 32-битным приложением, поэтому потребуется установка совместимых библиотек.

# Обновление системы
sudo dnf update -y

# Установка необходимых 32-битных зависимостей
sudo dnf install glibc.i686 libstdc++.i686 zlib.i686 \
  ncurses-libs.i686 libgcc.i686 wget tar -y

# Опционально: если сервер требует libpng12 (редко на современных сборках)
# Подключите EPEL/CRB при необходимости:
# sudo dnf config-manager --set-enabled crb
# sudo dnf install epel-release -y
# sudo dnf install libpng12.i686 -y

Создание выделенного пользователя

Никогда не запускайте игровые серверы от root.

sudo useradd -m -s /bin/bash bf2142srv
sudo su - bf2142srv

2. Загрузка и установка серверных файлов

  1. Перейдите на официальный ресурс сообщества (например, reclaim.bf2142.eu или их GitHub) и скачайте последнюю версию Linux Dedicated Server Package.
2. В домашней директории пользователя создайте папку и распакуйте архив:
mkdir -p ~/bf2142 && cd ~/bf2142
wget "https://<community-domain>/releases/bf2142-server-linux-latest.tar.gz"
tar -xzf bf2142-server-linux-latest.tar.gz
rm bf2142-server-linux-latest.tar.gz

Ожидаемая структура:

bf2142/
├── bf2142ded          # бинарник сервера
├── start.sh           # скрипт запуска (если предоставлен)
├── settings/          # конфигурационные файлы
├── mods/              # папка для модов/карт
├── logs/              # логи сервера
└── ...

3. Настройка конфигурации

Основные параметры задаются в settings/server.cfg или bf2142/Settings/ServerSettings.con. Синтаксис движка Frostbite-предшественника: ключ значение.

Пример базового конфига (settings/server.cfg):

sv.maxPlayers 64
sv.gamePort 16567
sv.queryPort 27900
sv.rconPort 48888
sv.rconPassword "YourStrongRCONPass"
sv.serverName "[RU] AlmaLinux BF2142 | Reclaim"
sv.password ""
sv.countryCode RU
sv.mapRotation "conquest_large_01 conquest_large_02 conquest_small_01 titan_01 titan_02"
sv.maxSpectators 8
sv.voteEnabled 1
sv.friendlyFire 0
sv.timelimit 60

Важные нюансы:

  • Сообщество предоставляет свой мастер-сервер и античит. Обычно требуется добавить в конфиг строку вида sv.masterServer "<community-master-ip>:<port>". Уточните актуальные значения на сайте проекта.
  • Карты должны находиться в mods/bf2142/Levels/<имя_карты>/.
  • Для поддержки расширенных модов распакуйте их в mods/ и укажите в sv.mods (если поддерживается вашей сборкой).

4. Первый запуск и проверка

Запустите сервер вручную для отладки:

cd ~/bf2142
chmod +x bf2142ded
./bf2142ded +exec settings/server.cfg +startserver 1

Признаки успешного запуска:

  • В консоли появится Server started on port 16567
  • Загрузятся карты без ошибок Failed to load level
  • Лог пишется в logs/server.log или выводится в stdout

Остановите сервер комбинацией Ctrl+C или командой quit в консоли.


5. Автоматизация через systemd

Создайте сервис для автозапуска и восстановления при падении:

sudo tee /etc/systemd/system/bf2142.service > /dev/null <<EOF
[Unit]
Description=Battlefield 2142 Dedicated Server (Reclaim)
After=network.target

[Service]
Type=simple
User=bf2142srv
Group=bf2142srv
WorkingDirectory=/home/bf2142srv/bf2142
ExecStart=/home/bf2142srv/bf2142/bf2142ded +exec settings/server.cfg +startserver 1
Restart=on-failure
RestartSec=10
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target
EOF

Активируйте сервис:

sudo systemctl daemon-reload
sudo systemctl enable --now bf2142
sudo systemctl status bf2142

Полезные команды:

  • journalctl -u bf2142 -f – просмотр логов в реальном времени
  • sudo systemctl restart bf2142 – перезапуск после изменения конфига
  • sudo systemctl stop bf2142 – корректная остановка

6. Сетевая настройка и фаервол

AlmaLinux по умолчанию использует firewalld.

Откройте необходимые порты:

sudo firewall-cmd --permanent --add-port=16567/udp
sudo firewall-cmd --permanent --add-port=27900/udp
sudo firewall-cmd --permanent --add-port=48888/tcp  # RCON, опционально
sudo firewall-cmd --reload

Если сервер находится за NAT:

  • Настройте порт-форвардинг на роутере: 16567/UDP и 27900/UDP → внутренний IP сервера
  • Убедитесь, что провайдер не блокирует входящие UDP-пакеты
  • Для динамического IP используйте DDNS или статический адрес

SELinux:

Обычно не мешает при работе от непривилегированного пользователя. Если наблюдаются отказы в логах (audit.log), временно проверьте с setenforce 0 и настройте контексты при необходимости.


7. Обновления и взаимодействие с сообществом

  • Сообщество регулярно выпускает патчи безопасности, фиксы карт и обновления античита.
  • Подпишитесь на официальный Discord / форум проекта для получения уведомлений.
  • Перед обновлением делайте резервную копию:
  tar -czf ~/bf2142-backup-$(date +%F).tar.gz -C /home/bf2142srv bf2142/settings bf2142/mods
  • Заменяйте только бинарники и системные файлы сообщества, оставляя ваши конфиги и пользовательские моды нетронутыми.

8. Диагностика и типичные ошибки

Симптом Причина Решение
error while loading shared libraries: libstdc++.so.6 Отсутствует 32-битная библиотека sudo dnf install libstdc++.i686
Сервер запускается, но не виден в списке Не настроен мастер-сервер сообщества Добавьте sv.masterServer в конфиг, проверьте актуальные данные на сайте проекта
Permission denied при записи логов Права на папку logs/ chmod 755 ~/bf2142/logs && chown bf2142srv:bf2142srv ~/bf2142/logs
Падение при загрузке карты Файлы карты повреждены или несовместимы Проверьте целостность архива, используйте только карты из официального пакета сообщества
RCON не подключается Порт закрыт или неверный пароль Проверьте firewalld, убедитесь, что sv.rconPort и sv.rconPassword совпадают с клиентом

Проверка зависимостей:

ldd ~/bf2142/bf2142ded | grep "not found"

Установите отсутствующие .i686 пакеты через dnf.


9. Юридическое примечание

  • Для подключения к серверу игроки должны использовать лицензионную копию BF2142 (физическую или цифровую через EA/Steam). Сервер не распространяет и не обходит DRM.
  • Проект сообщества распространяет только серверные бинарники, патчи совместимости и инфраструктуру мастер-серверов.
  • Соблюдайте правила сообщества и не размещайте модифицированные клиентские файлы на сервере.

Итог

Вы подняли выделенный сервер BF2142 на AlmaLinux, настроили его через конфиг, завернули в systemd и открыли сетевые порты. Сервер готов принимать игроков через инфраструктуру сообщества. Для поддержки стабильности регулярно следите за обновлениями проекта, мониторьте логи и делайте бэкапы конфигов.