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

Гайд по запуску выделенного сервера Battlefield 2142 на РЕД ОС через Wine: настройка, конфиги, firewall, systemd, решение проблем.

2026.04.28                  


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

Важно:

Официальные серверы BF2142 были отключены в 2014 году (прекращена работа GameSpy). Данный гайд описывает запуск выделенного сервера с использованием легальных файлов игры. Для подключения игроков требуется клиентский патч от сообщества (например, BF2142Revival или Project 2142).


Требования

Компонент Значение
ОС РЕД ОС 8 (Server/Workstation)
Доступ root или пользователь с sudo
CPU 2+ ядра (AMD/Intel x86_64)
RAM 2+ GB
Диск ~5 GB SSD
Сеть Порты UDP 16567 (игровой), TCP 27900 (запросы)
Файлы Лицензионная копия BF2142 или серверный пак от сообщества

1. Подготовка системы

1.1. Обновление и установка базовых зависимостей

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

# Включение репозитория с 32-битными пакетами (для Wine)
sudo dnf config-manager --set-enabled crb

# Установка Wine и вспомогательных утилит
sudo dnf install wine wine-mono winetricks screen firewalld curl unzip -y

Примечание:

В РЕД ОС пакеты i686 (32-бит) доступны в основном репозитории, но для Wine требуется явная установка 32-битных библиотек.

1.2. Установка 32-битных библиотек для Wine

# Установка 32-битных зависимостей
sudo dnf install glibc.i686 libgcc.i686 libX11.i686 libXext.i686 \
                 libXrender.i686 mesa-libGL.i686 mesa-dri-drivers.i686 \
                 freetype.i686 fontconfig.i686 -y

1.3. Инициализация 32-битного префикса Wine

# Создание отдельного префикса для сервера
export WINEARCH=win32
export WINEPREFIX=$HOME/.wine_bf2142

# Инициализация префикса
wineboot --init
# Или запустите графическую настройку: winecfg

1.4. Установка runtime-библиотек (рекомендуется)

WINEPREFIX=$HOME/.wine_bf2142 winetricks -q corefonts vcrun2005 vcrun2008 directx9

2. Развёртывание файлов сервера

2.1. Получение файлов сервера

Способ Описание
Легальный Установите BF2142 через EA App, скопируйте папку BF2142 из C:\Program Files (x86)\EA Games\
Сообщество Используйте серверные сборки от BF2142Revival / Project 2142 (GitHub, официальные Discord)

2.2. Распаковка и структура

mkdir -p $HOME/bf2142_server
cd $HOME/bf2142_server

# Распакуйте архив (пример)
unzip ~/bf2142-server-linux.zip

Рекомендуемая структура:

~/bf2142_server/
├── BF2142.exe
├── start.sh
├── mods/
│   └── bf2142/
│       ├── settings/
│       │   ├── serversettings.con
│       │   └── maplist.con
│       └── Levels/
└── logs/

3. Настройка сервера

3.1. Основной конфиг: serversettings.con

Откройте файл: ~/bf2142_server/mods/bf2142/settings/serversettings.con

# === Идентификация ===
sv.serverName "RU | BF2142 Community Server"
sv.serverDescription "Добро пожаловать! | Патч: Revival Project"

# === Доступ ===
sv.maxPlayers 64
sv.gamePassword ""
sv.adminPassword "ваш_супер_пароль"
sv.punkBuster 0

# === Геймплей ===
sv.dedicatedServer 1
sv.friendlyFire 0.5
sv.autoBalance 1
sv.ticketRatio 1.0
sv.scoreLimit 100
sv.timeLimit 30

# === Сеть ===
sv.internet 1              # Показывать в браузере сообщества
sv.serverIP ""             # Слушать все интерфейсы
sv.serverPort 16567        # Игровой порт (не менять без необходимости)
sv.gameSpyPort 29900       # Порт запросов (для браузеров сообщества)

# === Прочее ===
sv.autoRecordDemo 0
sv.voipEnabled 1
sv.welcomeMessage "Добро пожаловать на сервер!\|Патч: Revival Project\|Правила: /rules"

Все параметры начинаются с sv. и сохраняются в .con-формате движка Refractor 2.

3.2. Ротация карт: maplist.con

Файл: ~/bff2142_server/mods/bf2142/settings/maplist.con

# Формат: mapList.append [уровень] [режим] [кол-во_игроков]
mapList.append eu_wake_island GPM_CQ 64
mapList.append eu_berlin GPM_CQ 64
mapList.append eu_valley_of_the_swords GPM_CQ 64
mapList.append titan_troy GPM_TI 48
mapList.append titan_istanbul GPM_TI 48

Доступные режимы:

  • GPM_CQ — Conquest (Захват точек)
  • GPM_TI — Titan (Уничтожение титана)
  • GPM_SL — Supply Lines (Линии снабжения)
  • GPM_CA — Conquest & Assault

4. Настройка брандмауэра (firewalld)

В РЕД ОС используется firewalld вместо ufw.

# Активация firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld

# Открытие игровых портов (на постоянной основе)
sudo firewall-cmd --permanent --add-port=16567/udp    # Игровой трафик
sudo firewall-cmd --permanent --add-port=27900/tcp    # Запросы браузера
sudo firewall-cmd --permanent --add-port=29900/udp    # GameSpy query (для совместимости)

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

# Проверка правил
sudo firewall-cmd --list-all

На роутере:

  • Пробросьте UDP 16567 на внутренний IP сервера для доступа из интернета.

5. Запуск сервера

5.1. Ручной запуск (в screen)

cd $HOME/bf2142_server

# Запуск в изолированной сессии
screen -S bf2142

# Установка переменных окружения и запуск
export WINEPREFIX=$HOME/.wine_bf2142
WINEDEBUG=-all wine BF2142.exe +dedicated 1 +fullscreen 0 +modPath mods/bf2142

# Управление screen:
# - Отключиться: Ctrl+A, затем D
# - Вернуться: screen -r bf2142
# - Завершить сессию: exit

5.2. Автозапуск через systemd (рекомендуется)

Создайте файл:

sudo nano /etc/systemd/system/bf2142.service
[Unit]
Description=Battlefield 2142 Dedicated Server (Wine)
After=network.target firewalld.service

[Service]
Type=simple
User=ваш_пользователь
WorkingDirectory=/home/ваш_пользователь/bf2142_server
Environment=WINEPREFIX=/home/ваш_пользователь/.wine_bf2142
Environment=WINEDEBUG=-all
ExecStart=/usr/bin/wine BF2142.exe +dedicated 1 +fullscreen 0 +modPath mods/bf2142
Restart=on-failure
RestartSec=15
StandardOutput=append:/home/ваш_пользователь/bf2142_server/logs/server.log
StandardError=append:/home/ваш_пользователь/bf2142_server/logs/server_error.log
# Ограничение ресурсов (опционально)
CPUQuota=80%
MemoryMax=2G

[Install]
WantedBy=multi-user.target

Активация сервиса:

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

6. Администрирование

Действие Команда
Просмотр логов tail -f ~/bf2142_server/logs/server.log
Перезапуск сервера sudo systemctl restart bf2142
Остановка sudo systemctl stop bf2142
Проверка статуса sudo systemctl status bf2142
Вход в консоль (screen) screen -r bf2142

Админ-команды в консоли сервера:

admin.password ваш_пароль
admin.say "Сервер перезагружается через 2 минуты"
admin.restartmap
admin.nextmap
admin.kick имя_игрока

7. Устранение типичных проблем

Симптом Решение
wine: cannot find 'BF2142.exe' Проверьте регистр, путь WorkingDirectory, наличие .exe
Сервер запускается, но не виден Убедитесь, что игроки используют патч сообщества. Официальный браузер не работает
err:module:import_dll Установите недостающие VC++ runtimes: winetricks vcrun2005 vcrun2008
Высокий CPU usage Добавьте +maxFPS 60 в командную строку или ограничьте через CPUQuota=80% в systemd
Игроки не подключаются Проверьте firewall-cmd --list-all, проброс портов, sv.dedicatedServer 1
Падения при загрузке карт Обновите Wine до 8.0+: sudo dnf update wine, добавьте winetricks d3dx9_43

8. Подключение игроков

  1. Установите лицензионный BF2142
  2. Примените клиентский патч от сообщества (BF2142Revival Client / Project 2142)
  3. В клиенте укажите +connect IP_СЕРВЕРА или используйте браузер сообщества
  4. Серверы с sv.gamePassword "" видны в списке сразу после запуска

Ресурсы сообщества:

  • BF2142Revival на GitHub
  • Wiki по параметрам .con файлов движка Refractor 2

Примечания и рекомендации

  • Сервер работает в headless-режиме, видеокарта не требуется
  • Регулярно делайте бэкап mods/bf2142/ и logs/
  • Для публичного сервера настройте fail2ban на SSH: sudo dnf install fail2ban
  • Ограничьте доступ к админ-портам по IP при необходимости
  • Все файлы должны быть получены легально. Использование пиратских копий нарушает лицензию EA

Совет:

  • Для тестирования сначала запустите сервер в локальной сети, убедитесь в стабильности, и только затем открывайте порты в интернет.

Гайд адаптирован для РЕД ОС 8 на основе официальной документации по Wine и firewalld, а также опыта сообщества по запуску серверов на Linux.