Подробный гайд: Установка и настройка выделенного сервера 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) чисты, сервер виден в браузере