Подробный гайд: Выделенный сервер Battlefield 2142 на Alt Linux

Настройка выделенного сервера Battlefield 2142 на Alt Linux. Установка, systemd, firewall, запуск с модами Revive/Project 2142. Полное руководство

2026.04.28                  


Подробный гайд: Выделенный сервер Battlefield 2142 на Alt LinuxПодробный гайд: Выделенный сервер Battlefield 2142 на Alt Linux

Важно:

  • Официальные серверы EA закрыты в 2014 году. Современный клиент не подключится к ванильному серверу без патчей сообщества (BF2142 Revive, Project 2142, BFHub). В гайде описан запуск базового сервера; в конце даны инструкции по адаптации под современные клиенты.

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

Компонент Минимум Рекомендуемо
CPU 1 ядро 2 ядра
RAM 512 МБ 1 ГБ
Диск 2 ГБ 5 ГБ (для логов и кэша)
Сеть Открытые порты 16567/udp, 16568/tcp Статический IP / проброс портов
ОС Alt Linux p9 / p10 / Сизиф p10+ (systemd, firewalld)

Шаг 1: Подготовка ОС

Alt Linux использует apt (RPM-based) и поддерживает мультилиб из коробки. Для 32-битного бинарника сервера потребуются i586-библиотеки.

# Обновление системы
sudo apt update && sudo apt full-upgrade -y

# Установка базовых утилит
sudo apt install -y wget tar screen tmux ldd curl

# Установка 32-битных зависимостей
sudo apt install -y \
  glibc-i586 \
  libstdc++6-i586 \
  zlib1-i586 \
  libX11-6-i586 \
  libasound2-i586 \
  libopenal1-i586 \
  libncurses5-i586

Если пакеты не находятся, проверьте подключенные репозитории:

  • cat /etc/apt/sources.list.d/*.list. В Alt Linux p10+ 32-битные пакеты доступны в основном репозитории с суффиксом :i586 или как отдельные *-i586.

Шаг 2: Получение файлов сервера

Вариант А: Через SteamCMD (рекомендуется)

# Скачиваем SteamCMD
mkdir -p ~/steamcmd && cd ~/steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz

# Создаём директорию сервера
mkdir -p ~/bf2142_server && cd ~/bf2142_server

# Загружаем файлы (AppID 17740 = BF2142 Dedicated Server)
~/steamcmd/steamcmd.sh +login anonymous +force_install_dir . +app_update 17740 validate +quit

Вариант Б: Ручная загрузка (если Steam недоступен)

Скачайте архив с проверенного источника (например, архив сообщества или зеркало), распакуйте:

tar -xzf bf2142_lnxded_server.tar.gz -C ~/bf2142_server/

После распаковки убедитесь, что бинарник существует и является исполняемым:

ls -la bf2142_lnxded
chmod +x bf2142_lnxded

Проверьте зависимости:

ldd bf2142_lnxded | grep "not found"

Если есть not found – установите недостающие *-i586 пакеты через apt.


Шаг 3: Базовая настройка

Перейдите в папку с модами:

cd ~/bf2142_server/bf2142/

serversettings.con

sv.serverName "Alt Linux BF2142 Server"
sv.maxPlayers 64
sv.port 16567
sv.rconPort 16568
sv.rconPassword "YourStrongRCONPass123"
sv.gameMode "cqd"
sv.hostname "bf2142.example.com"
sv.punkbuster 0

maplist.txt

Формат: карта режим кол-во_игроков

dalian_plant gpm_cq 64
wake_island gpm_cq 32
gulf_of_oman gpm_cq 64
suez_canal gpm_cq 32

adminlogin.txt (для RCON)

admin:YourStrongRCONPass123

Шаг 4: Запуск и тестирование

cd ~/bf2142_server
./bf2142_lnxded +maplist file "bf2142/maplist.txt" +server.port 16567 +maxPlayers 64 +noGUI +dedicated 1 +password ""

Сервер запустится в консоли. Для выхода без остановки используйте Ctrl+A D (если в screen) или Ctrl+B D (если в tmux).

Логи пишутся в ~/bf2142_server/logs/server.log


Шаг 5: Настройка автозагрузки (systemd)

Создаём системного пользователя:

sudo useradd -r -m -d /home/bf2142 -s /bin/bash bf2142
sudo chown -R bf2142:bf2142 /home/bf2142/bf2142_server

Создаём unit-файл:

sudo nano /etc/systemd/system/bf2142.service
[Unit]
Description=Battlefield 2142 Dedicated Server
After=network.target

[Service]
Type=simple
User=bf2142
Group=bf2142
WorkingDirectory=/home/bf2142/bf2142_server
ExecStart=/home/bf2142/bf2142_server/bf2142_lnxded +maplist file "bf2142/maplist.txt" +server.port 16567 +maxPlayers 64 +noGUI +dedicated 1 +password ""
Restart=on-failure
RestartSec=5
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

Активируем:

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

Шаг 6: Сеть и брандмауэр

Alt Linux p10+ использует firewalld.

sudo firewall-cmd --permanent --add-port=16567/udp
sudo firewall-cmd --permanent --add-port=16568/tcp
sudo firewall-cmd --reload

Проверка:

sudo firewall-cmd --list-ports

Если сервер за роутером: настройте проброс портов 16567/UDP и 16568/TCP на внешний интерфейс.


Шаг 7: Отладка и типичные ошибки

Ошибка Решение
error while loading shared libraries: libstdc++.so.6 sudo apt install libstdc++6-i586
bind failed: Address already in use Проверьте ss -ulnp | grep 16567, завершите конфликтующий процесс или смените порт в serversettings.con
Segmentation fault Запустите с +debug, проверьте права на папку logs/ и наличие всех i586 библиотек через ldd
Игроки не видят сервер в списке Ванильный список серверов отключён. Используйте патчи сообщества (см. ниже) или подключайтесь по IP: connect <IP>:16567
RCON не отвечает Убедитесь, что sv.rconPort совпадает с открытым портом, пароль без пробелов, firewalld разрешает 16568/tcp

Адаптация под современные клиенты

Поскольку EA-мастер-серверы отключены, ванильный сервер будет виден только при прямом подключении.

Для работы с современными патчами:

1. BF2142 Revive / Project 2142 / BFHub
  • Скопируйте патч-файлы (.pak, .con) в ~/bf2142_server/bf2142/mods/<имя_мода>/
  • Добавьте параметр запуска +modpath mods/<имя_мода>
  • Убедитесь, что версия сервера совпадает с версией клиента
2. Пример запуска с модом:
   ./bf2142_lnxded +modpath mods/revive +maplist file "bf2142/maplist.txt" +server.port 16567 +maxPlayers 64 +noGUI +dedicated 1
3. Обновление мастер-листа
  • Некоторые патчи используют собственные мастер-серверы. Укажите их в serversettings.con или в конфиге мода (следуйте инструкции конкретного патча).

Рекомендации по безопасности

  • Запускайте сервер от отдельного пользователя (bf2142)
  • Используйте сложные пароли для RCON
  • Регулярно бэкапьте bf2142/, logs/, serversettings.con
  • Ограничьте доступ к 16568/tcp только вашим IP через firewalld rich rules
  • Отключите sv.punkbuster 0 (PunkBuster не работает на современных ОС)
  • Мониторинг: journalctl -u bf2142 -f или tail -f logs/server.log

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

# Проверка статуса
systemctl status bf2142

# Перезапуск
systemctl restart bf2142

# Просмотр логов в реальном времени
journalctl -u bf2142 -f

# Подключение по RCON (утилита bfrcon или telnet)
telnet 127.0.0.1 16568
# login <user> <pass>
# help

Заключение

Вы успешно развернули выделенный сервер Battlefield 2142 на Alt Linux. Благодаря нативному bf2142_lnxded сервер работает стабильно без Wine, потребляет минимум ресурсов и легко управляется через systemd. Для игры с друзьями или сообществом не забудьте применить совместимый патч и настроить прямой коннект по IP.

Официальные ресурсы сообщества:

  • BF2142 Revive: bf2142revive.com
  • Project 2142: project2142.net`
  • BFHub: bfhub.com

Удачной игры в 2142!