Подробный гайд: Установка и настройка выделенного сервера Battlefield 2142 на Elementary OS
Важные предварительные замечания
- Официальные серверы EA были отключены в 2014 году. Для работы мультиплеера обязательно требуются патчи сообщества (наиболее стабильный: BF2142 Revival / Project 142b).
- Выделенный сервер поставляется только для Windows. На Linux он стабильно запускается через Wine.
- Elementary OS основана на Ubuntu LTS, поэтому все команды совместимы с
aptиsystemd. - Рекомендуется использовать легальную копию игры для получения оригинальных файлов сервера.
Шаг 1: Подготовка системы
1. Обновите пакеты и добавьте поддержку 32-битных библиотек (сервер 32-битный):
sudo apt update && sudo apt upgrade -y
sudo dpkg --add-architecture i386
sudo apt update
2. Установите базовые зависимости:
sudo apt install -y wine winetricks curl unzip net-tools ufw systemd-cron
3. (Опционально) Установите свежую версию Wine из официального репозитория, если в репозиториях Elementary OS версия старее 8.0:
sudo mkdir -pm755 /etc/apt/keyrings
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/$(. /etc/os-release && echo "$VERSION_CODENAME")/winehq-$(. /etc/os-release && echo "$VERSION_CODENAME").sources
sudo apt update
sudo apt install -y --install-recommends winehq-stable
Шаг 2: Получение файлов сервера и патчей
1. Оригинальные файлы:
- Установите BF2142 на любой Windows-ПК или в виртуальную машину.
- Найдите папку установки, обычно:
C:\Program Files\EA Games\Battlefield 2142\ - Вам нужны:
BF2142_w32ded.exe, папкиmods\bf2142,mods\bf2142\Cache,mods\bf2142\Data - Также можно скачать официальный BF2142 Dedicated Server из архивов EA (файл
bf2142_dedicated_server.zip).
2. Патч сообщества (обязательно):
- Скачайте актуальный патч с официального сайта сообщества:
bf2142revival.comилиproject142b.com - Распакуйте архив, он содержит исправленные
.dll,bf2142_w32ded.exe, а также утилитуMasterServerRedirectдля подключения к современным мастер-серверам.
3. Создайте структуру на сервере:
mkdir -p ~/bf2142server/drive_c/Program\ Files/EA\ Games/Battlefield\ 2142/mods/bf2142
Скопируйте оригинальные файлы сервера и замените их файлами из патча сообщества в указанную директорию.
Шаг 3: Настройка Wine-префикса
Сервер должен работать в 32-битном префиксе с эмуляцией Windows 7.
export WINEPREFIX=~/bf2142server
export WINEARCH=win32
# Инициализация префикса
winecfg
В открывшемся окне winecfg:
- Вкладка Windows Version → выбрать
Windows 7 - Вкладка Libraries → добавить
d3dx9_36,d3dcompiler_43,msvcp60,msvcr71,vcrun2005(позже установим через winetricks) - Нажмите
OK
Установите необходимые компоненты:
WINEPREFIX=~/bf2142server WINEARCH=win32 winetricks -q vcrun2005 vcrun2008 directx9
Рекомендуется отключить графический вывод для сервера:
WINEPREFIX=~/bf2142server wine reg add "HKCU\Software\Wine\Direct3D" /v "VideoMemorySize" /t REG_SZ /d "0" /f
Шаг 4: Конфигурация сервера
Все настройки хранятся в файлах .con (ASCII-кодировка, без BOM).
1. serversettings.con (основные параметры):
sv.serverName "BF2142 EU Community Server"
sv.maxPlayers 32
sv.gamemode gpm_cq
sv.ranked 1
sv.password ""
sv.adminPassword "your_admin_pass"
sv.autoRotate 1
sv.timeLimit 30
sv.scoreLimit 0
2. maplist.con (список карт):
mapList.add map_toronto gpm_cq 6
mapList.add map_shanghai gpm_cq 6
mapList.add map_minsk gpm_cq 6
mapList.add map_beach gpm_cq 6
mapList.add map_fortress gpm_cq 6
Имена карт и режимов должны совпадать с названиями в папке
mods/bf2142/Levels/
3. Поместите оба файла в:
~/bf2142server/drive_c/Program\ Files/EA\ Games/Battlefield\ 2142/mods/bf2142/
Шаг 5: Запуск и тестирование
1. Ручной запуск (для проверки):
cd "~/bf2142server/drive_c/Program Files/EA Games/Battlefield 2142"
WINEPREFIX=~/bf2142server WINEARCH=win32 wine BF2142_w32ded.exe +exec serversettings.con +mapList.mapList
2. Проверка:
- В консоли должно появиться:
Starting server on port 16567... - Проверьте открытый порт:
ss -ulnp | grep 16567 - Попробуйте подключиться клиентом (с тем же патчем сообщества) через
IP_СЕРВЕРА:16567
3. Логи:
~/bf2142server/drive_c/users/$USER/Local Settings/Application Data/Battlefield 2142/Logs/server.log
Шаг 6: Настройка сети и автозагрузки
Брандмауэр (UFW)
sudo ufw allow 16567/udp
sudo ufw allow 16567/tcp
sudo ufw reload
Если сервер за NAT, пробросьте порт
16567/udpна роутере.
Systemd-сервис (автозапуск)
1. Создайте файл:
sudo nano /etc/systemd/system/bf2142server.service
2. Вставьте:
[Unit]
Description=Battlefield 2142 Dedicated Server
After=network.target
[Service]
Type=simple
User=denis
WorkingDirectory=/home/denis/bf2142server/drive_c/Program Files/EA Games/Battlefield 2142
Environment=WINEPREFIX=/home/denis/bf2142server
Environment=WINEARCH=win32
Environment=DISPLAY=:0
ExecStart=/usr/bin/wine BF2142_w32ded.exe +exec serversettings.con +mapList.mapList
Restart=on-failure
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
3. Активируйте:
sudo systemctl daemon-reload
sudo systemctl enable --now bf2142server.service
sudo journalctl -u bf2142server -f
Для headless-серверов (без монитора) установите xvfb и измените ExecStart:
ExecStart=/usr/bin/xvfb-run --auto-servernum --server-args="-screen 0 640x480x24" /usr/bin/wine BF2142_w32ded.exe ...
Устранение неполадок
| Симптом | Решение |
|---|---|
Missing DLL при старте |
WINEPREFIX=~/bf2142server winetricks vcrun2005 |
| Сервер запускается, но не видит карты | Проверьте регистр в maplist.con, убедитесь, что файлы .con в ASCII (не UTF-8 с BOM) |
| Краш при загрузке первой карты | Добавьте в запуск: +set fs_basepath "C:\Program Files\EA Games\Battlefield 2142" |
| Клиент не подключается | Убедитесь, что клиент и сервер используют одинаковый патч сообщества, проверьте UFW/NAT, отключите IPv6 в serversettings.con: sv.ipVersion 4 |
| Высокий CPU / лаги | Ограничьте тикрейт: sv.fps 30, добавьте +set net_maxfps 30 |
Безопасность и рекомендации
- Запускайте сервер от отдельного пользователя, не от root.
- Используйте
ufwилиnftables, разрешайте доступ только по нужным портам. - Регулярно обновляйте патчи сообщества и бэкапьте
serversettings.con. - Настройте
rcon(удалённая консоль) черезsv.adminPasswordи клиенты типаBF2142 RCON Tool. - Не размещайте сервер в публичных каталогах с
sv.password "", если не готовы к гриферам.