Подробный гайд: Выделенный сервер 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 (редко требуется для сервера). |
Важные примечания
- Легальность: Файлы сервера являются частью лицензионной игры. Распространение
BF2142.exeбез лицензии нарушает EULA EA. - Обновления: Сообщество периодически выпускает патчи, исправляющие уязвимости и совместимость. Следите за официальными каналами сообщества.
3. Безопасность:
- Используйте сложный
sv.rconPassword - Не открывайте
17567в интернет без необходимости - Регулярно обновляйте систему:
sudo dnf upgrade
- Альтернатива: Если не хотите возиться с 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 ... для точной диагностики.
Удачи на полях сражений!