Подробный гайд: Установка и настройка выделенного сервера Battlefield 2142 на RHEL

Установка сервера Battlefield 2142 на RHEL 8/9/10: Wine, настройка, systemd, firewall. Полное руководство по запуску выделенного сервера.

2026.04.27                  


Подробный гайд: Установка и настройка выделенного сервера Battlefield 2142 на RHEL (2024–2026)Подробный гайд: Установка и настройка выделенного сервера Battlefield 2142 на RHEL (2024–2026)

Важно:

  • Battlefield 2142 выпущен в 2006 году. Официальная поддержка серверных инструментов прекращена много лет назад. На современных RHEL 8/9/10 потребуется использовать совместимые подходы (Wine или 32-битные библиотеки). Данный гайд ориентирован на стабильную работу в современных условиях и учитывает особенности актуальных веток RHEL.

1. Системные требования

Параметр Минимум Рекомендуемо
ОС RHEL 8/9/10 (x86_64) RHEL 9/10
CPU 2 ядра 4+ ядра
RAM 2 ГБ 4 ГБ
Диск 5 ГБ 10+ ГБ (SSD)
Сеть 10 Мбит/с (вх/исх) 50+ Мбит/с, статический IP

2. Подготовка системы и пользователя

Выполняйте команды от root или через sudo.

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

# Создание выделенного пользователя (никогда не запускайте сервер от root)
sudo useradd -m -s /bin/bash bf2142srv
sudo passwd bf2142srv

3. Установка зависимостей

Вариант A: Через Wine (рекомендуется для RHEL 9/10)

На современных RHEL 32-битные библиотеки частично удалены или ограничены. Wine обеспечивает максимальную совместимость с оригинальным бинарником.

# Подключение EPEL
sudo dnf install epel-release -y

# Установка Wine и утилит
sudo dnf install wine winetricks -y

# Инициализация префикса от имени пользователя сервера
sudo -u bf2142srv -i
winecfg
# В окне Winecfg выберите: Windows 7, примените, закройте
exit

# Установка необходимых рантаймов (vcrun2005 часто требуется для BF2142)
sudo -u bf2142srv winetricks vcrun2005

Вариант B: Нативный Linux-бинарник (только RHEL 8 или при ручной настройке i686)

# Включение репозитория с 32-битными пакетами (RHEL 9/10)
sudo dnf config-manager --set-enabled crb
sudo dnf install glibc.i686 libstdc++.i686 zlib.i686 ncurses-libs.i686 -y

Примечание: Нативный bf2142ded (ELF32) может падать на glibc > 2.31. Wine-метод стабильнее.


4. Получение серверных файлов

Официальные файлы больше не распространяются через SteamCMD или EA App. Сообщество поддерживает архивы стабильных сборок.

sudo -u bf2142srv -i
mkdir -p ~/bf2142server && cd ~/bf2142server

# Скачайте архив из проверенного источника сообщества, например:
# - BF2142 Project (revival-патчи)
# - Архив v1.5 Dedicated Server (проверенные зеркала)
# Пример распаковки (замените имя архива):
tar -xzf bf2142_dedicated_v1.5.tar.gz --strip-components=1

Структура после распаковки должна содержать:

bf2142ded.exe (или bf2142ded)
config/
  serversettings.con
  maplist.con
mods/
levels/
bf2142_server.log

5. Базовая настройка конфигурации

config/serversettings.con

server.name "BF2142 RHEL Server"
server.maxPlayers 32
server.port 16567
server.queryport 29900
server.rconPassword "ВАШ_ОЧЕНЬ_СЛОЖНЫЙ_ПАРОЛЬ"
server.password ""
server.dedicated 1
server.autoUpdate 0
server.executables 0
server.friendlyFire 0
server.startMap 1
server.mapRotation 1
server.mod bf2142

config/maplist.con

Пример ротации:

maplist.addMap 0 "kubra_dam"
maplist.addMap 1 "suez_canal"
maplist.addMap 2 "sharqi_peninsula"
maplist.addMap 3 "fall_of_berlin"
maplist.addMap 4 "gibraltar"

Полный список карт лежит в levels/. Используйте точные имена папок без расширений.

6. Запуск сервера

sudo -u bf2142srv -i
cd ~/bf2142server

# Запуск через Wine
wine bf2142ded.exe +set dedicated 1 +set gameport 16567 +set queryport 29900

Сервер запишет инициализацию в bf2142_server.log.

При успешном старте вы увидите:

[INFO] Server started on port 16567
[INFO] Master server registration successful

Для остановки: Ctrl+C в терминале или rcon-команда quit.


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

Создайте юнит для автозапуска и восстановления после падений:

sudo tee /etc/systemd/system/bf2142.service > /dev/null << 'EOF'
[Unit]
Description=Battlefield 2142 Dedicated Server
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=bf2142srv
Group=bf2142srv
WorkingDirectory=/home/bf2142srv/bf2142server
ExecStart=/usr/bin/wine bf2142ded.exe +set dedicated 1 +set gameport 16567 +set queryport 29900
Restart=on-failure
RestartSec=15
StandardOutput=journal
StandardError=journal
Environment="WINEPREFIX=/home/bf2142srv/.wine"
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable --now bf2142
sudo systemctl status bf2142

Просмотр логов: sudo journalctl -u bf2142 -f


8. Настройка firewall (firewalld)

sudo firewall-cmd --permanent --add-port=16567/udp   # Игровой трафик
sudo firewall-cmd --permanent --add-port=29900/udp   # Query/Master
sudo firewall-cmd --permanent --add-port=4711/tcp    # RCON
sudo firewall-cmd --reload

Проверка: sudo firewall-cmd --list-ports

RCON-порт (4711) открывайте только для доверенных IP или используйте firewall-cmd --add-rich-rule для ограничения по источнику.


9. Безопасность и рекомендации

Действие Описание
Не запускать от root Уже настроено через bf2142srv
Сильный RCON-пароль Минимум 16 символов, спецсимволы
Отключить server.executables Защита от загрузки сторонних скриптов
Регулярные бэкапы config/, mods/, levels/
Мониторинг htop, journalctl, fail2ban (при наличии веб-панели)
Обновление Сообщество выпускает фиксы безопасности и патчи совместимости

10. Диагностика и устранение неполадок

Симптом Решение
libxxx.so: cannot open shared object Установите соответствующий .i686 пакет или переключитесь на Wine
Сервер не виден в браузере Проверьте queryport 29900/udp, мастер-серверы часто меняются. Используйте сторонние браузеры (например, BF2142 Browser)
Падение при старте карты Проверьте права на levels/, запустите с +set mod bf2142
Высокий CPU/лаги Ограничьте server.maxPlayers, отключите server.physicsTickRate выше 60
RCON не подключается Проверьте порт 4711/tcp, пароль в serversettings.con, отсутствие bind 127.0.0.1

Полезные команды:

# Проверка открытых портов
ss -tulnp | grep -E '16567|29900|4711'

# Проверка зависимостей (для нативного бинарника)
ldd bf2142ded

# Очистка кэша Wine (если артефакты)
rm -rf ~/.wine/drive_c/users/bf2142srv/Local\ Settings/Application\ Data/DICE/

11. Полезные ресурсы сообщества (2024–2026)

  • BF2142 Project / Revival: bf2142project.com – патчи совместимости, моды, фиксы серверов
  • Discord-сообщества: Поиск по BF2142 Community Server – актуальные зеркала файлов, конфиги, поддержка
  • Документация по .con: Архивы bf2142-wiki.net или GitHub-репозитории серверных шаблонов
  • Браузеры серверов: BF2142 Server Browser (отдельные клиенты, не встроенные в игру)

Финальный чек-лист

  • [ ] Пользователь bf2142srv создан, права ограничены
  • [ ] Wine установлен и настроен (winetricks vcrun2005)
  • [ ] Серверные файлы распакованы, структура верна
  • [ ] serversettings.con и maplist.con отредактированы
  • [ ] systemd-юнит активен, сервис стартует автоматически
  • [ ] firewall-cmd открыл 16567/udp, 29900/udp, 4711/tcp
  • [ ] RCON-пароль задан, server.executables 0
  • [ ] Логи (journalctl -u bf2142) чисты, сервер виден в браузере