Хостинг для MTA:SA — установка, порты, FTP и перенос сервера
Правильно выбранный хостинг определяет стабильность, задержку соединения и возможности развития сервера MTA:SA. Для небольшого тестового проекта может быть достаточно игрового хостинга с готовой панелью, а крупной Role Play сборке обычно требуется VPS или выделенный сервер с быстрым процессором, SSD-накопителем, MySQL и полным доступом к файлам.
В руководстве рассмотрены выбор типа хостинга, требования к оборудованию, установка серверных файлов MTA:SA на Windows и Linux, настройка портов, работа через FTP и SFTP, запуск ресурсов, автоматический старт сервера и перенос готовой сборки между хостингами.
Установка MTA Server на локальный компьютер или VPS:
Настройка основного конфигурационного файла:
Виды хостинга для сервера MTA:SA
Сервер MTA:SA можно разместить на игровом хостинге, виртуальном сервере, выделенной машине или собственном компьютере. Каждый вариант отличается ценой, удобством и уровнем контроля.
| Вариант | Преимущества | Недостатки |
|---|---|---|
| Игровой хостинг | Готовая панель, автоматическая установка, выделенные порты, FTP и поддержка. | Ограниченный доступ к системе, модулям и настройкам. |
| VPS или VDS | Полный доступ, собственная MySQL, системные службы и гибкая настройка. | Нужно самостоятельно обслуживать операционную систему. |
| Выделенный сервер | Все ресурсы процессора и памяти принадлежат одному владельцу. | Высокая стоимость и необходимость администрирования. |
| Домашний компьютер | Нет ежемесячной аренды и полный контроль. | Нестабильный интернет, динамический IP, шум, электричество и отсутствие защиты. |
Игровой хостинг с панелью управления
Игровой хостинг подходит владельцу, который не хочет самостоятельно устанавливать Linux, настраивать системные службы и сетевой экран.
Обычно панель предоставляет
- запуск, остановку и перезапуск сервера;
- доступ к консоли MTA;
- файловый менеджер;
- FTP-реквизиты;
- выбор количества слотов;
- создание базы MySQL;
- автоматические резервные копии;
- планировщик перезапусков;
- графики CPU и памяти;
- смену игрового и HTTP-порта.
Когда игровой хостинг удобнее VPS
- сервер только создаётся;
- нет опыта работы с Linux;
- не используются сторонние системные программы;
- не нужны собственные сетевые правила;
- сборка помещается в ограничения панели;
- поддержка хостинга знакома с MTA:SA.
Возможные ограничения
- запрет собственных DLL- и SO-модулей;
- ограниченный размер диска;
- лимит CPU;
- нельзя изменить системные библиотеки;
- нет доступа к SSH;
- MySQL находится на отдельном адресе;
- фиксированные порты;
- невозможно установить собственный Nginx;
- ограничено количество резервных копий.
VPS или VDS для MTA:SA
VPS предоставляет виртуальную операционную систему с административным доступом. Владелец самостоятельно устанавливает MTA Server, MySQL, сетевой экран и дополнительные программы.
Преимущества VPS
- полный доступ к серверным файлам;
- собственная база MySQL или MariaDB;
- доступ по SSH и SFTP;
- возможность установить Nginx;
- автоматический запуск MTA после перезагрузки;
- собственные резервные сценарии;
- контроль системных журналов;
- возможность разместить несколько тестовых серверов.
Недостатки
- обновления системы выполняет владелец;
- ошибочная настройка сетевого экрана может закрыть доступ;
- нужно контролировать свободное место;
- потребуется настройка MySQL;
- необходимо защищать SSH;
- на дешёвом VPS процессор может быть перегружен соседями.
Какую систему выбрать
Для постоянного сервера обычно выбирают актуальную стабильную версию Debian или Ubuntu Server. Windows VPS удобнее начинающим пользователям, но обычно требует больше оперативной памяти и работы через удалённый рабочий стол.
Выделенный сервер
Выделенная машина подходит крупному проекту, нескольким игровым серверам или высокому онлайну, когда виртуальные ресурсы уже становятся ограничением.
Преимущества
- процессор не делится с другими клиентами VPS;
- больше оперативной памяти;
- высокая скорость локальной базы данных;
- можно разделить рабочий и тестовый серверы;
- полный контроль сети и дисков;
- удобно хранить локальные резервные копии.
Когда выделенная машина преждевременна
- сервер ещё не запущен;
- онлайн не превышает нескольких десятков игроков;
- сборка не оптимизирована;
- не измерена реальная нагрузка;
- нет человека, способного обслуживать систему.
Покупка более мощного сервера не исправит тяжёлый Lua-цикл, утечку памяти или медленный SQL-запрос.
Запуск MTA Server на домашнем компьютере
Домашний компьютер подходит для разработки и закрытого тестирования. Для постоянного публичного проекта он обычно менее удобен.
Основные проблемы
- динамический или серый IP;
- невозможность перенаправления портов у провайдера;
- отключения электричества;
- перезагрузка маршрутизатора;
- низкая исходящая скорость;
- отсутствие DDoS-защиты;
- необходимость постоянно держать компьютер включённым;
- раскрытие домашнего IP-адреса.
Для разработки сервер можно запустить локально, а после завершения настройки перенести на игровой хостинг или VPS.
Требования к хостингу MTA:SA
Точная нагрузка зависит от Lua-кода, количества ресурсов, транспорта, объектов, базы данных и активности игроков. Следующие значения являются ориентиром, а не гарантией.
| Тип проекта | Процессор | Оперативная память | Диск |
|---|---|---|---|
| Разработка и закрытый тест | 1–2 виртуальных ядра | 2 ГБ | 20–30 ГБ SSD |
| Небольшой сервер | 2 быстрых ядра | 4 ГБ | 30–50 ГБ SSD или NVMe |
| Средний RP-проект | 3–4 быстрых ядра | 6–8 ГБ | 50–100 ГБ NVMe |
| Крупный проект | Выделенные быстрые ядра | 8–16 ГБ и больше | NVMe с запасом для базы и копий |
Дополнительные требования
- публичный IPv4-адрес;
- возможность открыть UDP- и TCP-порты;
- доступ к MySQL;
- защита от сетевых атак;
- неограниченный или достаточный трафик;
- резервное копирование;
- доступ к консоли;
- стабильная сеть без частых потерь пакетов.
Как выбрать процессор
Для MTA важна не только сумма виртуальных ядер, но и скорость каждого ядра. Один тяжёлый Lua-ресурс может создавать задержку даже при низкой общей загрузке многопроцессорной системы.
Перед покупкой уточните
- модель процессора;
- частоту и поколение;
- являются ли ядра выделенными;
- есть ли ограничение постоянной нагрузки;
- сколько клиентов размещено на узле;
- можно ли перейти на более мощный тариф без переноса IP.
Признаки перегруженного VPS
- нагрузка меняется в зависимости от времени суток;
- сервер тормозит при низком онлайне;
- одинаковый тест показывает разные результаты;
- процесс MTA не использует много CPU, но команды задерживаются;
- диск периодически отвечает очень медленно.
Оперативная память и накопитель
Память используют
- процесс MTA Server;
- Lua-ресурсы и кэши;
- MySQL или MariaDB;
- операционная система;
- Nginx и другие службы;
- файловый кэш;
- панель управления.
Не выбирайте тариф без запаса. Когда оперативная память заканчивается, система может активно использовать swap или завершить процесс.
Для диска предпочтительно
- SSD или NVMe;
- достаточный запас для логов;
- место для SQL-дампов;
- место для нескольких версий сборки;
- возможность создавать снимки VPS.
Что быстро занимает место
db.logпри включённомdebugdb 2;- журналы Lua;
- SQL-дампы;
- архивы старых ресурсов;
- крупные модели и текстуры;
- резервные копии панели.
Расположение дата-центра и сеть
Дата-центр желательно выбирать ближе к основной аудитории. Игроки из разных стран всё равно получат разный ping, поэтому ориентируйтесь на регион, из которого приходит большая часть пользователей.
Перед оплатой проверьте
- тестовый IP хостинга;
- ping из нужных стран;
- стабильность маршрута;
- потери пакетов;
- скорость загрузки клиентских файлов;
- ограничение месячного трафика;
- скорость сетевого порта;
- доступность IPv4.
Низкий ping не гарантирует стабильность
Лучше стабильные 50–70 миллисекунд без потерь, чем 20 миллисекунд с периодическими обрывами и перегрузкой сети.
Защита от DDoS-атак
Публичный игровой сервер раскрывает IP и порты, поэтому защита сети является важным критерием выбора хостинга.
Уточните у провайдера
- включена ли защита в стоимость;
- защищается ли UDP-трафик;
- есть ли профиль для игровых серверов;
- что происходит при атаке;
- может ли адрес быть временно заблокирован;
- существует ли ограничение защищаемого трафика;
- доступна ли смена IP.
Что проверить перед оплатой хостинга
- поддерживается ли MTA:SA;
- выдаётся ли публичный IPv4;
- можно ли открыть нужные UDP- и TCP-порты;
- есть ли FTP или SFTP;
- предоставляется ли SSH;
- разрешены ли собственные ресурсы;
- разрешены ли DLL- и SO-модули;
- есть ли MySQL и phpMyAdmin;
- можно ли импортировать большой SQL-файл;
- какой объём диска доступен;
- включены ли резервные копии;
- можно ли скачать копию на компьютер;
- есть ли защита UDP;
- как быстро отвечает поддержка;
- можно ли изменить тариф без потери файлов и IP.
Подготовка к установке сервера
Для нового проекта потребуется
- актуальная стабильная версия MTA Server;
- официальные базовые ресурсы;
- готовая сборка или собственные Lua-ресурсы;
- файл
mtaserver.conf; - файл
acl.xml; - SQL-файл, если используется MySQL;
- доступ к панели, FTP или SSH;
- выделенные порты;
- резервная копия исходной сборки.
Для переноса существующего сервера сохраните
- всю папку
resources; mtaserver.conf;acl.xml;banlist.xml;internal.db;registry.db;server-id.keys;- SQL-дамп;
- модули;
- планировщики и файлы запуска.
Установка через панель игрового хостинга
Названия разделов различаются, но общий порядок обычно одинаков.
- Создайте игровой сервер MTA:SA.
- Выберите стабильную версию серверного ядра.
- Дождитесь установки файлов.
- Откройте файловый менеджер.
- Найдите каталог
mods/deathmatch. - Скачайте резервную копию стандартной конфигурации.
- Загрузите ресурсы в папку
resources. - Настройте
mtaserver.conf. - Создайте базу MySQL при необходимости.
- Запустите сервер через панель.
- Проверьте консоль и ошибки.
Не удаляйте сразу стандартные файлы
Сначала убедитесь, что загруженная сборка работает на выданной версии MTA и не требует отсутствующего модуля.
Установка MTA Server на Windows VPS
- Подключитесь к VPS через удалённый рабочий стол.
- Установите обновления Windows.
- Создайте отдельную папку сервера.
- Скачайте официальный установщик MTA.
- Выберите установку серверного компонента.
- Установите официальные ресурсы.
- Откройте
mods/deathmatch/mtaserver.conf. - Настройте имя, порты и слоты.
- Разрешите процесс в сетевом экране.
- Запустите MTA Server.
Пример пути
C:\MTA-Server\
├── MTA Server.exe
├── mods\
│ └── deathmatch\
│ ├── mtaserver.conf
│ ├── acl.xml
│ └── resources\
└── server-id.keys
Для рабочего проекта лучше не устанавливать сервер в папку, доступ к которой имеют все пользователи Windows.
Установка MTA Server на Linux VPS
Ниже приведён пример для 64-битного Debian или Ubuntu.
Обновление системы и установка инструментов
sudo apt update
sudo apt upgrade -y
sudo apt install wget tar unzip -y
Создание рабочей папки
mkdir -p /home/mtasa/server
cd /home/mtasa/server
Загрузка стабильной 64-битной версии
wget \
https://linux.multitheftauto.com/dl/multitheftauto_linux_x64.tar.gz
Распаковка
tar -xf multitheftauto_linux_x64.tar.gz
mv multitheftauto_linux_x64/* .
rmdir multitheftauto_linux_x64
rm multitheftauto_linux_x64.tar.gz
Загрузка стандартной конфигурации
wget \
https://linux.multitheftauto.com/dl/baseconfig.tar.gz
tar -xf baseconfig.tar.gz
mv baseconfig/* mods/deathmatch/
rm -rf baseconfig baseconfig.tar.gz
Установка официальных ресурсов
mkdir -p mods/deathmatch/resources
cd mods/deathmatch/resources
wget \
https://mirror.multitheftauto.com/mtasa/resources/mtasa-resources-latest.zip
unzip mtasa-resources-latest.zip
rm mtasa-resources-latest.zip
cd ../../..
Первый тест
chmod +x mta-server64
./mta-server64
Отдельный пользователь Linux для MTA
Не запускайте игровой сервер от имени root.
Создание пользователя
sudo adduser --disabled-password --gecos "" mtasa
Передача папки пользователю
sudo chown -R mtasa:mtasa /home/mtasa/server
Переход в его учётную запись
sudo -iu mtasa
cd /home/mtasa/server
Права на запуск
chmod +x mta-server64
Пользователь mtasa не должен иметь неограниченный доступ ко всей операционной системе.
Структура файлов MTA Server
server/
├── mta-server64
├── net.so
├── server-id.keys
└── mods/
└── deathmatch/
├── mtaserver.conf
├── acl.xml
├── banlist.xml
├── internal.db
├── registry.db
├── logs/
├── databases/
├── resource-cache/
└── resources/
Основные элементы
| Файл или папка | Назначение |
|---|---|
mtaserver.conf |
Главная конфигурация сервера. |
acl.xml |
Группы и права пользователей и ресурсов. |
resources |
Lua-ресурсы, карты и игровой режим. |
logs |
Серверные и отладочные журналы. |
internal.db |
Внутренние аккаунты MTA. |
registry.db |
Данные реестра ресурсов. |
server-id.keys |
Уникальный ключ сервера для приватных клиентских файлов. |
Первый запуск сервера
Windows
MTA Server.exe
Linux
cd /home/mtasa/server
./mta-server64
В консоли проверьте
- успешное открытие игрового порта;
- запуск встроенного HTTP-сервера;
- загрузку
acl.xml; - обнаружение ресурсов;
- ошибки библиотек;
- ошибки XML;
- подключение к MySQL;
- адрес и порт сервера.
Корректное выключение
shutdown Завершение первоначальной настройки
Не завершайте рабочий процесс принудительно, когда доступна штатная команда выключения.
Основная настройка сервера на хостинге
Откройте файл:
mods/deathmatch/mtaserver.conf
Минимальный пример
<servername>My MTA Role Play Server</servername>
<owner_email_address>owner@example.com</owner_email_address>
<serverip>auto</serverip>
<serverport>22003</serverport>
<maxplayers>32</maxplayers>
<httpserver>1</httpserver>
<httpport>22005</httpport>
<ase>1</ase>
<password></password>
<fpslimit>74</fpslimit>
Важные правила
serveripобычно оставляют со значениемauto;- игровой порт должен совпадать с выданным хостингом;
- HTTP-порт должен быть свободен;
- число слотов не должно превышать ограничение тарифа;
aseвключается для появления в списке серверов;- контактная почта владельца не публикуется игрокам;
- после изменения портов сервер необходимо перезапустить.
Какие порты нужны серверу MTA:SA
| Назначение | Стандартный порт | Протокол |
|---|---|---|
| Подключение игроков | 22003 |
UDP |
| HTTP и загрузка ресурсов | 22005 |
TCP |
| Публикация в списке серверов | 22126 |
UDP |
Порт списка серверов рассчитывается по формуле:
ASE-порт = игровой порт + 123
Пример нестандартного игрового порта
<serverport>22101</serverport>
Соответствующий ASE-порт:
22101 + 123 = 22224 UDP
Когда HTTP-порт не требуется открывать публично
- встроенный HTTP-сервер отключён;
- файлы полностью выдаёт внешний Nginx;
- webadmin не используется;
- хостинг самостоятельно проксирует загрузки.
Открытие портов MTA в Linux
Пример для UFW со стандартными портами:
sudo ufw allow 22003/udp
sudo ufw allow 22005/tcp
sudo ufw allow 22126/udp
Проверка правил
sudo ufw status numbered
Включение UFW
sudo ufw enable
Пример ограничения SSH своим IP
sudo ufw allow from ВАШ_IP to any port 22 proto tcp
Нестандартные порты
Когда в mtaserver.conf указан игровой порт 22101:
sudo ufw allow 22101/udp
sudo ufw allow 22005/tcp
sudo ufw allow 22224/udp
Проверка прослушиваемых портов
sudo ss -lntup
Открытие портов в Windows Firewall
Запустите PowerShell от имени администратора.
Игровой порт
New-NetFirewallRule `
-DisplayName "MTA Game UDP 22003" `
-Direction Inbound `
-Protocol UDP `
-LocalPort 22003 `
-Action Allow
HTTP-порт
New-NetFirewallRule `
-DisplayName "MTA HTTP TCP 22005" `
-Direction Inbound `
-Protocol TCP `
-LocalPort 22005 `
-Action Allow
ASE-порт
New-NetFirewallRule `
-DisplayName "MTA ASE UDP 22126" `
-Direction Inbound `
-Protocol UDP `
-LocalPort 22126 `
-Action Allow
Проверка созданных правил
Get-NetFirewallRule |
Where-Object DisplayName -Like "MTA*"
В панели облачного провайдера может существовать дополнительный сетевой экран. Порты должны быть разрешены и в Windows, и в панели провайдера.
Как проверить порты сервера
После запуска MTA выполните в серверной консоли:
openports
Проверяются
- игровой UDP-порт;
- HTTP TCP-порт;
- ASE UDP-порт.
Проверка HTTP через браузер
http://IP_СЕРВЕРА:22005/
Проверка TCP-порта с другого компьютера
Test-NetConnection IP_СЕРВЕРА -Port 22005
Если openports показывает закрытый порт
- проверьте протокол TCP или UDP;
- проверьте локальный сетевой экран;
- проверьте firewall панели VPS;
- проверьте, запущен ли MTA;
- проверьте значение в
mtaserver.conf; - убедитесь, что порт не занят другим сервером;
- уточните у провайдера, не блокируется ли UDP.
Как добавить сервер в общий список MTA
В конфигурации должно быть включено:
<ase>1</ase>
Также должен быть открыт дополнительный UDP-порт:
игровой порт + 123
Полезные параметры
<servername>Miami RP | MTA Server</servername>
<owner_email_address>owner@example.com</owner_email_address>
<rule
name="description"
value="Role Play сервер на русском языке"
/>
<rule
name="languages"
value="ru"
/>
<rule
name="tags"
value="roleplay,rp,russian"
/>
Если сервер не появляется
- проверьте
ase=1; - проверьте ASE-порт;
- оставьте
serveripсо значениемauto; - укажите действующую почту владельца;
- проверьте правила списка серверов;
- убедитесь, что сервер доступен извне;
- посмотрите ошибки в консоли.
FTP и SFTP-доступ к файлам MTA
FTP
Обычный FTP часто предоставляется игровыми хостингами. Реквизиты отображаются в панели:
- адрес сервера;
- порт;
- имя пользователя;
- пароль;
- корневая папка игрового сервера.
SFTP
На VPS предпочтительнее использовать SFTP. Он работает через SSH и шифрует авторизацию и передаваемые файлы.
Стандартные значения
| Тип | Обычный порт | Особенности |
|---|---|---|
| FTP | 21 | Используется панелями игровых хостингов. |
| FTPS | Зависит от конфигурации | FTP с TLS-шифрованием. |
| SFTP | 22 | Передача файлов через SSH. |
Подключение через FileZilla
Для игрового FTP
- Откройте «Менеджер сайтов».
- Создайте новый сайт.
- Выберите FTP или FTPS согласно панели.
- Укажите адрес хостинга.
- Укажите выданный порт.
- Выберите обычный тип входа.
- Введите логин и пароль.
- Подключитесь.
Для VPS через SFTP
Протокол: SFTP
Хост: IP_СЕРВЕРА
Порт: 22
Пользователь: mtasa
Пароль: пароль пользователя или SSH-ключ
Рабочая папка
/home/mtasa/server/
Папка ресурсов
/home/mtasa/server/mods/deathmatch/resources/
Что делать при ошибке доступа
- проверить владельца папки;
- проверить пользователя подключения;
- проверить права файлов;
- убедиться, что SSH разрешён сетевым экраном;
- проверить правильность порта;
- не подключаться как root без необходимости.
Загрузка ресурсов на хостинг
Каждый ресурс помещается в каталог:
mods/deathmatch/resources/
Правильная структура
resources/
└── vehicle_system/
├── meta.xml
├── server.lua
└── client.lua
Неправильная двойная вложенность
resources/
└── vehicle_system/
└── vehicle_system/
├── meta.xml
└── server.lua
После загрузки
refresh
info vehicle_system
start vehicle_system
После замены файлов существующего ресурса
restart vehicle_system
После изменения meta.xml
refreshall
Запуск и автозагрузка ресурсов
Основные команды
list
refresh
info resource_name
start resource_name
stop resource_name
restart resource_name
Автозапуск в mtaserver.conf
<resource
src="database"
startup="1"
protected="1"
/>
<resource
src="accounts"
startup="1"
protected="0"
/>
<resource
src="characters"
startup="1"
protected="0"
/>
<resource
src="roleplay"
startup="1"
protected="0"
/>
Рекомендуемый порядок
- подключение к базе;
- общие библиотеки;
- система аккаунтов;
- персонажи;
- инвентарь и имущество;
- транспорт;
- основной игровой режим;
- интерфейсы и дополнительные работы.
Настройка MySQL на хостинге
Игровой хостинг обычно выдаёт
- адрес базы;
- порт;
- имя базы;
- пользователя;
- пароль;
- ссылку на phpMyAdmin.
Пример параметров
Хост: mysql12.hosting.example
Порт: 3306
База: user123_mta
Пользователь: user123_mta
Пароль: СЛОЖНЫЙ_ПАРОЛЬ
Строка подключения MTA
local connection = dbConnect(
"mysql",
table.concat({
"dbname=user123_mta",
"host=mysql12.hosting.example",
"port=3306",
"charset=utf8mb4"
}, ";"),
"user123_mta",
"СЛОЖНЫЙ_ПАРОЛЬ",
"share=0;autoreconnect=1;batch=1"
)
Локальная база на VPS
host=127.0.0.1
port=3306
Основные ошибки
- используется
localhost, хотя база находится на другом сервере; - неверно указано имя базы;
- пользователь не имеет прав;
- IP MTA не разрешён;
- порт MySQL закрыт;
- SQL-файл не был импортирован;
- сборка ожидает другие названия таблиц.
Создание административного аккаунта
Создание аккаунта в консоли
addaccount ServerOwner СЛОЖНЫЙ_ПАРОЛЬ
Добавление в acl.xml
<group name="Admin">
<acl name="Moderator" />
<acl name="SuperModerator" />
<acl name="Admin" />
<acl name="RPC" />
<object name="resource.admin" />
<object name="user.ServerOwner" />
</group>
Перезагрузка ACL
reloadacl
Авторизация в игре
login ServerOwner СЛОЖНЫЙ_ПАРОЛЬ
Для панели администратора должен быть запущен ресурс admin.
Автоматический запуск MTA через systemd
Создайте службу:
sudo nano /etc/systemd/system/mtasa.service
Содержимое файла
[Unit]
Description=MTA San Andreas Server
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=mtasa
Group=mtasa
WorkingDirectory=/home/mtasa/server
ExecStart=/home/mtasa/server/mta-server64
Restart=on-failure
RestartSec=5
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
Применение
sudo systemctl daemon-reload
sudo systemctl enable mtasa
sudo systemctl start mtasa
Проверка состояния
sudo systemctl status mtasa
Просмотр журнала
sudo journalctl -u mtasa -n 100 --no-pager
Перезапуск
sudo systemctl restart mtasa
Остановка
sudo systemctl stop mtasa
Логи и контроль состояния сервера
Основные журналы
mods/deathmatch/logs/server.log
mods/deathmatch/logs/server_auth.log
mods/deathmatch/logs/scripts.log
mods/deathmatch/logs/db.log
Параметры mtaserver.conf
<logfile>logs/server.log</logfile>
<authfile>logs/server_auth.log</authfile>
<dbfile>logs/db.log</dbfile>
<scriptdebuglogfile>logs/scripts.log</scriptdebuglogfile>
<scriptdebugloglevel>2</scriptdebugloglevel>
На VPS проверяйте
free -h
df -h
top
sudo ss -lntup
Размер логов
du -sh /home/mtasa/server/mods/deathmatch/logs/
Что требует внимания
- повторяющиеся Lua-ошибки;
- аварийные остановки ресурсов;
- ошибки MySQL;
- неудачные административные входы;
- заполнение диска;
- постоянный рост памяти;
- частые перезапуски systemd;
- закрытие игрового порта.
Внешний HTTP-сервер для загрузки ресурсов
При большом количестве клиентских файлов можно использовать Nginx или CDN.
Параметр MTA
<httpdownloadurl>https://files.example.com/mta/</httpdownloadurl>
Каталог готовых клиентских файлов
mods/deathmatch/resource-cache/http-client-files/
Когда внешний HTTP полезен
- сервер содержит крупные модели;
- одновременно подключается много игроков;
- хостинг ограничивает встроенный HTTP;
- нужна отдельная сеть доставки файлов;
- игровой VPS имеет слабый сетевой канал.
После изменения ресурсов
- перезапустите изменённый ресурс;
- обновите каталог клиентских файлов;
- синхронизируйте его с Nginx или CDN;
- проверьте загрузку с чистого клиента;
- убедитесь в отсутствии старого кэша.
Как перенести сервер MTA:SA на другой хостинг
Перенос лучше проводить во время заранее объявленных технических работ.
Этап 1. Подготовьте новый сервер
- установите ту же стабильную версию MTA;
- откройте порты;
- установите MySQL или получите реквизиты базы;
- создайте пользователя операционной системы;
- проверьте запуск чистого сервера;
- подготовьте FTP или SFTP;
- не открывайте публичный доступ до завершения теста.
Этап 2. Создайте полную копию старого сервера
- остановите регистрацию новых аккаунтов;
- предупредите игроков;
- сохраните активные данные;
- корректно выключите сервер;
- заархивируйте серверные файлы;
- создайте финальный SQL-дамп;
- зафиксируйте старые IP и порты.
Архив на Linux
cd /home/mtasa
tar -czf \
mta-server-backup.tar.gz \
server/
Этап 3. Передайте архив
Через SFTP:
scp \
mta-server-backup.tar.gz \
mtasa@НОВЫЙ_IP:/home/mtasa/
Распаковка на новом VPS
cd /home/mtasa
tar -xzf mta-server-backup.tar.gz
sudo chown -R mtasa:mtasa /home/mtasa/server
Этап 4. Измените параметры окружения
- адрес MySQL;
- пользователя и пароль базы;
- игровой порт;
- HTTP-порт;
- внешний URL загрузок;
- пути в службе systemd;
- сетевой экран;
- адреса внешних API;
- разрешённые IP базы данных.
Перенос базы данных MySQL
Создание дампа
mysqldump \
--single-transaction \
--routines \
--triggers \
-h СТАРЫЙ_ХОСТ \
-u СТАРЫЙ_ПОЛЬЗОВАТЕЛЬ \
-p \
СТАРАЯ_БАЗА \
> mta_database.sql
Создание новой базы
CREATE DATABASE `mta_server`
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
Импорт
mysql \
-h НОВЫЙ_ХОСТ \
-u НОВЫЙ_ПОЛЬЗОВАТЕЛЬ \
-p \
mta_server \
< mta_database.sql
Проверка таблиц
USE `mta_server`;
SHOW TABLES;
Проверка количества аккаунтов
SELECT COUNT(*) FROM `accounts`;
После переноса обновите dbConnect
local connection = dbConnect(
"mysql",
"dbname=mta_server;host=127.0.0.1;port=3306;charset=utf8mb4",
"mta_user",
"НОВЫЙ_ПАРОЛЬ",
"share=0;autoreconnect=1;batch=1"
)
Проверка сервера после переноса
Сначала используйте временный пароль
<password>MigrationTest2026</password>
Проверьте
- запуск всех ресурсов;
- отсутствие Lua-ошибок;
- подключение MySQL;
- авторизацию существующего аккаунта;
- создание тестового персонажа;
- загрузку транспорта;
- дома и бизнесы;
- инвентарь;
- административные права;
- блокировки;
- загрузку клиентских файлов;
- игровой и HTTP-порты;
- появление в списке серверов;
- сохранение после выхода;
- автозапуск после перезагрузки VPS.
Тест перезагрузки
sudo reboot
После запуска системы:
sudo systemctl status mtasa
Открытие публичного доступа
После успешной проверки удалите временный пароль:
<password></password>
Затем сообщите игрокам новый IP и порт.
Сохранение server-id.keys при переносе
Файл:
server-id.keys
является уникальным ключом сервера и используется для приватных клиентских файлов.
При переносе
- скопируйте оригинальный файл;
- не публикуйте его;
- ограничьте доступ к резервной копии;
- не заменяйте ключом другого проекта;
- проверьте путь параметра
idfile.
Параметр конфигурации
<idfile>server-id.keys</idfile>
Потеря ключа может нарушить доступ к ранее созданным приватным файлам клиентов.
Перенос с игрового хостинга на VPS
Скачайте через FTP
- все доступные серверные файлы;
- ресурсы;
- конфигурацию;
- ACL;
- внутренние базы;
- логи при необходимости;
- модули;
- резервные архивы.
Экспортируйте MySQL
Используйте phpMyAdmin или раздел резервного копирования панели.
Уточните ограничения панели
Некоторые хостинги не дают доступ к серверному ядру или ключевым системным файлам. В таком случае запросите у поддержки полный архив.
На VPS
- установите чистое ядро MTA;
- загрузите свои файлы поверх соответствующих каталогов;
- восстановите базу;
- измените параметры подключения;
- настройте systemd;
- откройте порты;
- проведите закрытый тест.
Перенос с VPS на игровой хостинг
Сначала уточните
- совместима ли версия MTA;
- поддерживаются ли модули;
- какие порты назначены;
- какой адрес MySQL используется;
- каков максимальный размер SQL-импорта;
- есть ли доступ к
server-id.keys; - разрешена ли собственная конфигурация;
- можно ли загрузить архив целиком.
После загрузки
- замените старый IP базы;
- укажите порты панели;
- уберите Linux-пути из скриптов;
- проверьте регистр имён файлов;
- проверьте сторонние модули;
- пересоздайте планировщик перезапусков;
- обновите внешний HTTP-адрес.
Сборка, работавшая на Linux, может содержать пути и имена файлов, чувствительные к регистру. Панель другого хостинга также может использовать другую операционную систему.
Распространённые ошибки хостинга MTA
Игроки не могут подключиться
- закрыт игровой UDP-порт;
- сервер не запущен;
- указан неправильный IP;
- порт занят другим процессом;
- провайдер блокирует UDP;
- в панели указан другой порт;
- сервер слушает неправильный интерфейс.
Сервер не появляется в списке
aseвыключен;- закрыт порт
serverport + 123; - неверно настроен
serverip; - сервер недоступен извне;
- не указана почта владельца;
- нарушены правила списка серверов.
Игроки не скачивают ресурсы
- закрыт HTTP-порт;
httpserverвыключен;- неверный
httpdownloadurl; - внешний сервер возвращает 404;
- каталог кэша не синхронизирован;
- файл отсутствует в
meta.xml; - на диске закончилось место.
FTP подключается, но файлы нельзя изменить
- неверные права папки;
- файл принадлежит другому пользователю;
- серверная панель блокирует системный каталог;
- закончился доступный объём диска;
- используется неправильная корневая папка.
MTA прекращает работу после закрытия SSH
Сервер был запущен непосредственно в терминале. Используйте systemd, screen или tmux. Для рабочего проекта предпочтительнее системная служба.
MySQL работает через phpMyAdmin, но не из MTA
- phpMyAdmin использует другой хост;
- не разрешён IP игрового сервера;
- в Lua указан неправильный пользователь;
- перепутано имя базы;
- закрыт порт;
- неверный пароль.
Ресурс работает на Windows, но не работает на Linux
- не совпадает регистр букв;
- используется Windows DLL вместо Linux SO;
- в коде указан путь с обратными слешами;
- отсутствует системная библиотека;
- ресурс использует несовместимый модуль.
После переноса пропали аккаунты
- не скопирован
internal.db; - сервер подключился к пустой MySQL;
- используется другое имя базы;
- SQL-импорт завершился ошибкой;
- ресурс аккаунтов не запущен.
Безопасность хостинга MTA:SA
Основные меры
- используйте отдельного пользователя Linux;
- не запускайте MTA от root;
- используйте SFTP вместо обычного FTP на VPS;
- ограничьте SSH своим IP, когда это возможно;
- применяйте уникальные пароли;
- не используйте пароль MTA для панели хостинга;
- закройте MySQL от общего интернета;
- не добавляйте неизвестные ресурсы в Admin;
- не запускайте непроверенные DLL и SO;
- обновляйте операционную систему;
- проверяйте журнал авторизации;
- удаляйте доступ бывших разработчиков.
Не храните пароли
- в
client.lua; - в
shared.lua; - в публичном репозитории;
- в скриншотах панели;
- в открытом архиве сборки;
- в сообщениях общего чата.
Резервное копирование сервера на хостинге
Ежедневно желательно сохранять
- MySQL;
- изменяемые внутренние базы;
- конфигурацию;
- ACL;
- важные пользовательские данные.
Перед обновлением сохраняйте
- полную папку ресурса;
- SQL-дамп;
- старый
meta.xml; - изменяемые настройки;
- список версий;
- план отката.
Пример архива Linux
tar -czf \
/home/mtasa/backups/server-$(date +%F).tar.gz \
/home/mtasa/server
Пример SQL-дампа
mysqldump \
--single-transaction \
-u mta_user \
-p \
mta_server \
> /home/mtasa/backups/database-$(date +%F).sql
Копии должны находиться
- на рабочем сервере для быстрого отката;
- на другом VPS или облачном хранилище;
- на локальном компьютере владельца;
- в отдельной папке перед крупным обновлением.
Частые вопросы о хостинге MTA:SA
Что лучше: игровой хостинг или VPS?
Игровой хостинг проще в управлении. VPS предоставляет больше контроля, но требует самостоятельной настройки и защиты системы.
Сколько оперативной памяти нужно?
Для теста часто достаточно 2 ГБ. Рабочему RP-проекту обычно нужен больший запас для MTA, MySQL и операционной системы.
Что важнее: количество ядер или их скорость?
Нужен баланс, но быстрые ядра особенно важны для тяжёлых Lua-ресурсов. Большое число медленных виртуальных ядер не всегда помогает.
Можно ли разместить MTA на обычном веб-хостинге?
Нет. Обычный веб-хостинг не позволяет запускать постоянный игровой процесс и открывать необходимые UDP-порты.
Какой порт используется игроками?
Стандартный игровой порт — 22003 UDP, но хостинг может выдать другой.
Для чего нужен 22005?
Это стандартный TCP-порт встроенного HTTP-сервера, загрузки ресурсов и веб-интерфейсов.
Для чего нужен порт 22126?
При стандартном игровом порте это ASE-порт для публикации в списке серверов.
Как вычислить ASE-порт?
Прибавьте 123 к игровому порту.
Что указывать в serverip?
В большинстве случаев оставляйте auto.
Как проверить порты?
Запустите сервер и выполните команду openports.
Что выбрать на VPS: FTP или SFTP?
SFTP. Он работает через SSH и не требует отдельного FTP-сервера.
Куда загружать ресурсы?
В каталог mods/deathmatch/resources.
Как найти новый загруженный ресурс?
Выполните команду refresh.
Как запустить ресурс?
Используйте start название_ресурса.
Как добавить ресурс в автозапуск?
Добавьте его в mtaserver.conf с параметром startup="1".
Как автоматически запускать MTA после перезагрузки VPS?
На Linux создайте службу systemd, а на игровом хостинге используйте функцию автозапуска панели.
Нужно ли устанавливать MySQL на тот же VPS?
Не обязательно. База может находиться локально, на отдельном сервере или предоставляться игровым хостингом.
Нужно ли открывать MySQL-порт?
Для локальной базы — нет. Для удалённой разрешайте подключение только с IP MTA Server.
Почему сервер не появляется в браузере MTA?
Проверьте ase, дополнительный UDP-порт, serverip, контактную почту и доступность сервера.
Можно ли перенести сервер без смены IP?
Только если провайдер позволяет перенести или сохранить выделенный адрес. При смене хостинга обычно меняются IP и реквизиты MySQL.
Что обязательно перенести вместе с ресурсами?
Конфигурацию, ACL, внутренние базы, MySQL, модули и server-id.keys.
Почему после переноса не работают приватные файлы?
Возможно, не был перенесён оригинальный server-id.keys.
Как уменьшить время простоя при переносе?
Заранее подготовьте новый сервер, перенесите предварительную копию, а во время работ создайте только финальный дамп и синхронизируйте последние изменения.
Можно ли запускать старый и новый сервер одновременно?
Для закрытого теста — да. Не позволяйте двум рабочим серверам независимо изменять разные копии базы.
Как понять, что тариф слишком слабый?
Контролируйте CPU, память, диск, Lua timing, задержку MySQL и стабильность при реальном онлайне.
Нужно ли ежедневно перезапускать сервер?
Нет обязательного требования. Частый перезапуск не должен заменять исправление утечек памяти и тяжёлых ресурсов.
Официальная документация
Заключение
Для первого небольшого проекта удобен игровой хостинг с готовой панелью, FTP, консолью и MySQL. VPS предоставляет больше возможностей, но требует самостоятельной настройки Linux или Windows, сетевого экрана, автозапуска и резервного копирования.
При выборе тарифа обращайте внимание на производительность процессора, доступную память, NVMe-накопитель, расположение дата-центра, стабильность сети, публичный IPv4 и защиту UDP-трафика.
Для работы MTA необходимо открыть игровой UDP-порт, HTTP TCP-порт и дополнительный UDP-порт, равный игровому порту плюс 123. После запуска проверьте их командой openports.
На VPS используйте SFTP через отдельного системного пользователя. Ресурсы загружаются в mods/deathmatch/resources, обнаруживаются командой refresh и запускаются через start.
При переносе сохраните всю сборку, MySQL, ACL, внутренние базы и server-id.keys. Сначала протестируйте новый сервер под временным паролем и только после проверки открывайте его игрокам.
Установка серверной программы:
Настройка конфигурации:
Установка игровых ресурсов:
Администрирование сервера:
Комментарии к инструкции
Обсудите решение, задайте вопрос или дополните инструкцию