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

Пошаговая настройка выделенного сервера Battlefield 2142 на Fedora через Wine. Конфиги, автозапуск systemd, файрвол и диагностика.

2026.04.27                  


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

Важно перед началом

  • Battlefield 2142 выпущен в 2006 году. Официальная инфраструктура EA/GameSpy отключена в 2014 году.
  • Для работы в интернете обязательно требуются фанатские патчи/эмуляторы мастер-серверов (например, BF2142Hub, BF2142 Revive или аналоги).
  • Официальный выделенный сервер поставляется только для Windows. На Fedora запуск осуществляется через Wine.
  • Для легального использования вам необходима лицензионная копия игры (файлы сервера распространяются вместе с игрой).
  • Данный гайд актуален для Fedora 38–41 и Wine 8.0+.

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

# Обновление пакетов
sudo dnf update -y

# Установка Wine и вспомогательных утилит
sudo dnf install -y wine wine.i686 winetricks cabextract perl

# (Опционально) 32-битные библиотеки, если не установлены автоматически
sudo dnf install -y glibc.i686 libstdc++.i686

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

Запуск от root или основного пользователя не рекомендуется.

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

2. Настройка Wine-префикса

Переключитесь на созданного пользователя:

su - bf2142srv

Создайте изолированный префикс (32-битный, т.к. сервер 32-битный):

export WINEPREFIX="$HOME/.wine-bf2142"
export WINEARCH=win32

# Инициализация префикса
winecfg

В открывшемся окне:

  • Вкладка Приложения → Версия Windows: Windows XP (наиболее стабильно для BF2142)
  • Закройте окно. Префикс создан.

Сервер не использует графику, поэтому установка DirectX/DXVK не требуется.


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

3.1. Получение файлов

1. Из лицензионной установки скопируйте:
  • BF2142.exe
  • Папку mods/bf2142/
  • (Опционально) DedicatedServer.exe (если есть в дистрибутиве)
2. Разместите их в домашней директории пользователя:
   mkdir -p ~/bf2142-server/mods
   # Скопируйте файлы сюда, сохранив структуру:
   # ~/bf2142-server/BF2142.exe
   # ~/bf2142-server/mods/bf2142/

3.2. Установка фанатского патча

Официальные серверы не работают. Найдите актуальный патч сообщества (ищите по запросам BF2142 dedicated server patch 2024/2025 или на форумах bf2142hub.com / Discord-сообществах).

Обычно патч содержит:

  • Заменённый BF2142.exe или DedicatedServer.exe
  • Обновлённые .con файлы для подключения к фанатскому мастер-серверу
  • Инструкции по установке

Распакуйте патч в ~/bf2142-server/, перезаписав оригинальные файлы.


4. Настройка конфигурации сервера

Основные файлы находятся в ~/bf2142-server/mods/bf2142/Settings/.

serversettings.con

sv.serverName "BF2142 Fedora Server"
sv.maxPlayers 32
sv.gamePassword ""
sv.rconPassword "ВАШ_СЛОЖНЫЙ_ПАРОЛЬ"
sv.port 16567
sv.rconPort 17567
sv.friendlyFire 0
sv.autoBalance 1
sv.restartMapOnEmpty 1
sv.dedicatedServer 1

Если патч требует указать адрес фанатского мастер-сервера, добавьте строку вида:

  • sv.masterServer "ip:port" (уточняется в документации патча).

mapcycle.txt

Цикл карт (формат: gp.<режим>_<карта> <вес>)

gp.conquest_turin 0
gp.conquest_berlin 0
gp.cqc_shanghai 0
gp.onsl_frostbite 0
gp.gp_assault_berlin 0

Веса 0 означают равную вероятность. Можете менять на 1, 2 и т.д. для приоритета.


5. Запуск сервера (ручной тест)

cd ~/bf2142-server
WINEPREFIX="$HOME/.wine-bf2142" wine BF2142.exe +dedicated 1 +fullscreen 0 +modpath mods/bf2142 +restartmaponempty 1

Ожидаемый результат в консоли:

[SERVER] Listening on UDP 16567
[SERVER] RCON enabled on TCP 17567
[SERVER] Loading map gp.conquest_turin...

Остановите сервер Ctrl+C после проверки.


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

Создайте сервис от имени root:

sudo nano /etc/systemd/system/bf2142-server.service
[Unit]
Description=Battlefield 2142 Dedicated Server
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=bf2142srv
Group=bf2142srv
WorkingDirectory=/home/bf2142srv/bf2142-server
Environment="WINEPREFIX=/home/bf2142srv/.wine-bf2142"
Environment="WINEDEBUG=-all"
Environment="WINEARCH=win32"
ExecStart=/usr/bin/wine ./BF2142.exe +dedicated 1 +fullscreen 0 +modpath mods/bf2142 +restartmaponempty 1
Restart=on-failure
RestartSec=15
StandardOutput=journal
StandardError=journal
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

Включите и запустите:

sudo systemctl daemon-reload
sudo systemctl enable --now bf2142-server
sudo journalctl -u bf2142-server -f  # мониторинг логов

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

sudo firewall-cmd --permanent --add-port=16567/udp
sudo firewall-cmd --permanent --add-port=17567/tcp
sudo firewall-cmd --permanent --add-port=17567/udp
sudo firewall-cmd --reload
  • Если сервер за NAT/роутером, пробросьте UDP 16567 и TCP/UDP 17567 на IP машины с Fedora.
  • Для проверки подключения используйте утилиты вроде nc -ul 16567 или клиент BF2142.

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

Проблема Решение
wine: cannot find L"BF2142.exe" Проверьте путь в WorkingDirectory и ExecStart. Запуск от bf2142srv должен видеть файл.
Сервер падает сразу после старта Запустите вручную с WINEDEBUG=+seh,+relay wine BF2142.exe ... для трассировки. Обновите Wine: sudo dnf upgrade wine
Клиент не видит сервер в браузере Убедитесь, что патч мастер-сервера установлен. Проверьте firewall-cmd --list-ports. Некоторые патчи требуют настройки sv.queryPort.
Высокое потребление CPU Добавьте +renderer null в строку запуска (если патч поддерживает). Сервер не должен рендерить графику.
Ошибка mscoree.dll или .NET Установите через winetricks: WINEPREFIX="$HOME/.wine-bf2142" winetricks dotnet40 (редко требуется для сервера).

Важные примечания

  1. Легальность: Файлы сервера являются частью лицензионной игры. Распространение BF2142.exe без лицензии нарушает EULA EA.
  2. Обновления: Сообщество периодически выпускает патчи, исправляющие уязвимости и совместимость. Следите за официальными каналами сообщества.
3. Безопасность:
  • Используйте сложный sv.rconPassword
  • Не открывайте 17567 в интернет без необходимости
  • Регулярно обновляйте систему: sudo dnf upgrade
  1. Альтернатива: Если не хотите возиться с Wine, рассмотрите Docker-контейнеры с готовыми образами (поищите bf2142-server docker на GitHub).

Где искать актуальную информацию

  • Официальный форум/сайт сообщества (ищите BF2142 Hub или BF2142 Revive)
  • GitHub-репозитории с патчами и docker-compose решениями
  • Архив bf2142files.com (проверяйте даты и сигнатуры файлов)

Готово. Ваш сервер запущен, защищён и готов принимать игроков. При возникновении специфических ошибок предоставляйте вывод journalctl -u bf2142-server --no-pager -n 100 и WINEDEBUG=+seh wine BF2142.exe ... для точной диагностики.

Удачи на полях сражений!