Подробный гайд: Выделенный сервер 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!