MAATRIX GAMES / Блог / Как поднять сервер MTA:SA: пошаговая инструкция

Как поднять сервер MTA:SA: пошаговая инструкция

MAATRIX GAMES

Если гуглил «как поднять сервер MTA» и половина результатов ведёт на Steam-гайды — забудь про них сразу: Multi Theft Auto: San Andreas в Steam не продаётся и не устанавливается, ни клиент, ни сервер. Это отдельный проект, который живёт своей жизнью с середины 2000-х и качается только с официального сайта. Разберём процесс с нуля: откуда брать серверные файлы, как настроить mtaserver.conf, где искать ресурсы для гейммода и как не потерять сервер после перезагрузки VPS.

Системные требования: что реально нужно под MTA:SA

MTA:SA — старый движок по меркам 2026 года, и сервер по факту работает как единый процесс, который считает физику машин, синхронизирует позиции игроков и гоняет Lua-скрипты ресурсов. Требовательность зависит не столько от числа слотов, сколько от того, сколько тяжёлых ресурсов (гейммодов, карт, кастомных скриптов) висит одновременно.

Минимум, с которого стоит стартовать — 1 ГБ RAM, это порог для голого сервера с парой лёгких ресурсов и небольшим числом слотов. Дальше по нагрузке:

СценарийRAMvCPUИгроков
Голый сервер, freeroam/race, минимум ресурсов1 ГБ1–2до 32
DayZ-style / RPG гейммод с базой данных2 ГБ232–64
Крупный RP-проект (MTA:Life-подобный) с MySQL и десятками скриптов3–4 ГБ2–464–100+

Это ориентир, а не результат бенчмарка — тяжёлые RP-гейммоды с активным использованием SQL-запросов и большим числом onClientRender-хуков в клиентских скриптах могут упереться в CPU раньше, чем в память, особенно при сотне одновременных игроков. Диск на SSD брать стоит хотя бы ради быстрой загрузки карт и ресурсов при рестарте, хотя сама MTA:SA места ест немного — база под сервер и стандартный набор карт занимает от силы пару гигабайт.

Скачивание сервера: только с официального сайта

Серверные файлы MTA:SA качаются с multitheftauto.com — раздел загрузок, вкладка Linux (есть и Windows-сборка, но на VPS для игровых серверов почти всегда берут Linux). Никакого Steam, никакого SteamCMD — просто архив с бинарником и стандартными ресурсами.

На Ubuntu/Debian процесс такой:

mkdir -p ~/mtaserver && cd ~/mtaserver
wget https://linux.multitheftauto.com/dl/multitheftauto_linux_x64.tar.gz
tar -xvzf multitheftauto_linux_x64.tar.gz

Точное имя архива и версия меняются с релизами — актуальную ссылку всегда бери со страницы загрузок официального сайта, не из старых форумных постов: URL прошлых версий периодически перестают работать после апдейтов. После распаковки в директории появится бинарник mta-server64 (или mta-server для 32-битной сборки — она тоже есть, но для новых VPS почти всегда нужна именно 64-битная) и папка mods/deathmatch со стандартными ресурсами и конфигами.

Если на сервере нет wget, ставится тривиально:

sudo apt update && sudo apt install -y wget tar

Поднять сервер MTA:SA за пару минут

Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.

Создать сервер

Базовая конфигурация: mtaserver.conf

Главный конфиг сервера — mods/deathmatch/mtaserver.conf, это обычный XML-файл, который читается при каждом старте. Открываем:

nano mods/deathmatch/mtaserver.conf

Ключевые параметры, которые правишь в первую очередь:

<servername>Мой первый MTA сервер</servername>
<serverip></serverip>
<serverport>22003</serverport>
<serverport_udp>22126</serverport_udp>
<httpport>22005</httpport>
<maxplayers>32</maxplayers>
<httpdownloadurl></httpdownloadurl>
<adminpassword>смени_меня_на_сложный_пароль</adminpassword>

serverport — основной игровой порт, по умолчанию 22003 (UDP), его же используют для входящих подключений клиентов. httpport — HTTP-порт для веб-браузера ресурсов и загрузки карт/скриптов клиентам, по умолчанию 22005, обычно равен serverport + 2. Оставлять их дефолтными нормально, если на машине один сервер; если поднимаешь несколько MTA-серверов на одном VPS, каждому нужен свой набор портов без пересечений.

Секция <resources> в конце файла перечисляет ресурсы, которые стартуют автоматически — сюда добавляются гейммод и карты, о чём ниже. Пустой <serverip> — это нормально, сервер сам забиндится на все доступные интерфейсы; указывать конкретный IP имеет смысл только если на машине несколько сетевых адресов и нужно явно выбрать один.

Ресурсы: гейммод, карты и где их брать

MTA:SA — это фреймворк поверх GTA: San Andreas, и без ресурсов сервер запустится, но играть будет не во что — движок сам по себе не содержит игровой логики, только сетевой слой и API. Вся логика — в ресурсах, папках со скриптами на Lua внутри mods/deathmatch/resources/.

В стандартной поставке уже лежит набор дефолтных ресурсов: admin (админ-панель), webadmin, race, freeroam и несколько базовых карт. Если нужен конкретный гейммод (DayZ-подобный выживач, RP-сборка вроде MTA:Life, DD-race), его обычно берут с community.multitheftauto.com — там каталог ресурсов с открытым исходным кодом от сообщества — либо с GitHub-репозиториев конкретных проектов.

Скачанный ресурс кладётся папкой в mods/deathmatch/resources/:

cd mods/deathmatch/resources
git clone https://github.com/имя-автора/имя-ресурса.git

или просто распаковывается архивом, если ресурс не в git. Дальше ресурс нужно прописать в mtaserver.conf:

<resource src="freeroam" startup="1" protected="0" />
<resource src="имя-ресурса" startup="1" protected="0" />

startup="1" запускает ресурс автоматически при старте сервера, без этого его придётся включать вручную через консоль командой start имя-ресурса после каждого рестарта. У части ресурсов (особенно крупных RP-сборок) есть зависимости — свои требования к другим ресурсам или к MySQL-модулю, — они обычно описаны в meta.xml самого ресурса или в README проекта на GitHub; если сервер пишет ошибку про недостающую зависимость при старте ресурса, смотри именно туда.

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

Из директории с распакованным архивом:

cd ~/mtaserver
./mta-server64

Если всё собралось правильно, в консоли пойдёт лог загрузки ресурсов и в конце появится строка о том, что сервер слушает игровой порт. Тут же в консоли можно вводить команды администрирования — start, stop, restart имя-ресурса, shutdown.

Частые причины падения при первом запуске:

  • Failed to bind port — порт уже занят другим процессом или предыдущий инстанс сервера не завершился корректно; проверь ss -tulnp | grep 22003.
  • Ошибка в mtaserver.conf — обычно не закрытый XML-тег или опечатка в имени параметра; сервер честно пишет номер строки, где споткнулся парсер.
  • Ресурс не стартует — смотри лог именно этого ресурса в консоли, чаще всего не хватает зависимости или в meta.xml указан несуществующий скрипт.

Для постоянной работы без открытого терминала есть встроенный скрипт mta-server64 с флагом фонового запуска, но надёжнее и предсказуемее — через systemd, о чём в следующем разделе.

Порты и firewall

Набор портов, которые нужно открыть на VPS:

ПортПротоколНазначение
22003UDPосновной игровой порт
22126UDPASE/статистика сервера (запросы списка серверов)
22005TCPHTTP-порт ресурсов (загрузка карт/скриптов клиентам)

На VPS с белым IP это настройка firewall самой машины, а не NAT-проброса на роутере:

sudo ufw allow 22003/udp
sudo ufw allow 22126/udp
sudo ufw allow 22005/tcp
sudo ufw reload

Если менял порты в mtaserver.conf — открывай именно те значения, которые прописал там, а не дефолтные из таблицы. Для нескольких серверов на одной машине каждому нужен свой набор из трёх портов без пересечений с соседями; ставить два сервера на один и тот же serverport нельзя — второй экземпляр просто не забиндится и упадёт с ошибкой из списка выше.

Проверить, что порт слушается:

ss -tulnp | grep 22003

Похожая логика с портами и firewall встречается почти в любом дедике — например, в гайде по Garry's Mod разбирается тот же принцип на Source-движке, если интересно сравнить подход.

Автозапуск через systemd

Ручной запуск из терминала неудобен тем, что при обрыве SSH-сессии или перезагрузке VPS сервер не поднимется сам. Заводим systemd-юнит:

sudo nano /etc/systemd/system/mta-server.service

Содержимое:

[Unit]
Description=MTA:SA Dedicated Server
After=network.target

[Service]
User=mta
WorkingDirectory=/home/mta/mtaserver
ExecStart=/home/mta/mtaserver/mta-server64
Restart=on-failure
RestartSec=10
LimitNOFILE=100000

[Install]
WantedBy=multi-user.target

Как и с любым дедиком, запускать сервер лучше от отдельного непривилегированного пользователя, а не от root — заводится он стандартно (sudo adduser mta), с правами на директорию ~/mtaserver. Регистрируем юнит и включаем автозапуск:

sudo systemctl daemon-reload
sudo systemctl enable --now mta-server.service
sudo systemctl status mta-server.service

Логи после этого удобнее смотреть через journalctl -u mta-server -f, а не гонять сервер в отдельном терминальном окне через screen/tmux, хотя для отладки конкретного ресурса тот же tmux с ручным запуском бывает удобнее — там видна интерактивная консоль с командами start/restart без лишних прыжков через systemctl restart. Restart=on-failure подхватит сервер при падении из-за глюка в стороннем ресурсе, но если проблема системная (например, битый mtaserver.conf), systemd будет честно пытаться перезапускать падающий процесс по кругу — тут быстрее сразу смотреть логи, чем ждать автовосстановления.

Общий подход к автозапуску, кстати, почти идентичен другим дедикам — то же самое разбирается в гайде по Rust-серверу, если нужен ещё один пример systemd-юнита для сравнения.

Поднять сервер MTA:SA за пару минут

Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.

Создать сервер

Частые вопросы

Почему сервер не устанавливается через Steam?

Потому что MTA:SA — независимый проект, не связанный со Steam-версией GTA: San Andreas. Серверные и клиентские файлы качаются исключительно с multitheftauto.com, никакого app id в Steam для него нет.

Нужна ли лицензионная копия GTA: San Andreas для запуска сервера?

Нет, для самого дедик-процесса лицензия не требуется — сервер оперирует только сетевой логикой и ресурсами. А вот игрокам для подключения клиентом нужна установленная база игры (лицензионная или нет — MTA это не проверяет на стороне сервера).

Как обновить сервер до новой версии MTA:SA?

Останавливаешь сервис (sudo systemctl stop mta-server), скачиваешь свежий архив с официального сайта, распаковываешь поверх (или в новую директорию, если хочешь подстраховаться), запускаешь снова. Ресурсы в mods/deathmatch/resources/ при этом не трогаются.

Можно ли сменить гейммод без переустановки сервера?

Да — просто добавляешь нужный ресурс в mods/deathmatch/resources/, прописываешь его в <resources> секции mtaserver.conf со startup="1" и рестартуешь сервер (или стартуешь ресурс из консоли командой start).

Сколько игроков реально тянет 1 ГБ RAM?

Зависит от ресурсов на сервере — на голом freeroam/race без тяжёлой RP-логики 1 ГБ спокойно держит десятки слотов, но с крупным RP-гейммодом и активной MySQL-базой упрёшься в память быстрее, чем ожидаешь, особенно на пике онлайна.