Подробный гайд: Установка и настройка выделенного сервера Battlefield 2142 на Ubuntu
Важно:
- Официальные серверы EA/DICE для BF2142 закрыты в 2014 году. Данное руководство описывает запуск сервера через сообщественные патчи (наиболее известный проект –
BF2142 Revive). Используйте только если владеете лицензионной копией игры. Сообщество работает в рамках пользовательских соглашений и локальных законов об отказоустойчивом ПО.
Системные требования
| Компонент | Минимум | Рекомендовано |
|---|---|---|
| ОС | Ubuntu 20.04 / 22.04 / 24.04 LTS | 22.04 / 24.04 LTS |
| CPU | 2 ядра | 4 ядра |
| RAM | 2 ГБ | 4 ГБ |
| Диск | 10 ГБ свободного места | SSD |
| Сеть | Открытые порты 16567/UDP, 29900/UDP+TCP |
Статический IP, NAT/Port Forwarding |
Шаг 1: Подготовка системы
sudo apt update && sudo apt upgrade -y
sudo apt install -y wget curl unzip p7zip-full screen tmux
Создайте отдельного пользователя для сервера (без sudo прав):
sudo useradd -m -s /bin/bash bf2142srv
sudo passwd bf2142srv
Шаг 2: Установка Wine и создание префикса
BF2142 – 32-битное приложение. Используем WineHQ Stable с принудительной 32-битной архитектурой.
sudo dpkg --add-architecture i386
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/$(lsb_release -cs)/winehq-$(lsb_release -cs).sources
sudo apt update
sudo apt install --install-recommends winehq-stable -y
Создаём изолированный префикс:
sudo su - bf2142srv
export WINEPREFIX="$HOME/.wine-bf2142"
export WINEARCH=win32
WINEPREFIX="$HOME/.wine-bf2142" winecfg
В открывшемся окне установите Версия Windows → Windows 7 (или Windows XP), нажмите OK. Закройте окно.
Шаг 3: Получение файлов сервера
- Установите лицензионную BF2142 (Steam/EA App/резервная копия).
- Скачайте последнюю версию сообщества
BF2142 Reviveили аналогичный патч с официального GitHub проекта.
3. Распакуйте файлы в домашнюю директорию пользователя:
mkdir -p $HOME/bf2142server
# Замените путь на ваш архив
unzip bf2142_revive_server_vX.X.zip -d $HOME/bf2142server
cd $HOME/bf2142server
Структура папок (пример):
bf2142server/
├── bf2142.exe
├── bf2142server.exe (если есть)
├── mods/
├── levels/
├── serverconfig.con
└── logs/
Шаг 4: Настройка сервера
BF2142 использует конфигурационные файлы в формате .con (как BF2). Основные параметры можно передавать через командную строку или прописать в serverconfig.con.
Пример serverconfig.con
Создайте или отредактируйте файл:
nano serverconfig.con
# Идентификация
sv.serverName "My BF2142 Ubuntu Server"
sv.serverPassword ""
sv.rconPassword "YourSecureRCONPass123"
# Сеть
sv.port 16567
sv.queryPort 29900
sv.maxPlayers 32
# Геймплей
sv.gameMode "gpm_cq"
sv.mapList "levels/Operation_CleanSweep/Operation_CleanSweep.con, levels/Gulf_of_Oman/Gulf_of_Oman.con"
sv.punkbuster 0
sv.autoBalance 1
sv.friendlyFire 0.5
sv.ticketRatio 1.0
Параметры командной строки (приоритетнее .con)
+dedicated 1
+set sv.serverName "Test"
+set sv.maxPlayers 24
+set sv.port 16567
+set sv.punkbuster 0
Карты и режимы:
- Список поддерживаемых карт находится в
mods/bf2142/levels/. Режимы:gpm_cq(Conquest),gpm_tdm(Team Deathmatch),gpm_skirmishи др.
Шаг 5: Запуск и тестирование
Запустите сервер в screen для фоновой работы:
cd $HOME/bf2142server
screen -S bf2142srv
WINEPREFIX="$HOME/.wine-bf2142" WINEDEBUG=-all wine bf2142.exe +dedicated 1 +set sv.port 16567 +set sv.maxPlayers 32
Если всё верно, в консоли появятся строки вида:
Server started on port 16567
Loading level: Operation_CleanSweep
Waiting for clients...
Отключитесь от screen: Ctrl+A, D
Вернитесь позже: screen -r bf2142srv
Шаг 6: Настройка сети и фаервола
# UFW
sudo ufw allow 16567/udp comment "BF2142 Game"
sudo ufw allow 29900/udp comment "BF2142 Query"
sudo ufw allow 29900/tcp comment "BF2142 RCON/Master"
sudo ufw reload
На роутере: пробросьте порты 16567 UDP и 29900 UDP/TCP на внутренний IP сервера.
Проверка: используйте nc -vzu <внешний_ip> 16567 или онлайн-портчекеры.
Шаг 7: Автоматизация через systemd
Создаём сервис для автозапуска и восстановления:
sudo nano /etc/systemd/system/bf2142server.service
[Unit]
Description=BF2142 Dedicated Server (Wine)
After=network.target
Wants=network.target
[Service]
Type=simple
User=bf2142srv
Group=bf2142srv
WorkingDirectory=/home/bf2142srv/bf2142server
Environment="WINEPREFIX=/home/bf2142srv/.wine-bf2142"
Environment="WINEDEBUG=-all"
Environment="WINEDLLOVERRIDES=mscoree,mshtml="
ExecStart=/usr/bin/wine bf2142.exe +dedicated 1 +set sv.port 16567 +set sv.maxPlayers 32
Restart=on-failure
RestartSec=10
LimitNOFILE=65536
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
Активируем:
sudo systemctl daemon-reload
sudo systemctl enable --now bf2142server.service
sudo systemctl status bf2142server.service
Логи:
sudo journalctl -u bf2142server.service -f
Шаг 8: Диагностика и типичные ошибки
| Проблема | Решение |
|---|---|
fixme:process:SetProcessDEPPolicy |
Игнорируйте, это предупреждение Wine. |
| Сервер падает при загрузке карты | Проверьте права на levels/, убедитесь, что .con файлы в кодировке UTF-8 без BOM. |
PunkBuster блокирует подключение |
Установите sv.punkbuster 0 или используйте патч от сообщества. |
| Не виден в списке серверов | Проверьте проброс портов, убедитесь, что используется актуальная версия мастер-сервера Revive. |
| Высокий CPU/RAM | Ограничьте sv.maxPlayers, отключите ненужные моды, используйте nice -n 10 wine ... |
Ошибка .dll not found |
Установите зависимости через winetricks: WINEPREFIX=~/.wine-bf2142 winetricks vcrun2005 directx9 |
Просмотр логов игры:
tail -f /home/bf2142srv/.wine-bf2142/drive_c/users/bf2142srv/Local\ Settings/Application\ Data/Battlefield\ 2142/logs/server.log
Безопасность и рекомендации
- Никогда не запускайте от
root. Используйте выделенного пользователя. - RCON-пароль должен быть сложным. Меняйте его регулярно.
- Обновляйте патчи сообщества только с официальных репозиториев.
- Резервные копии:
tar -czf bf2142_backup_$(date +%F).tar.gz ~/bf2142server - Мониторинг: настройте
logrotateдля журналов, используйтеhtop/glances.
Полезные ресурсы сообщества (2024–2026)
| Ресурс | Описание |
|---|---|
BF2142 Revive (GitHub) |
Основной патч, мастер-сервер, инструменты администрирования |
BF2142 Community Patch |
Исправления багов, баланс, новые карты |
BF2142 Server Manager |
GUI/CLI утилиты для ротации карт, бана, статистики |
Официальный форум bf2142.org |
Поддержка, моддинг, поиск игроков |
Все ссылки ищите через репозитории с открытым кодом.
BF2142 Revive.
Чек-лист перед запуском
- [ ] Лицензионная копия BF2142 приобретена
- [ ] Отдельный пользователь
bf2142srvсоздан - [ ] Wine 32-бит префикс настроен
- [ ] Файлы сервера распакованы в
$HOME/bf2142server - [ ]
serverconfig.conили аргументы запуска проверены - [ ] Порты
16567/udp,29900/udp+tcpоткрыты в UFW и роутере - [ ]
systemdсервис активен и перезапускается при падении - [ ] Тестовое подключение с клиента прошло успешно