Подробный гайд: Выделенный сервер 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. Подключение игроков
- Установите лицензионный BF2142
- Примените клиентский патч от сообщества (
BF2142Revival Client/Project 2142) - В клиенте укажите
+connect IP_СЕРВЕРАили используйте браузер сообщества - Серверы с
sv.gamePassword ""видны в списке сразу после запуска
Ресурсы сообщества:
BF2142Revivalна GitHub- Wiki по параметрам
.conфайлов движка Refractor 2
Примечания и рекомендации
- Сервер работает в headless-режиме, видеокарта не требуется
- Регулярно делайте бэкап
mods/bf2142/иlogs/ - Для публичного сервера настройте
fail2banна SSH:sudo dnf install fail2ban - Ограничьте доступ к админ-портам по IP при необходимости
- Все файлы должны быть получены легально. Использование пиратских копий нарушает лицензию EA
Совет:
- Для тестирования сначала запустите сервер в локальной сети, убедитесь в стабильности, и только затем открывайте порты в интернет.
Гайд адаптирован для РЕД ОС 8 на основе официальной документации по Wine и firewalld, а также опыта сообщества по запуску серверов на Linux.