Перенос GTA-сервера на другой хостинг без потери файлов и аккаунтов
Перенос GTA-сервера на другой хостинг должен сохранить серверные файлы, игровой мод, ресурсы, плагины, конфигурацию и базу данных с аккаунтами игроков. Простого копирования папки недостаточно, если персонажи, транспорт, имущество и организации хранятся в MySQL или MariaDB.
В этой инструкции рассмотрен перенос серверов CRMP, SA-MP, open.mp, FiveM и других GTA-платформ между Linux VPS, Windows VPS и игровыми хостингами. Вы узнаете, как подготовить новый сервер, перенести файлы, экспортировать базу, изменить конфигурацию, проверить запуск и переключить игроков с минимальным временем недоступности.
Названия каталогов, служб, серверных процессов, баз данных и портов в примерах необходимо заменить на используемые в вашем проекте. Перед началом миграции обязательно создайте отдельную резервную копию, которая не будет изменяться во время переноса.
Защита файлов и аккаунтов перед переносом:
Настройка базы на новом сервере:
Выбор новой площадки:
Что необходимо перенести на новый хостинг
Состав файлов зависит от платформы, игрового режима и способа запуска сервера.
Классический сервер CRMP, SA-MP или open.mp
- серверное ядро;
- папка
gamemodes; - файлы AMX и PWN;
- папка
filterscripts; - папка
plugins; - папка
scriptfiles; - папка
pawnoи include-файлы; server.cfg;- пользовательские карты и объекты;
- локальные игровые данные;
- необходимые системные библиотеки.
Сервер GTA 5
- серверное ядро;
- папка ресурсов;
- серверные скрипты;
- конфигурация запуска;
- веб-интерфейсы;
- карты и модели;
- файлы зависимостей;
- конфигурация голосового сервера;
- данные административной панели;
- ключи и переменные окружения.
База данных
- структура таблиц;
- аккаунты игроков;
- персонажи;
- транспорт;
- дома и бизнесы;
- организации;
- инвентарь;
- наказания;
- триггеры;
- процедуры и события, если используются.
Системная конфигурация
- служба systemd;
- задача Планировщика Windows;
- правила firewall;
- Docker Compose;
- конфигурация Nginx или Apache;
- SSL-сертификаты;
- скрипты резервного копирования;
- настройки автоматического перезапуска.
Основные риски при переносе GTA-сервера
Потеря последних данных игроков
Если база была скопирована до остановки старого сервера, все изменения после создания дампа останутся только на старом хостинге.
Расхождение двух серверов
Если игроки продолжают заходить на старый сервер после запуска нового, базы и локальные файлы начинают развиваться независимо.
Несовместимость системы
- Windows-плагины DLL не запускаются на Linux;
- Linux-плагины SO не запускаются на Windows;
- различаются архитектуры процессора;
- не установлены нужные библиотеки;
- версия базы не поддерживает SQL-схему;
- изменился регистр имён файлов;
- используются абсолютные пути.
Неправильные права файлов
После распаковки на Linux серверный пользователь может не иметь доступа к конфигурации, журналам, ресурсам или исполняемому файлу.
Изменение IP-адреса
- игроки используют старый адрес;
- домен указывает на старый VPS;
- база разрешает подключение только со старого IP;
- внешние API ограничены старым адресом;
- firewall содержит старые правила;
- лицензионные или служебные ключи требуют проверки.
Неполная передача файлов
Передача может оборваться, пропустить скрытые файлы или создать архив без базы данных. Поэтому после копирования необходимо сравнить размер, количество файлов и контрольные суммы.
План безопасного переноса GTA-сервера
Подготовительный этап
- Выберите новый хостинг.
- Проверьте совместимость операционной системы.
- Подготовьте базу данных и системные библиотеки.
- Создайте резервную копию старого сервера.
- Выполните предварительное копирование крупных файлов.
- Настройте новый сервер без публичного запуска.
Финальный этап
- Предупредите игроков о технических работах.
- Закройте вход на старый сервер.
- Выполните штатное сохранение.
- Корректно остановите серверный процесс.
- Создайте финальный дамп базы.
- Повторно синхронизируйте изменившиеся файлы.
- Импортируйте финальную базу.
- Запустите новый сервер в закрытом режиме.
- Проверьте аккаунты и сохранение.
- Переключите домен и игроков.
Старый сервер не удаляйте сразу
Оставьте его выключенным и сохраните файлы до завершения проверки нового хостинга.
Как сократить время недоступности сервера
Большую часть файлов можно передать заранее, пока старый сервер продолжает работать.
Первичная синхронизация
- серверное ядро;
- ресурсы;
- плагины;
- карты;
- веб-интерфейсы;
- редко изменяющиеся файлы;
- предварительная копия базы для теста.
Во время технических работ передаются только
- финальный SQL-дамп;
- изменившиеся конфигурации;
- локальные файлы сохранений;
- последние скрипты;
- недавние загруженные ресурсы;
- необходимые журналы.
Схема переноса с минимальным простоем
1. Предварительное копирование файлов
2. Тестовый импорт базы
3. Настройка нового сервера
4. Остановка старого сервера
5. Финальный дамп базы
6. Финальная синхронизация файлов
7. Импорт дампа
8. Проверка
9. Открытие нового сервера
Не пытайтесь полностью исключить остановку без необходимости
Миграция без простоя требует репликации базы, контроля записи и продуманного переключения трафика. Для обычного GTA-проекта короткое техническое обслуживание безопаснее, чем сложная схема с риском расхождения данных.
Инвентаризация старого GTA-сервера
Перед переносом запишите текущую конфигурацию проекта.
Операционная система Linux
cat /etc/os-release
uname -m
Операционная система Windows
Get-ComputerInfo |
Select-Object `
WindowsProductName,
WindowsVersion,
OsArchitecture
Версия MySQL
mysql --version
Версия MariaDB
mariadb --version
Размер серверной папки Linux
du -sh /opt/gta-server
Количество файлов Linux
find /opt/gta-server \
-type f |
wc -l
Размер серверной папки Windows
$Files = Get-ChildItem `
"C:\GTA-Server" `
-Recurse `
-File
$Files.Count
$Files |
Measure-Object `
-Property Length `
-Sum
Запишите отдельно
- игровой порт;
- имя базы;
- имя пользователя базы;
- способ запуска сервера;
- путь к рабочей папке;
- версии плагинов;
- список системных библиотек;
- доменные имена;
- внешние API;
- правила firewall.
Сохраните конфигурацию systemd
systemctl cat gta-server.service \
> gta-server-service.txt
Сохраните сведения о задаче Windows
Export-ScheduledTask `
-TaskName "GTA Server" |
Out-File `
"C:\GTA-Backup\gta-server-task.xml" `
-Encoding utf8
Проверка совместимости нового хостинга
Сравните операционные системы
Старый сервер: Linux x86_64
Новый сервер: Linux x86_64
Перенос между одинаковыми системами обычно проще.
При переносе с Windows на Linux
- замените DLL-плагины на версии SO;
- проверьте регистр имён файлов;
- замените пути вида
C:\GTA-Server; - настройте права исполнения;
- проверьте формат строк скриптов;
- измените способ автоматического запуска.
При переносе с Linux на Windows
- замените SO-плагины на DLL;
- установите Visual C++ Redistributable;
- измените пути в конфигурации;
- создайте правила Windows Firewall;
- настройте Планировщик заданий или службу;
- проверьте имена исполняемых файлов.
Сравните версии базы
Особенно внимательно проверяйте перенос:
- между разными основными версиями MySQL;
- с MySQL на MariaDB;
- с MariaDB на MySQL;
- между разными кодировками;
- при использовании процедур и событий;
- при наличии специфических SQL-функций.
Проверьте ресурсы VPS
- количество vCPU;
- скорость одного ядра;
- объём RAM;
- свободное место;
- тип диска;
- скорость сети;
- наличие публичного IPv4;
- защиту игрового трафика.
Подготовка нового сервера к переносу
На Linux обновите систему
sudo apt update
sudo apt upgrade -y
Создайте серверного пользователя
sudo adduser \
--disabled-password \
--gecos "" \
gta
Создайте рабочую папку
sudo mkdir -p /opt/gta-server
sudo chown gta:gta /opt/gta-server
Установите инструменты передачи
sudo apt install \
rsync \
tar \
gzip \
openssh-client \
unzip \
-y
Установите базу данных
Для MySQL:
sudo apt install mysql-server -y
Для MariaDB:
sudo apt install \
mariadb-server \
mariadb-client \
-y
На Windows подготовьте
- рабочую папку;
- MySQL или MariaDB;
- Visual C++ Redistributable;
- OpenSSH Client при необходимости;
- правила Windows Firewall;
- задачу автоматического запуска;
- папку журналов и резервных копий.
Не запускайте публичный сервер сразу
Сначала установите временный пароль или ограничьте подключение firewall, чтобы игроки не вошли в непроверенную копию.
Создание резервной копии перед переносом
Копия должна включать
- полный архив файлов;
- отдельный SQL-дамп;
- конфигурацию запуска;
- список версий;
- настройки базы;
- инструкцию восстановления;
- контрольные суммы.
Архив файлов Linux
sudo tar \
-czf /root/gta-server-before-migration.tar.gz \
-C /opt \
gta-server
Архив файлов Windows
tar.exe `
-czf "D:\GTA-Backup\gta-server-before-migration.tar.gz" `
-C "C:\" `
GTA-Server
Проверка Linux-архива
tar \
-tzf /root/gta-server-before-migration.tar.gz \
> /dev/null
Проверка Windows-архива
tar.exe `
-tzf "D:\GTA-Backup\gta-server-before-migration.tar.gz"
Не перезаписывайте резервную копию
Рабочий архив миграции и аварийная резервная копия должны быть разными файлами. Ошибка передачи не должна повредить единственный сохранённый экземпляр.
Контрольные суммы переносимых архивов
Linux
sha256sum \
/root/gta-server-before-migration.tar.gz \
> /root/gta-server-before-migration.tar.gz.sha256
Windows
Get-FileHash `
"D:\GTA-Backup\gta-server-before-migration.tar.gz" `
-Algorithm SHA256 |
Format-List
Проверка на новом Linux-сервере
sha256sum \
-c gta-server-before-migration.tar.gz.sha256
Для чего нужна контрольная сумма
- обнаружение оборванной передачи;
- обнаружение повреждения архива;
- подтверждение совпадения файлов;
- проверка перед распаковкой;
- контроль внешнего хранилища.
Совпадение суммы не проверяет содержимое логически
Контрольная сумма подтверждает, что файл не изменился после её создания. Отдельно проверьте структуру архива и возможность импорта базы.
Перенос GTA-сервера с Linux на Linux
Основные варианты передачи:
- rsync через SSH;
- архив tar.gz через SCP;
- SFTP;
- внешнее объектное хранилище;
- панель миграции хостинга.
Преимущество rsync
Повторный запуск передаёт преимущественно новые и изменившиеся файлы. Это удобно для предварительной и финальной синхронизации.
Преимущество архива
Один файл проще проверить контрольной суммой, перенести через панель и сохранить как аварийную копию.
Перед подключением проверьте SSH
ssh root@NEW_SERVER_IP
Не передавайте пароль в командной строке
Для повторных синхронизаций используйте SSH-ключ и защитите закрытый ключ от постороннего доступа.
Перенос файлов через rsync
Предварительная синхронизация
sudo rsync \
-a \
--info=progress2 \
--partial \
--exclude='logs/*.log' \
--exclude='cache/*' \
--exclude='backups/*' \
/opt/gta-server/ \
root@NEW_SERVER_IP:/opt/gta-server/
Значение завершающего слеша
/opt/gta-server/
передаёт содержимое каталога в папку назначения.
Проверьте копию на новом сервере
du -sh /opt/gta-server
find /opt/gta-server \
-type f |
wc -l
Финальная синхронизация
После остановки старого сервера повторите ту же команду. rsync передаст файлы, изменившиеся после первого копирования.
Не используйте --delete на первой синхронизации
Параметр удаления может стереть файлы в каталоге назначения. Он допустим только после проверки путей и наличия отдельной резервной копии.
Синхронизация отдельной конфигурации
rsync \
-av \
/etc/systemd/system/gta-server.service \
root@NEW_SERVER_IP:/root/migration-config/
После передачи службы
Проверьте пути и пользователя запуска перед копированием файла в системный каталог нового VPS.
Перенос Linux-сервера архивом через SCP
Создайте архив
sudo tar \
-czf /root/gta-server-migration.tar.gz \
-C /opt \
gta-server
Создайте контрольную сумму
cd /root
sha256sum \
gta-server-migration.tar.gz \
> gta-server-migration.tar.gz.sha256
Передайте оба файла
scp \
/root/gta-server-migration.tar.gz \
/root/gta-server-migration.tar.gz.sha256 \
root@NEW_SERVER_IP:/root/
Проверьте сумму на новом VPS
cd /root
sha256sum \
-c gta-server-migration.tar.gz.sha256
Распакуйте во временную папку
sudo mkdir -p /srv/gta-migration-test
sudo tar \
-xzf /root/gta-server-migration.tar.gz \
-C /srv/gta-migration-test
Проверьте структуру
find /srv/gta-migration-test \
-maxdepth 3 \
-type f | head -n 100
Перенесите в рабочую папку
sudo rsync \
-a \
/srv/gta-migration-test/gta-server/ \
/opt/gta-server/
Не распаковывайте сразу поверх рабочей версии
Временный каталог позволяет проверить структуру и избежать лишнего уровня вложенности:
/opt/gta-server/gta-server/gta-server/
Перенос GTA-сервера с Windows на Windows
Варианты передачи
- архив через SCP;
- SFTP через WinSCP;
- Robocopy через сетевую папку;
- облачное хранилище;
- дополнительный диск;
- панель хостинг-провайдера.
Сначала остановите серверную задачу
Stop-ScheduledTask `
-TaskName "GTA Server"
Проверьте процесс
Get-Process | Where-Object { $_.ProcessName -match "samp|omp|FXServer|altv|server" }
Сохраните конфигурацию задачи
Export-ScheduledTask `
-TaskName "GTA Server" | Out-File `
"D:\GTA-Backup\gta-server-task.xml" `
-Encoding utf8
После переноса
- измените рабочую папку задачи;
- проверьте путь к EXE;
- проверьте учётную запись запуска;
- пересоздайте правила firewall;
- установите системные библиотеки;
- проверьте права папки.
Копирование GTA-сервера через Robocopy
Команда подходит, если новый Windows-сервер доступен как сетевой каталог.
Предварительное копирование
robocopy `
"C:\GTA-Server" `
"\\NEW-SERVER\GTA-Server" `
/E `
/COPY:DAT `
/DCOPY:DAT `
/R:2 `
/W:3 `
/MT:8 `
/XD `
"C:\GTA-Server\cache" `
"C:\GTA-Server\backups" `
/XF `
"*.log" `
/LOG:"C:\GTA-Backup\migration.log"
Параметры
-
/E— копирование вложенных каталогов; -
/COPY:DAT— данные, атрибуты и время; -
/DCOPY:DAT— данные и время каталогов; -
/R:2— две повторные попытки; -
/W:3— ожидание три секунды; -
/MT:8— многопоточное копирование; -
/LOG— сохранение журнала.
Проверка кода завершения
$Code = $LASTEXITCODE if ($Code -ge 8) { Write-Error "Robocopy завершился с ошибкой: $Code" }
Не используйте /MIR без проверки
Зеркальный режим может удалить в каталоге назначения файлы, отсутствующие в источнике.
Финальная синхронизация
После остановки старого сервера повторите команду и проверьте журнал передачи.
Перенос Windows-сервера единым архивом
Создайте архив
tar.exe `
-czf "D:\GTA-Backup\gta-server-migration.tar.gz" `
-C "C:\" `
GTA-Server
Проверьте содержимое
tar.exe `
-tzf "D:\GTA-Backup\gta-server-migration.tar.gz"
Создайте контрольную сумму
Get-FileHash `
"D:\GTA-Backup\gta-server-migration.tar.gz" `
-Algorithm SHA256 | Out-File `
"D:\GTA-Backup\gta-server-migration.sha256.txt"
Передача через SCP
scp.exe `
"D:\GTA-Backup\gta-server-migration.tar.gz" `
Administrator@NEW_SERVER_IP:"D:/Migration/"
Распаковка на новом Windows VPS
New-Item `
-ItemType Directory `
-Path "D:\Migration\Test" `
-Force
tar.exe `
-xzf "D:\Migration\gta-server-migration.tar.gz" `
-C "D:\Migration\Test"
Проверьте вложенность папок
D:\Migration\Test\GTA-Server\
Только после проверки скопируйте содержимое в рабочий каталог.
Перенос GTA-сервера между Windows и Linux
Межплатформенный перенос требует не только копирования файлов, но и замены несовместимых компонентов.
Windows-плагины
plugins\mysql.dll plugins\streamer.dll plugins\sscanf.dll
Linux-плагины
plugins/mysql.so plugins/streamer.so plugins/sscanf.so
Проверьте конфигурацию плагинов
Строка для Windows и Linux может отличаться в зависимости от серверного ядра и его правил загрузки.
Регистр букв
Windows обычно не различает:
RolePlay.amx roleplay.amx
Linux может считать их разными файлами. Проверьте точное совпадение:
- имени игрового режима;
- имён ресурсов;
- путей к конфигурации;
- имён include-файлов;
- регистра букв в импортах;
- имён папок.
Преобразование окончания строк
sudo apt install dos2unix -y
dos2unix start-server.sh
Разрешение запуска Linux-скрипта
chmod +x start-server.sh
Абсолютные пути необходимо заменить
Windows: C:\GTA-Server\resources Linux: /opt/gta-server/resources
Не переносите исполняемые файлы между системами автоматически
Установите серверное ядро и плагины, предназначенные для целевой операционной системы, а затем перенесите совместимые ресурсы, скрипты и конфигурацию.
Перенос базы MySQL на новый сервер
Предварительный тестовый дамп
mysqldump \
-u root \
-p \
--single-transaction \
--routines \
--triggers \
--events \
--databases gta_server | gzip \
> gta_server_test.sql.gz
Проверьте архив
gzip -t gta_server_test.sql.gz
Передайте его на новый сервер
scp \
gta_server_test.sql.gz \
root@NEW_SERVER_IP:/root/
Зачем нужен предварительный дамп
- проверить совместимость базы;
- измерить время импорта;
- найти ошибки SQL;
- настроить пользователя;
- проверить игровой сервер до технических работ.
Предварительный дамп нельзя использовать как финальный
Пока старый сервер работает, база продолжает изменяться. Перед переключением необходимо создать новый дамп после остановки игрового процесса.
Перенос базы MariaDB
Создание дампа
mariadb-dump \
-u root \
-p \
--single-transaction \
--routines \
--triggers \
--events \
--databases gta_server | gzip \
> gta_server_test.sql.gz
Проверка
gzip -t gta_server_test.sql.gz
Передача
scp \
gta_server_test.sql.gz \
root@NEW_SERVER_IP:/root/
Используйте клиент MariaDB для импорта
gunzip -c gta_server_test.sql.gz | mariadb -u root -p
Проверьте совместимость версий
Импортируйте базу заранее в тестовом режиме и проверьте:
- таблицы;
- представления;
- триггеры;
- процедуры;
- события;
- кодировки;
- регистрацию игрока;
- сохранение персонажа.
Создание финального дампа без потери аккаунтов
Финальный дамп создаётся только после остановки старого GTA-сервера.
Порядок действий
- Закройте новые подключения.
- Предупредите игроков.
- Выполните штатное сохранение.
- Корректно остановите GTA-сервер.
- Убедитесь, что процесс завершён.
- Создайте финальный SQL-дамп.
- Не запускайте старый сервер повторно.
Остановка Linux-службы
sudo systemctl stop gta-server.service
sudo systemctl is-active gta-server.service
Проверка процесса
pgrep -af \
'samp|omp|FXServer|altv|gta-server'
Остановка задачи Windows
Stop-ScheduledTask `
-TaskName "GTA Server"
Финальный дамп MySQL
mysqldump \
-u root \
-p \
--single-transaction \
--routines \
--triggers \
--events \
--databases gta_server | gzip \
> gta_server_final.sql.gz
Финальный дамп MariaDB
mariadb-dump \
-u root \
-p \
--single-transaction \
--routines \
--triggers \
--events \
--databases gta_server | gzip \
> gta_server_final.sql.gz
Проверьте файл
test -s gta_server_final.sql.gz
gzip -t gta_server_final.sql.gz
Создайте контрольную сумму
sha256sum \
gta_server_final.sql.gz \
> gta_server_final.sql.gz.sha256
Передайте дамп и сумму
scp \
gta_server_final.sql.gz \
gta_server_final.sql.gz.sha256 \
root@NEW_SERVER_IP:/root/
Импорт базы на новом хостинге
Проверьте контрольную сумму
cd /root
sha256sum \
-c gta_server_final.sql.gz.sha256
Импорт MySQL
gunzip -c gta_server_final.sql.gz | mysql -u root -p
Импорт MariaDB
gunzip -c gta_server_final.sql.gz | mariadb -u root -p
Если дамп создан без --databases
Сначала создайте базу:
CREATE DATABASE gta_server CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Затем импортируйте:
gunzip -c gta_server_final.sql.gz | mysql \
-u root \
-p \
gta_server
Не импортируйте финальный дамп поверх старой тестовой базы
Безопаснее удалить тестовую базу и создать её заново либо использовать отдельное имя. Иначе могут сохраниться таблицы и столбцы, отсутствующие в финальном дампе.
После импорта
SHOW DATABASES;
USE gta_server;
SHOW TABLES;
Создание пользователя базы на новом сервере
Пользователи MySQL или MariaDB могут не входить в дамп базы проекта. Создайте отдельную учётную запись приложения.
Локальный пользователь
CREATE USER 'gta_app'@'localhost' IDENTIFIED BY 'ЗАМЕНИТЕ_НА_СЛОЖНЫЙ_ПАРОЛЬ';
Назначение прав
GRANT ALL PRIVILEGES ON gta_server.* TO 'gta_app'@'localhost';
Для подключения через 127.0.0.1
В зависимости от конфигурации базы может потребоваться пользователь для соответствующего Host:
CREATE USER 'gta_app'@'127.0.0.1' IDENTIFIED BY 'ЗАМЕНИТЕ_НА_СЛОЖНЫЙ_ПАРОЛЬ';
GRANT ALL PRIVILEGES ON gta_server.* TO 'gta_app'@'127.0.0.1';
Удалённая база
CREATE USER 'gta_app'@'IP_НОВОГО_GTA_СЕРВЕРА' IDENTIFIED BY 'ЗАМЕНИТЕ_НА_СЛОЖНЫЙ_ПАРОЛЬ';
Проверьте права
SHOW GRANTS FOR 'gta_app'@'localhost';
Проверьте вход вручную
mysql \
-u gta_app \
-p \
-h 127.0.0.1 \
-P 3306 \
gta_server
Не подключайте GTA-сервер под root
Приложению нужны права только на базу игрового проекта, а не административный доступ ко всему серверу баз данных.
Проверка таблиц и аккаунтов после импорта
Количество таблиц
SELECT COUNT(*) AS table_count FROM information_schema.tables WHERE table_schema = 'gta_server';
Проверьте основные таблицы
SELECT COUNT(*) FROM accounts;
SELECT COUNT(*) FROM vehicles;
SELECT COUNT(*) FROM houses;
SELECT COUNT(*) FROM businesses;
Названия замените на фактические.
Сравните со старым сервером
Старый сервер: accounts = 18420 vehicles = 9367 houses = 1250 Новый сервер: accounts = 18420 vehicles = 9367 houses = 1250
Проверьте последние записи
SELECT * FROM accounts ORDER BY id DESC LIMIT 10;
Проверьте структуру
DESCRIBE accounts;
Не ограничивайтесь количеством строк
Дополнительно проверьте:
- кодировку имён игроков;
- состояние последнего аккаунта;
- владельцев транспорта;
- деньги и имущество;
- администраторов;
- бан-лист;
- таблицы организаций;
- триггеры и события.
Изменение конфигурации GTA-сервера после переноса
Параметры базы
host = 127.0.0.1
port = 3306
database = gta_server
user = gta_app
password = НОВЫЙ_ПАРОЛЬ
Проверьте игровой порт
port 7777
FiveM endpoint
endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"
Проверьте абсолютные пути
/home/old-user/gta-server/ /opt/gta-server/ C:\OldServer\ D:\GTA-Server\
Проверьте внешние адреса
- IP базы данных;
- адрес сайта;
- адрес API;
- голосовой сервер;
- вебхуки;
- административная панель;
- сервер загрузки ресурсов;
- службы мониторинга.
Проверьте секреты
- пароль базы;
- RCON-пароль;
- API-ключи;
- лицензионные ключи;
- токены вебхуков;
- SSH-ключи;
- пароли панелей.
Не публикуйте конфигурацию с секретами
Перед отправкой логов или файлов в поддержку удалите пароли, ключи и токены.
Перенос плагинов и системных зависимостей
На Linux проверьте библиотеки файла
ldd /opt/gta-server/server
Проверка плагина
ldd /opt/gta-server/plugins/mysql.so
Сообщение not found
libexample.so => not found
означает отсутствие необходимой библиотеки.
На Windows проверьте
- Visual C++ Redistributable x86;
- Visual C++ Redistributable x64;
- разрядность серверного EXE;
- разрядность DLL-плагинов;
- наличие вспомогательных библиотек;
- разблокировку загруженных файлов.
Признаки проблемы плагина
-
Plugin Failed; -
Run time error 19; -
File or function is not found; - сервер закрывается сразу после запуска;
- не подключается база;
- не загружается игровой мод.
Не обновляйте все плагины во время миграции
Сначала добейтесь запуска прежней версии на новом хостинге. Обновления выполняйте отдельно после успешного переноса.
Настройка прав файлов после переноса на Linux
Назначьте владельца
sudo chown -R gta:gta /opt/gta-server
Разрешите запуск серверного файла
sudo chmod +x /opt/gta-server/server
Разрешите запуск скрипта
sudo chmod +x /opt/gta-server/start-server.sh
Ограничьте конфигурацию с паролями
sudo chmod 600 \
/opt/gta-server/config/database.ini
Каталоги журналов должны быть доступны для записи
sudo mkdir -p /opt/gta-server/logs
sudo chown gta:gta \
/opt/gta-server/logs
Не запускайте весь сервер под root
Повышенные права могут понадобиться для настройки системы, но обычный игровой процесс должен работать от отдельного ограниченного пользователя.
Проверьте доступ от имени сервера
sudo -u gta \
test -r /opt/gta-server/server.cfg sudo -u gta \
test -w /opt/gta-server/logs
Настройка портов и firewall на новом сервере
Классический сервер
7777/UDP
FiveM в типовой конфигурации
30120/TCP
30120/UDP
UFW для UDP 7777
sudo ufw allow 7777/udp
UFW для FiveM
sudo ufw allow 30120/tcp
sudo ufw allow 30120/udp
Windows Firewall для UDP
New-NetFirewallRule `
-DisplayName "GTA Server UDP 7777" `
-Direction Inbound `
-Protocol UDP `
-LocalPort 7777 `
-Action Allow `
-Profile Any
Windows Firewall для FiveM
New-NetFirewallRule `
-DisplayName "FiveM TCP 30120" `
-Direction Inbound `
-Protocol TCP `
-LocalPort 30120 `
-Action Allow `
-Profile Any
New-NetFirewallRule `
-DisplayName "FiveM UDP 30120" `
-Direction Inbound `
-Protocol UDP `
-LocalPort 30120 `
-Action Allow `
-Profile Any
Проверьте внешний firewall VPS
- правило создано;
- выбран правильный протокол;
- указан правильный порт;
- правило привязано к новому VPS;
- нет блокирующего правила;
- используется правильный публичный IP.
Перенос домена и DNS на новый IP
Если игроки подключаются по домену
Измените A-запись:
server.example.com A NEW_SERVER_IP
Перед миграцией
Заранее уменьшите TTL DNS-записи, чтобы после смены IP старый адрес не сохранялся в кэше слишком долго.
После переключения проверьте
nslookup server.example.com
На Linux:
dig +short server.example.com
DNS может обновляться не одновременно
Часть игроков некоторое время может получать старый адрес из кэша. Поэтому старый сервер лучше оставить выключенным или показывать на нём сообщение о переезде.
Если используется прокси или CDN
Обычный веб-прокси не обязательно поддерживает игровой TCP- или UDP-трафик. Проверьте, что DNS-запись направляет игроков на реальный игровой endpoint.
Обновите дополнительные записи
- панель администратора;
- сайт загрузки ресурсов;
- голосовой сервер;
- API;
- мониторинг;
- вебхуки;
- почтовые уведомления.
Закрытый запуск GTA-сервера на новом хостинге
Ограничьте доступ одним IP
Пример UFW:
sudo ufw allow \
from IP_АДМИНИСТРАТОРА \
to any port 7777 \
proto udp
Либо установите временный пароль
Используйте механизм, поддерживаемый вашей серверной платформой.
Запустите сервер вручную
cd /opt/gta-server
./server
Не создавайте автозагрузку до успешного теста
Первый запуск должен показывать ошибки непосредственно в консоли.
Проверьте журнал
tail -n 100 \
/opt/gta-server/server_log.txt
Проверьте процесс
ps aux | grep -E 'samp|omp|FXServer|altv|gta' | grep -v grep
Проверьте порт
sudo ss -lntup | grep -E ':7777|:30120'
Проверьте подключение к базе
- нет Access denied;
- нет Unknown database;
- нет Table doesn't exist;
- нет Unknown column;
- соединение не обрывается;
- аккаунты загружаются.
Сравнение старого и нового сервера
Сравните размер файлов
Старый VPS:
du -sh /opt/gta-server
Новый VPS:
du -sh /opt/gta-server
Сравните количество файлов
find /opt/gta-server \
-type f | wc -l
Создайте список контрольных сумм
cd /opt/gta-server find . \
-type f \
-print0 | sort -z | xargs -0 sha256sum \
> /root/gta-files.sha256
Не сравнивайте изменяемые журналы
Файлы журналов, кэша и временных данных закономерно отличаются после запуска.
Сравните базу
- количество таблиц;
- число аккаунтов;
- число транспорта;
- число домов;
- последний ID игрока;
- последние записи журналов;
- кодировки;
- права пользователя базы.
Сравните конфигурацию
- порт;
- название сервера;
- игровой мод;
- список плагинов;
- параметры базы;
- внешние API;
- пути;
- автоматический запуск.
Переключение игроков на новый сервер
Перед открытием
- Убедитесь, что старый сервер остановлен.
- Проверьте финальный импорт базы.
- Выполните тестовый вход администратора.
- Проверьте загрузку имущества.
- Проверьте сохранение после выхода.
- Проверьте игровой порт извне.
- Обновите домен и мониторинги.
После открытия
- следите за журналом подключения;
- контролируйте ошибки базы;
- проверяйте нагрузку CPU;
- проверяйте память;
- контролируйте диск;
- проверяйте сетевой трафик;
- собирайте сообщения игроков.
Не удаляйте старый адрес сразу
Опубликуйте новый IP и оставьте понятное сообщение о переносе в социальных сетях, на сайте и в лаунчере проекта.
Создайте новую резервную копию
После успешного открытия сохраните рабочее состояние уже на новом хостинге.
Контроль GTA-сервера после переноса
Linux
top
free -h
df -h
sudo ss -s
Состояние службы
sudo systemctl status gta-server.service
Журнал службы
sudo journalctl \
-u gta-server.service \
-f
MySQL или MariaDB
SHOW FULL PROCESSLIST;
SHOW STATUS LIKE 'Threads_connected';
Проверьте в первые часы
- регистрацию новых игроков;
- вход существующих аккаунтов;
- сохранение денег;
- загрузку транспорта;
- работу организаций;
- работу веб-панели;
- голосовой чат;
- автоматический перезапуск;
- резервное копирование.
Проверьте после перезагрузки VPS
- запустилась база;
- запустился GTA-сервер;
- применились правила firewall;
- сохранился IP;
- работает домен;
- создаются журналы.
Как откатиться на старый хостинг при ошибке
План отката готовится до начала технических работ.
Откат возможен без потери данных, если
- новый сервер ещё не был открыт игрокам;
- на новой базе не появилось важных изменений;
- старый сервер сохранён в остановленном состоянии;
- финальный дамп и файлы не повреждены.
Если игроки уже играли на новом сервере
Нельзя просто включить старую базу — изменения, созданные на новом хостинге, будут потеряны.
Порядок обратного переноса
- Остановите новый GTA-сервер.
- Создайте дамп новой базы.
- Синхронизируйте изменившиеся файлы.
- Передайте данные на старый VPS.
- Импортируйте актуальную базу.
- Проверьте конфигурацию.
- Запустите старый сервер в закрытом режиме.
- Только после проверки верните игроков.
Не используйте две рабочие базы попеременно
Всегда должна существовать одна актуальная база, содержащая последние изменения игроков.
Сохраните неудачную новую установку
Журналы и конфигурация помогут найти причину ошибки без повторения всей миграции с нуля.
Распространённые ошибки при переносе GTA-сервера
Файлы перенесены, но аккаунтов нет
База данных не была экспортирована или сервер подключился к пустой базе.
Аккаунты есть, но отсутствует последнее имущество
Использован предварительный, а не финальный дамп после остановки старого сервера.
Сервер подключается к старой базе
- не изменён host;
- используется старый конфигурационный файл;
- переменная окружения содержит старый IP;
- запущена другая рабочая папка;
- автозагрузка ссылается на старую конфигурацию.
Access denied for user
- пользователь не создан;
- неверный пароль;
- не совпадает Host;
- нет прав на базу;
- подключение приходит с нового IP;
- используется другая система аутентификации.
Unknown database
База не создана, импорт выполнен под другим именем или конфигурация содержит ошибку.
Table doesn't exist
- дамп импортирован частично;
- выбрана неправильная база;
- не совпадает регистр таблицы;
- игровой мод относится к другой версии;
- импорт завершился ошибкой.
Plugin Failed после перехода на Linux
На новый сервер скопированы Windows DLL вместо Linux SO либо отсутствуют системные зависимости.
Permission denied на Linux
- файл не имеет права исполнения;
- неверный владелец;
- серверный пользователь не читает конфигурацию;
- нет права записи журналов;
- архив распакован под другим пользователем.
Сервер работает локально, но игроки не подключаются
- не открыт порт;
- неправильный протокол;
- внешний firewall VPS блокирует трафик;
- домен указывает на старый IP;
- сервер слушает localhost;
- используется другой порт.
После запуска часть ресурсов отсутствует
- передача оборвалась;
- архив имеет неправильную структуру;
- пропущены скрытые файлы;
- не перенесены зависимости;
- регистр имён отличается;
- конфигурация содержит старые пути.
Русский текст повреждён
- изменилась кодировка базы;
- используется другое сопоставление;
- соединение не устанавливает нужную кодировку;
- файл конфигурации сохранён в другом формате;
- SQL импортирован несовместимым клиентом.
Домен продолжает открывать старый сервер
- DNS-кэш ещё не обновился;
- A-запись не изменена;
- редактировалась другая DNS-зона;
- используется локальный hosts-файл;
- лаунчер хранит IP в конфигурации;
- мониторинг использует старый адрес.
Новый сервер работает медленнее
- слабее производительность одного ядра;
- медленный диск;
- не хватает RAM;
- база и сервер конкурируют за ресурсы;
- не настроены системные лимиты;
- изменилась версия базы;
- отсутствуют индексы после неполного импорта;
- используется удалённая база с высокой задержкой.
Контрольный список переноса GTA-сервера
До переноса
- выбран совместимый хостинг;
- проверена операционная система;
- записаны версии компонентов;
- известен размер файлов и базы;
- создан аварийный архив;
- создан предварительный дамп;
- подготовлен план отката;
- игроки предупреждены.
Новый сервер
- система обновлена;
- создан серверный пользователь;
- установлена база;
- установлены библиотеки;
- создана рабочая папка;
- настроен firewall;
- есть публичный IP;
- публичный вход пока закрыт.
Файлы
- выполнена предварительная синхронизация;
- серверное ядро перенесено;
- игровой мод перенесён;
- ресурсы перенесены;
- плагины совместимы с системой;
- конфигурация перенесена;
- пути обновлены;
- права файлов настроены;
- контрольные суммы проверены.
База данных
- старый сервер остановлен;
- создан финальный дамп;
- дамп имеет ненулевой размер;
- архив проверен;
- база импортирована;
- пользователь создан;
- права назначены;
- число аккаунтов совпадает;
- последние записи присутствуют.
Запуск
- сервер запускается вручную;
- игровой мод загружается;
- плагины работают;
- база подключается;
- порт прослушивается;
- администратор входит;
- аккаунт загружается;
- изменения сохраняются;
- сервер перезапускается корректно.
Переключение
- старый сервер остаётся выключенным;
- домен направлен на новый IP;
- лаунчер обновлён;
- мониторинги обновлены;
- игрокам опубликован новый адрес;
- создана новая резервная копия;
- старый VPS пока не удалён.
Частые вопросы о переносе GTA-сервера
Достаточно ли скопировать папку сервера?
Нет, если аккаунты и имущество хранятся в MySQL или MariaDB. Базу необходимо отдельно экспортировать и импортировать.
Как перенести сервер без потери аккаунтов?
Остановите старый GTA-сервер, создайте финальный дамп базы и не запускайте старую версию после этого. Импортируйте именно финальный дамп.
Можно ли копировать файлы, пока сервер работает?
Большую часть файлов можно передать заранее. После остановки выполните финальную синхронизацию изменившихся данных.
Нужно ли останавливать MySQL при переносе?
Для логического дампа через mysqldump или mariadb-dump обычно не требуется. Остановить необходимо игровой сервер, чтобы после дампа он не создавал новые данные.
Можно ли запустить два сервера с одной базой?
Без специально разработанной архитектуры нежелательно. Два экземпляра могут одновременно изменять одни и те же данные.
Как сократить время технических работ?
Заранее перенесите ресурсы и выполните тестовый импорт. Во время остановки передавайте только финальный дамп и последние изменения файлов.
Что лучше для Linux: SCP или rsync?
SCP удобен для передачи единого архива, а rsync — для повторной синхронизации изменившихся файлов.
Можно ли перенести сервер с Windows на Linux?
Да, но необходимо заменить DLL-плагины на SO-версии, изменить пути, права файлов и способ запуска.
Можно ли перенести сервер с Linux на Windows?
Да. Потребуются Windows-версии ядра и плагинов, системные библиотеки, Windows Firewall и новый механизм автозапуска.
Почему после переноса не загружается MySQL-плагин?
Проверьте архитектуру, операционную систему, зависимости, имя файла и соответствие версии include игровому моду.
Почему база импортировалась, но сервер её не видит?
Проверьте host, имя базы, пользователя, пароль, права, порт и фактически используемый конфигурационный файл.
Нужно ли переносить пользователей MySQL?
Дамп одной игровой базы обычно не переносит всех системных пользователей. Безопаснее создать отдельного пользователя заново и назначить необходимые права.
Нужно ли менять пароль базы?
Это рекомендуется, особенно если к старому хостингу имели доступ другие люди или конфигурация могла быть раскрыта.
Почему после импорта отсутствуют последние игроки?
Использован старый предварительный дамп, созданный до финальной остановки сервера.
Можно ли изменить MySQL на MariaDB во время переноса?
Можно только после тестирования совместимости. Безопаснее сначала перенести проект на аналогичную систему базы, а замену выполнить отдельно.
Нужно ли менять игровой порт?
Нет, если выбранный порт свободен и разрешён новым хостингом. Но правила firewall необходимо создать заново.
Что делать с доменом?
Измените A-запись на новый публичный IP и проверьте обновление DNS. Заранее уменьшенный TTL ускоряет переключение.
Можно ли сразу удалить старый VPS?
Нет. Сохраните его выключенным до завершения проверки нового сервера и создания новой резервной копии.
Как проверить целостность файлов?
Сравните размер, количество файлов и SHA-256. Исключите из сравнения журналы и кэш, изменившиеся после запуска.
Как проверить аккаунты?
Сравните количество строк в основных таблицах, последние ID и несколько реальных аккаунтов. Затем выполните тестовый вход и сохранение.
Что делать, если новый сервер не запускается?
Не открывайте старый сервер для игроков автоматически. Изучите журналы, проверьте плагины, права, базу, порты и системные зависимости.
Как выполнить откат после открытия нового сервера?
Остановите новый сервер, создайте актуальный дамп и перенесите его обратно. Включение старой базы без новых изменений приведёт к потере прогресса игроков.
Нужно ли создавать резервную копию после миграции?
Да. После успешного запуска сохраните новое рабочее состояние файлов и базы уже на новом хостинге.
Итог
Безопасный перенос GTA-сервера состоит из предварительного копирования файлов, финальной остановки старого процесса, создания актуального SQL-дампа и закрытой проверки нового хостинга. Аккаунты и имущество игроков сохраняются только в том случае, если на новый сервер импортирована последняя версия базы.
Для Linux удобно использовать rsync и SCP, а на Windows — Robocopy, tar и OpenSSH. При переносе между разными операционными системами необходимо заменить несовместимые плагины, пути и способы автоматического запуска.
После импорта базы сравните количество аккаунтов и других важных записей, проверьте вход игрока, изменение данных и повторное подключение. Затем настройте firewall, обновите домен и откройте сервер пользователям.
Старый VPS не удаляйте сразу. Оставьте его выключенным как временную точку отката, а после успешной миграции создайте новую полную резервную копию файлов и базы данных.
Комментарии к инструкции
Обсудите решение, задайте вопрос или дополните инструкцию