Сервер GTA на Linux — VPS, зависимости и автоперезапуск
Настройка сервера GTA на Linux или VPS начинается с подготовки операционной системы, отдельного пользователя, серверных файлов и сетевых портов. После ручного тестового запуска сервер можно оформить как службу systemd, чтобы он автоматически запускался вместе с VPS и восстанавливался после аварийного завершения.
Конкретное имя исполняемого файла, формат конфигурации и набор портов зависят от используемой платформы GTA. Это может быть классический сервер с игровым модом Pawn, современное серверное ядро или другая мультиплеерная платформа. Поэтому команды из руководства необходимо адаптировать под свою сборку.
В статье рассмотрены установка зависимостей Linux, загрузка серверных файлов через SFTP, настройка владельца и прав, ручной запуск из терминала, открытие портов, автоматический перезапуск, управление через systemd, просмотр журналов и удалённое обслуживание VPS.
Установка аналогичного сервера на Windows:
Выбор тарифа и подготовка VPS:
Защита сервера и панели управления:
Как работает сервер GTA на Linux
Серверная сборка запускается как отдельный процесс без графического интерфейса. Управление выполняется через SSH, консоль процесса, конфигурационные файлы, панель хостинга или службу systemd.
Обычно сборка содержит
- исполняемый Linux-файл сервера;
- основной игровой мод;
- серверные плагины или модули;
- конфигурационные файлы;
- каталоги игровых ресурсов;
- файлы базы данных или параметры подключения;
- журналы запуска и ошибок.
Основной порядок установки
- Заказать VPS с Linux.
- Подключиться к нему по SSH.
- Обновить систему.
- Создать отдельного пользователя.
- Загрузить серверные файлы.
- Установить зависимости.
- Настроить конфигурацию и базу.
- Открыть необходимые порты.
- Проверить ручной запуск.
- Создать службу systemd.
- Настроить резервные копии и мониторинг.
Требования к VPS для сервера GTA
Необходимые ресурсы зависят от платформы, игрового мода, количества игроков, объектов, серверных скриптов и MySQL-запросов.
Для начального публичного проекта важны
- быстрые виртуальные ядра;
- запас оперативной памяти;
- SSD или NVMe;
- статический внешний IPv4;
- стабильный сетевой канал;
- поддержка UDP и TCP;
- защита от сетевых атак;
- аварийная консоль в панели;
- возможность увеличения тарифа.
Особое значение имеет производительность одного ядра
Основная игровая логика многих серверных платформ выполняется преимущественно в одном главном потоке. Большое число медленных vCPU не всегда компенсирует низкую производительность отдельного ядра.
Оставляйте запас ресурсов
Оперативная память и диск понадобятся не только игровому процессу, но и MySQL, системным службам, журналам, обновлениям и резервным копиям.
Выбор дистрибутива Linux
Для игрового VPS обычно используют актуальную версию Ubuntu Server LTS или Debian Stable.
Преимущества Ubuntu Server
- большое количество инструкций;
- удобный пакетный менеджер APT;
- длительная поддержка LTS;
- простая настройка UFW;
- systemd установлен по умолчанию;
- широкая совместимость с панелями хостинга.
Преимущества Debian
- стабильная пакетная база;
- небольшое потребление ресурсов;
- минимальное количество лишних служб;
- подходит для самостоятельного администрирования.
Не выбирайте систему только по возрасту инструкции
Очень старая версия Linux может не получать обновления безопасности, а новые плагины могут требовать более современные библиотеки.
Первое подключение к VPS по SSH
Подключение из Windows PowerShell
ssh root@IP_СЕРВЕРА
При нестандартном SSH-порте
ssh -p 2222 root@IP_СЕРВЕРА
После первого входа
- смените временный пароль;
- проверьте имя системы;
- проверьте дату и часовой пояс;
- проверьте объём диска;
- проверьте оперативную память;
- установите обновления;
- создайте отдельного пользователя.
Смена пароля текущего пользователя
passwd
Проверка системы и ресурсов VPS
Версия операционной системы
cat /etc/os-release
Версия ядра и архитектура
uname -a
uname -m
Оперативная память
free -h
Диск
df -h
df -i
Процессор
lscpu
Время и часовой пояс
timedatectl
Сетевые адреса
ip address
Обновление Linux
Ubuntu и Debian
sudo apt update
sudo apt upgrade -y
Проверка необходимости перезагрузки
if [ -f /var/run/reboot-required ]; then
cat /var/run/reboot-required
fi
Перезагрузка VPS
sudo reboot
После перезагрузки повторно подключитесь по SSH и проверьте доступность сервера.
Не обновляйте рабочую систему без копии
Перед крупным обновлением операционной системы сохраните серверные файлы, конфигурации, базу данных и список установленных пакетов.
Установка базовых пакетов
sudo apt install \
curl \
wget \
unzip \
tar \
gzip \
nano \
screen \
tmux \
htop \
rsync \
ufw \
ca-certificates \
file \
lsof \
-y
Назначение пакетов
curlиwget— загрузка файлов;unzipиtar— распаковка архивов;nano— редактирование конфигурации;screenиtmux— временный фоновый запуск;htop— мониторинг процессов;rsync— копирование и перенос файлов;ufw— простое управление firewall;file— проверка архитектуры бинарных файлов;lsof— поиск процессов и открытых портов.
Создание отдельного пользователя сервера
Не запускайте игровой процесс постоянно от пользователя root.
Создание пользователя
sudo adduser \
--disabled-password \
--gecos "" \
gta
Проверка пользователя
id gta
Преимущества отдельного аккаунта
- сервер не получает полный доступ к системе;
- проще назначать владельца файлов;
- плагины работают с ограниченными правами;
- удобнее настраивать systemd;
- снижается ущерб при уязвимости.
Не добавляйте служебного пользователя в sudo без необходимости
Для административных операций используйте отдельную учётную запись с подтверждением через sudo.
Создание рабочих каталогов
Основной каталог
sudo mkdir -p \
/srv/gta/server \
/srv/gta/backups \
/srv/gta/uploads \
/srv/gta/logs
Назначение владельца
sudo chown -R \
gta:gta \
/srv/gta
Проверка
ls -la /srv/gta
Назначение каталогов
/srv/gta/server— рабочая сборка;/srv/gta/uploads— временные архивы;/srv/gta/backups— локальные копии;/srv/gta/logs— дополнительные журналы.
Загрузка серверных файлов через SFTP
Для передачи файлов удобно использовать WinSCP, FileZilla или другой SFTP-клиент.
Параметры подключения
Протокол: SFTP
Хост: IP VPS
Порт: порт SSH
Пользователь: административный аккаунт
Пароль или ключ: данные SSH
Загружайте архив в
/srv/gta/uploads/
Почему SFTP удобнее обычного FTP
- использует защищённое SSH-соединение;
- не требует отдельного FTP-сервера;
- не нужно открывать дополнительные порты;
- поддерживает SSH-ключи;
- позволяет управлять правами файлов.
Не загружайте в публичный каталог
Архив может содержать исходный код, пароли, конфигурацию MySQL и другие служебные данные.
Распаковка серверной сборки
ZIP
sudo -u gta \
unzip \
/srv/gta/uploads/gta-server.zip \
-d /srv/gta/server
TAR.GZ
sudo -u gta \
tar -xzf \
/srv/gta/uploads/gta-server.tar.gz \
-C /srv/gta/server
Проверка содержимого
find /srv/gta/server \
-maxdepth 2 \
-type f \
| sort
Проверьте вложенность
После распаковки файлы не должны случайно оказаться в нескольких одинаковых каталогах:
/srv/gta/server/gta-server/gta-server/
Исполняемый файл и конфигурация
Во многих сборках основной файл сервера и его главная конфигурация должны находиться в корневом каталоге.
Проверка архитектуры исполняемого файла
Найдите исполняемые файлы
find /srv/gta/server \
-maxdepth 2 \
-type f \
-executable \
-print
Проверьте основной файл
file /srv/gta/server/gta-server
Возможные результаты
ELF 64-bit LSB executable
ELF 32-bit LSB executable
Замените имя gta-server
Используйте фактическое имя исполняемого файла своей платформы.
Архитектура компонентов должна совпадать
32-битный сервер обычно не загрузит 64-битный нативный плагин, и наоборот.
Установка системных зависимостей
Для обычного 64-битного файла
ldd /srv/gta/server/gta-server
Если сервер является 32-битным
sudo dpkg --add-architecture i386
sudo apt update
Основные 32-битные библиотеки
sudo apt install \
libc6:i386 \
libstdc++6:i386 \
libgcc-s1:i386 \
libatomic1:i386 \
-y
Повторная проверка
ldd /srv/gta/server/gta-server
Отсутствующая библиотека выглядит так
libexample.so => not found
Проверка зависимостей серверных плагинов
Проверка всех SO-файлов
find /srv/gta/server \
-type f \
-name "*.so" \
-print
Проверка конкретного плагина
file /srv/gta/server/plugins/plugin.so
ldd /srv/gta/server/plugins/plugin.so
Поиск отсутствующих библиотек
for plugin in /srv/gta/server/plugins/*.so
do
echo "=== $plugin ==="
ldd "$plugin" \
| grep "not found" \
|| true
done
Распространённые причины ошибки загрузки
- загружена Windows-версия DLL;
- не совпадает архитектура;
- отсутствует системная библиотека;
- плагин собран для другой версии API;
- неверно указано имя файла;
- файл повреждён или не полностью загружен.
Настройка владельца и прав файлов
Назначение владельца
sudo chown -R \
gta:gta \
/srv/gta/server
Права каталогов
find /srv/gta/server \
-type d \
-exec chmod 750 {} \;
Права обычных файлов
find /srv/gta/server \
-type f \
-exec chmod 640 {} \;
Право запуска основного файла
chmod 750 \
/srv/gta/server/gta-server
Конфигурации с секретами
chmod 600 \
/srv/gta/server/server.cfg
Не используйте для всей сборки
chmod -R 777 /srv/gta/server
Полный доступ всем пользователям не исправляет отсутствующие библиотеки и создаёт дополнительный риск изменения файлов.
Проверка структуры серверной сборки
Обобщённый пример
/srv/gta/server/
├── gta-server
├── server.cfg
├── gamemodes/
├── plugins/
├── resources/
├── scriptfiles/
├── logs/
└── backups/
Структура зависит от платформы
Некоторые серверы используют config.json, каталог packages, modules, components или собственную структуру ресурсов.
Проверьте документацию сборки
- где находится основной конфиг;
- куда помещается игровой мод;
- куда загружаются плагины;
- какой файл запускается;
- какие каталоги должны быть доступны для записи;
- где создаются журналы.
Регистр имён файлов в Linux
Linux различает заглавные и строчные буквы.
Это разные файлы
Server.cfg
server.cfg
RolePlay.amx
roleplay.amx
MySQL.so
mysql.so
Проверьте точное имя
ls -la /srv/gta/server
ls -la /srv/gta/server/plugins
Ошибка регистра может привести к
- отсутствию игрового режима;
- ошибке загрузки плагина;
- нечтению конфигурации;
- невозможности найти ресурс;
- ошибке systemd в строке ExecStart.
Настройка конфигурации сервера GTA
Откройте основной конфигурационный файл:
sudo -u gta \
nano /srv/gta/server/server.cfg
Обычно требуется настроить
- название сервера;
- игровой порт;
- максимальное количество игроков;
- игровой мод или пакет ресурсов;
- список плагинов;
- пароль сервера;
- административный пароль;
- язык;
- параметры журналирования;
- подключение к базе данных.
Не публикуйте полный конфиг
Перед отправкой файла разработчику скройте:
RCON_PASSWORD=СКРЫТО
MYSQL_PASSWORD=СКРЫТО
API_TOKEN=СКРЫТО
SERVER_PASSWORD=СКРЫТО
Подключение MySQL к серверу GTA
Если игровой мод использует базу данных, создайте отдельную базу и отдельного пользователя MySQL.
Локальные параметры
Host: 127.0.0.1
Port: 3306
Database: gta_server
User: gta_runtime
Password: УНИКАЛЬНЫЙ_ПАРОЛЬ
Не используйте root в игровом моде
Рабочему серверу обычно достаточно прав на чтение и изменение данных одной базы.
Защитите файл подключения
sudo chown \
gta:gta \
/srv/gta/server/mysql.ini
chmod 600 \
/srv/gta/server/mysql.ini
Проверка соединения из терминала
mysql \
-h 127.0.0.1 \
-u gta_runtime \
-p \
gta_server
Настройка игровых портов
Номер и протокол порта зависят от серверной платформы. Одни игровые серверы используют преимущественно UDP, другие требуют одновременно UDP, TCP или дополнительные порты для HTTP и панели управления.
Пример игрового UDP-порта
7777/udp
Пример дополнительного TCP-порта
7788/tcp
Для нескольких серверов
Основной сервер: 7777
Второй сервер: 7778
Тестовый сервер: 7779
Каждый процесс должен использовать отдельный порт
Два сервера не смогут одновременно привязаться к одному адресу, порту и протоколу.
Не открывайте большой диапазон без необходимости
Разрешайте только порты, которые указаны в документации конкретной платформы и реально используются проектом.
Настройка firewall в панели VPS
Облачный провайдер может фильтровать трафик независимо от настроек Linux.
Пример игрового правила
Direction: Inbound
Protocol: UDP
Port: 7777
Source: 0.0.0.0/0
Action: Allow
Для TCP-порта
Direction: Inbound
Protocol: TCP
Port: 7788
Source: 0.0.0.0/0
Action: Allow
Для SSH
Direction: Inbound
Protocol: TCP
Port: 22
Source: IP_АДМИНИСТРАТОРА
Action: Allow
Сначала сохраните аварийный доступ
Перед ограничением SSH убедитесь, что в панели провайдера доступна веб-консоль или другой способ исправления firewall.
Настройка UFW на Linux
Разрешите SSH до включения UFW
sudo ufw allow OpenSSH
Разрешите игровой UDP-порт
sudo ufw allow 7777/udp
Дополнительный TCP-порт
sudo ufw allow 7788/tcp
Базовые политики
sudo ufw default deny incoming
sudo ufw default allow outgoing
Включение firewall
sudo ufw enable
Проверка правил
sudo ufw status verbose
Ручной запуск сервера через терминал
Перейдите в рабочий каталог
cd /srv/gta/server
Запустите сервер от служебного пользователя
sudo -u gta \
./gta-server
Первый запуск выполняйте в открытой консоли
Так можно сразу увидеть:
- отсутствующие библиотеки;
- неправильное имя конфигурации;
- ошибку загрузки плагина;
- неверный порт;
- ошибку подключения MySQL;
- отказ в доступе к файлу;
- аварийное завершение игрового мода.
Остановка из текущей консоли
Ctrl+C
Проверьте, корректно ли конкретная платформа обрабатывает это завершение и сохраняет ли данные.
Проверка журнала запуска
Поиск журналов
find /srv/gta/server \
-maxdepth 3 \
-type f \
-name "*.log" \
-print
Последние строки
tail -n 150 \
/srv/gta/server/server.log
Просмотр в реальном времени
tail -f \
/srv/gta/server/server.log
Поиск ошибок
grep -iE \
"error|failed|fatal|runtime|denied|missing|not found" \
/srv/gta/server/server.log \
| tail -n 100
После запуска проверьте
- загрузился ли игровой мод;
- загрузились ли плагины;
- подключилась ли база;
- открыт ли игровой порт;
- нет ли повторяющихся ошибок;
- создаются ли необходимые каталоги.
Временный запуск сервера в фоне
Для тестирования можно использовать screen или tmux. Для постоянной работы предпочтительнее systemd.
Создание screen-сессии
sudo -u gta \
screen -S gta-server
Запуск внутри screen
cd /srv/gta/server
./gta-server
Отключение от screen без остановки
Ctrl+A
D
Список сессий
screen -ls
Возврат в консоль
screen -r gta-server
Ограничения screen
- нет полноценного контроля состояния;
- неудобный автоматический запуск;
- нет встроенного ограничения перезапусков;
- сложнее собирать системные журналы;
- процесс может остаться без наблюдения.
Создание службы systemd
Создайте файл службы
sudo nano \
/etc/systemd/system/gta-server.service
Базовый пример
[Unit]
Description=GTA Game Server
After=network-online.target
Wants=network-online.target
StartLimitIntervalSec=300
StartLimitBurst=5
[Service]
Type=simple
User=gta
Group=gta
WorkingDirectory=/srv/gta/server
ExecStart=/srv/gta/server/gta-server
Restart=on-failure
RestartSec=10
TimeoutStopSec=60
LimitNOFILE=65535
NoNewPrivileges=true
PrivateTmp=true
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
Обязательно замените
ExecStart=/srv/gta/server/gta-server
Укажите точный путь и фактическое имя исполняемого файла своей серверной платформы.
Если нужны параметры запуска
ExecStart=/srv/gta/server/gta-server --config server.cfg
Добавляйте только аргументы, которые поддерживает используемый сервер.
Включение автоматического запуска
Перечитайте конфигурацию systemd
sudo systemctl daemon-reload
Проверьте синтаксис службы
sudo systemd-analyze verify \
/etc/systemd/system/gta-server.service
Запустите службу
sudo systemctl start gta-server
Проверьте состояние
sudo systemctl status \
gta-server \
--no-pager
Включите автозапуск
sudo systemctl enable gta-server
Запуск и включение одной командой
sudo systemctl enable \
--now \
gta-server
Проверка автозагрузки
systemctl is-enabled gta-server
Настройка автоматического перезапуска
Перезапуск только после ошибки
Restart=on-failure
Служба будет восстановлена после аварийного завершения или ненулевого кода выхода, но не после обычной команды остановки.
Задержка перед новым запуском
RestartSec=10
Задержка не позволяет процессу перезапускаться много раз в секунду.
Лимит повторных запусков
StartLimitIntervalSec=300
StartLimitBurst=5
Если сервер завершится слишком много раз за установленный период, systemd остановит дальнейшие попытки.
Не используйте без анализа
Restart=always
RestartSec=0
Такая настройка может создать бесконечный цикл и быстро заполнить журнал одинаковыми ошибками.
Управление сервером через systemctl
Запуск
sudo systemctl start gta-server
Остановка
sudo systemctl stop gta-server
Перезапуск
sudo systemctl restart gta-server
Статус
sudo systemctl status \
gta-server \
--no-pager
Включение автозагрузки
sudo systemctl enable gta-server
Отключение автозагрузки
sudo systemctl disable gta-server
Проверка состояния процесса
systemctl is-active gta-server
Перезапуск после изменения файла службы
sudo systemctl daemon-reload
sudo systemctl restart gta-server
Просмотр журналов systemd
Последние сообщения
sudo journalctl \
-u gta-server \
-n 150 \
--no-pager
Наблюдение в реальном времени
sudo journalctl \
-u gta-server \
-f
Сообщения за текущую загрузку VPS
sudo journalctl \
-u gta-server \
-b \
--no-pager
Журнал за определённый период
sudo journalctl \
-u gta-server \
--since "2026-07-31 18:00:00" \
--until "2026-07-31 19:00:00" \
--no-pager
Только ошибки
sudo journalctl \
-u gta-server \
-p err \
--no-pager
Не публикуйте журнал без проверки
Удалите пароли, токены, данные MySQL и лишние сведения об игроках.
Корректная остановка сервера
Перед остановкой сервер должен сохранить аккаунты, имущество, экономику и незавершённые игровые операции.
Рекомендуемый порядок
- Предупредить игроков.
- Закрыть вход при необходимости.
- Остановить игровые события.
- Сохранить авторизованные аккаунты.
- Дождаться важных запросов MySQL.
- Остановить службу.
- Проверить журнал завершения.
Остановка через systemd
sudo systemctl stop gta-server
Принудительное завершение
sudo systemctl kill \
--signal=KILL \
gta-server
Используйте его только тогда, когда обычная остановка не работает. Принудительное завершение может привести к потере последних данных.
Проверяйте поддерживаемый сигнал
Разные серверные платформы могут по-разному обрабатывать SIGTERM и SIGINT. Проведите тест на отдельной базе и убедитесь, что сервер завершает работу корректно.
Защита от бесконечного цикла перезапусков
Признаки проблемы
- служба постоянно переходит между activating и failed;
- журнал быстро увеличивается;
- порт появляется и сразу исчезает;
- CPU расходуется повторными запусками;
- systemd сообщает start-limit-hit.
Остановите службу
sudo systemctl stop gta-server
Проверьте журнал
sudo journalctl \
-u gta-server \
-n 200 \
--no-pager
Сбросьте состояние после исправления
sudo systemctl reset-failed gta-server
sudo systemctl start gta-server
Автоматический перезапуск не исправляет
- отсутствующую библиотеку;
- неправильный путь;
- занятый порт;
- повреждённый игровой мод;
- несовместимый плагин;
- неверные данные MySQL.
Удалённое управление сервером GTA
Основные инструменты
- SSH — команды и systemctl;
- SFTP — загрузка и изменение файлов;
- панель VPS — перезагрузка и аварийная консоль;
- система мониторинга — уведомления о сбоях;
- игровая административная система;
- RCON или аналогичный интерфейс, если поддерживается платформой.
Проверка сервера по SSH
ssh gtaadmin@IP_СЕРВЕРА
sudo systemctl status \
gta-server \
--no-pager
Перезапуск
sudo systemctl restart gta-server
Просмотр последних ошибок
sudo journalctl \
-u gta-server \
-p err \
-n 100 \
--no-pager
Не передавайте root-доступ всему персоналу
Игровые администраторы должны использовать внутриигровые команды, а не SSH и панель VPS.
Настройка безопасного входа по SSH-ключам
Создание ключа на компьютере администратора
ssh-keygen -t ed25519
Копирование открытого ключа
ssh-copy-id \
gtaadmin@IP_СЕРВЕРА
Проверка входа
ssh gtaadmin@IP_СЕРВЕРА
После успешной проверки можно настроить SSH
PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no
Проверка конфигурации
sudo sshd -t
Перезагрузка службы
sudo systemctl reload ssh
Мониторинг сервера и VPS
Процессы
top
htop
Процесс сервера
ps aux \
| grep gta-server \
| grep -v grep
Оперативная память
free -h
Диск
df -h
df -i
Сетевые порты
sudo ss -lunp
sudo ss -lntp
Состояние службы
systemctl is-active gta-server
Следите за
- постоянным ростом памяти;
- загрузкой одного ядра;
- использованием swap;
- уменьшением свободного места;
- повторными рестартами;
- ошибками базы;
- недоступностью игрового порта;
- увеличением времени авторизации.
Контроль ресурсов серверного процесса
Количество открытых файлов
cat /proc/PID/limits
Потребление процесса
ps -o \
pid,%cpu,%mem,rss,vsz,etime,cmd \
-p PID
Наблюдение каждую секунду
pidstat \
-p PID \
1
Ограничение открытых файлов в systemd
LimitNOFILE=65535
Не устанавливайте огромные лимиты без причины
Сначала определите, какой ресурс действительно заканчивается и почему сервер открывает большое количество файлов или соединений.
Настройка ротации журналов
Старые журналы необходимо архивировать, иначе они могут занять весь диск.
Создание правила logrotate
sudo nano \
/etc/logrotate.d/gta-server
Пример
/srv/gta/server/*.log {
daily
rotate 14
compress
delaycompress
missingok
notifempty
copytruncate
}
Проверка конфигурации
sudo logrotate \
-d \
/etc/logrotate.d/gta-server
Принудительный тест
sudo logrotate \
-f \
/etc/logrotate.d/gta-server
Учитывайте способ записи журнала
Предпочтительнее использовать встроенное переоткрытие файла, если сервер его поддерживает. copytruncate подходит не для всех нагрузок и может потерять небольшое количество строк во время копирования.
Резервное копирование сервера GTA
Архив серверных файлов
sudo tar -czf \
/srv/gta/backups/server-$(date +%F-%H%M).tar.gz \
-C /srv/gta \
server
Проверка архива
tar -tzf \
/srv/gta/backups/server-2026-07-31-1900.tar.gz \
| head
Дамп MySQL
mysqldump \
--single-transaction \
-u gta_backup \
-p \
gta_server \
| gzip \
> /srv/gta/backups/database-$(date +%F-%H%M).sql.gz
Проверка сжатого дампа
gzip -t \
/srv/gta/backups/database-2026-07-31-1900.sql.gz
Храните копию вне VPS
- на другом сервере;
- в защищённом облачном хранилище;
- на компьютере владельца;
- на офлайн-носителе;
- в хранилище с защитой от удаления.
Проверяйте восстановление
Периодически разворачивайте архив на отдельном тестовом сервере и проверяйте вход, имущество, права персонала и подключение базы.
Безопасное обновление серверной сборки
Перед обновлением сохраните
- исполняемый файл;
- игровой мод;
- серверные плагины;
- конфигурацию;
- базу данных;
- службу systemd;
- последние журналы;
- список установленных зависимостей.
Безопасный порядок
- Подготовьте тестовую копию.
- Создайте резервную копию базы.
- Замените файлы на тестовом сервере.
- Проверьте зависимости через
ldd. - Проверьте загрузку модулей.
- Проверьте подключение MySQL.
- Проверьте игровой порт.
- Проведите тест авторизации.
- Только после этого обновите рабочий сервер.
Установка на рабочий сервер
sudo systemctl stop gta-server
sudo rsync -a \
--delete \
/srv/gta/test-server/ \
/srv/gta/server/
sudo chown -R \
gta:gta \
/srv/gta/server
sudo systemctl start gta-server
Создание отдельного тестового сервера
Тестовая сборка должна использовать
- отдельный каталог;
- отдельный игровой порт;
- отдельную базу MySQL;
- отдельного пользователя базы;
- отдельную службу systemd;
- отдельные журналы;
- пароль для входа.
Пример каталогов
/srv/gta/server/
/srv/gta/test-server/
Пример портов
Рабочий сервер: 7777
Тестовый сервер: 7779
Пример служб
gta-server.service
gta-test.service
Не подключайте тестовый сервер к рабочей базе
Две сборки могут одновременно изменять аккаунты, экономику и имущество игроков.
Безопасность сервера GTA на Linux
Основные меры
- запускайте процесс от отдельного пользователя;
- используйте SSH-ключи;
- закройте ненужные порты;
- не открывайте MySQL всему интернету;
- не используйте одинаковые пароли;
- ограничьте права конфигурационных файлов;
- устанавливайте плагины из доверенных источников;
- регулярно обновляйте систему;
- проверяйте активные SSH-ключи;
- создавайте внешние резервные копии.
Проверка открытых портов
sudo ss -lntup
Проверка пользователей
getent passwd
Проверка SSH-ключей
sudo find /root /home \
-name authorized_keys \
-type f \
-print
Проверка заданий cron
sudo crontab -l
sudo ls -la /etc/cron.d/
Перенос сервера GTA на другой VPS
Сохраните
- каталог серверной сборки;
- дамп MySQL;
- файл службы systemd;
- правила firewall;
- список системных пакетов;
- SSH-настройки;
- задания cron;
- внешние интеграции;
- пароли и токены в защищённом хранилище.
Список пакетов
apt-mark showmanual \
> /srv/gta/backups/manual-packages.txt
Копирование файлов через rsync
rsync -avz \
-e ssh \
/srv/gta/server/ \
root@IP_НОВОГО_VPS:/srv/gta/server/
Порядок переноса
- Подготовьте новый VPS.
- Установите зависимости.
- Разверните серверные файлы.
- Импортируйте копию базы.
- Настройте тестовый порт.
- Проверьте сервер под паролем.
- Остановите старый сервер.
- Создайте финальный дамп.
- Импортируйте последние данные.
- Откройте новый сервер игрокам.
Не запускайте два сервера с одной базой
Одновременное сохранение одних данных может привести к конфликтам и потере последних изменений.
Распространённые ошибки запуска
Permission denied
bash: ./gta-server: Permission denied
Проверьте право выполнения:
chmod 750 \
/srv/gta/server/gta-server
Проверьте владельца:
sudo chown \
gta:gta \
/srv/gta/server/gta-server
No such file or directory при существующем файле
Возможная причина — отсутствующий загрузчик или системная библиотека.
file /srv/gta/server/gta-server
ldd /srv/gta/server/gta-server
Wrong ELF class
wrong ELF class: ELFCLASS64
Архитектура сервера и плагина не совпадает.
Library not found
error while loading shared libraries:
libexample.so: cannot open shared object file
Найдите официальный пакет, содержащий эту библиотеку, и установите его через APT.
Address already in use
Address already in use
Проверьте, какой процесс занял порт:
sudo ss -lunp \
| grep 7777
sudo lsof \
-i :7777
Сервер запущен, но подключиться нельзя
- открыт TCP вместо UDP;
- порт закрыт в UFW;
- порт закрыт в панели провайдера;
- сервер использует другой порт;
- процесс слушает только локальный адрес;
- неверно указан внешний IP;
- провайдер фильтрует игровой трафик.
Systemd status=203/EXEC
Проверьте:
- правильность ExecStart;
- существование файла;
- право выполнения;
- архитектуру;
- строку запуска;
- отсутствие Windows-переносов строк в скрипте.
ls -la \
/srv/gta/server/gta-server
file \
/srv/gta/server/gta-server
WorkingDirectory not found
Указанный в службе каталог отсутствует или написан с неправильным регистром.
Start request repeated too quickly
Сервер многократно завершился после запуска. Остановите службу и проверьте журнал:
sudo systemctl stop gta-server
sudo journalctl \
-u gta-server \
-n 200 \
--no-pager
MySQL Access denied
- неверный пароль;
- не совпадает Host пользователя;
- не выданы права;
- неверно указано имя базы;
- конфигурационный файл не читается;
- служба MySQL не запущена.
Проверка MySQL
sudo systemctl status \
mysql \
--no-pager
mysql \
-h 127.0.0.1 \
-u gta_runtime \
-p \
gta_server
Плагин не загружается
file /srv/gta/server/plugins/plugin.so
ldd /srv/gta/server/plugins/plugin.so
Проверьте архитектуру, зависимости, версию API и точное имя файла.
Сервер завершается после выхода из SSH
Процесс был запущен непосредственно в текущем терминале. Используйте systemd, screen или tmux.
Служба не запускается после перезагрузки
systemctl is-enabled gta-server
sudo systemctl enable gta-server
Контрольный список настройки сервера GTA на Linux
VPS
- получен внешний IPv4;
- разрешён игровой трафик;
- доступна аварийная консоль;
- выбран SSD или NVMe;
- есть запас RAM;
- включена защита от сетевых атак.
Linux
- операционная система обновлена;
- установлены базовые пакеты;
- создан отдельный пользователь;
- сервер не работает от root;
- часовой пояс настроен;
- SSH-доступ проверен.
Серверные файлы
- архив полностью распакован;
- структура каталогов правильная;
- проверена архитектура бинарного файла;
- установлены зависимости;
- проверены SO-плагины;
- учтён регистр имён;
- назначен правильный владелец;
- исполняемому файлу выданы права.
Конфигурация
- указан правильный игровой порт;
- настроено название сервера;
- подключён игровой мод;
- подключены нужные плагины;
- заменены стандартные пароли;
- настроено подключение к MySQL;
- секреты не опубликованы.
Сеть
- порт открыт в UFW;
- порт открыт в панели провайдера;
- выбран правильный протокол;
- процесс слушает порт;
- ненужные порты закрыты;
- SSH не заблокирован.
Systemd
- создан файл службы;
- правильно указан User;
- правильно указан WorkingDirectory;
- правильно указан ExecStart;
- настроен Restart=on-failure;
- установлена задержка перезапуска;
- служба включена в автозагрузку;
- проверена перезагрузка VPS.
Обслуживание
- журналы просматриваются через journalctl;
- настроена ротация логов;
- контролируются CPU и память;
- проверяется свободное место;
- создаются резервные копии;
- есть внешняя копия;
- подготовлен тестовый сервер.
Частые вопросы по настройке GTA Server на Linux
Какой Linux выбрать для сервера GTA?
Обычно используют актуальную Ubuntu Server LTS или Debian Stable.
Можно ли загрузить Windows-сборку на Linux?
Не напрямую. Нужны Linux-версия исполняемого файла и совместимые SO-модули.
Почему DLL не работает на Linux?
DLL предназначена для Windows. На Linux используются нативные библиотеки с расширением .so.
Как проверить архитектуру сервера?
file /srv/gta/server/gta-server
Как найти отсутствующие библиотеки?
ldd /srv/gta/server/gta-server
Почему сервер пишет Permission denied?
Проверьте право выполнения и владельца файла.
Можно ли использовать chmod 777?
Для всей сборки это не требуется и ухудшает безопасность. Назначьте правильного владельца и минимальные необходимые права.
Как загрузить файлы на VPS?
Через SFTP с помощью WinSCP, FileZilla или другого клиента.
Как запустить сервер вручную?
cd /srv/gta/server
sudo -u gta ./gta-server
Как оставить сервер после выхода из SSH?
Для постоянной работы используйте systemd. Для временного теста подойдут screen или tmux.
Как настроить автозапуск?
Создайте службу systemd и выполните:
sudo systemctl enable \
--now \
gta-server
Как перезапустить сервер?
sudo systemctl restart gta-server
Как посмотреть ошибки?
sudo journalctl \
-u gta-server \
-n 200 \
--no-pager
Как смотреть журнал в реальном времени?
sudo journalctl \
-u gta-server \
-f
Что делает Restart=on-failure?
Перезапускает сервер после аварийного завершения, но не после обычной команды остановки.
Почему systemd перестал перезапускать сервер?
Возможно, достигнут лимит StartLimitBurst. Исправьте ошибку и выполните systemctl reset-failed.
Какой порт открывать?
Порт и протокол указаны в документации используемой серверной платформы. Некоторые серверы используют UDP, другие требуют дополнительные TCP-порты.
Почему открытый порт не отображается?
Сначала должен быть запущен процесс, который слушает этот порт.
Как проверить прослушиваемые порты?
sudo ss -lntup
Нужно ли открывать MySQL-порт?
Если база находится на том же VPS, обычно нет. Сервер подключается к 127.0.0.1.
Можно ли запускать сервер от root?
Не рекомендуется. Используйте отдельного системного пользователя.
Как ограничить доступ разработчика?
Создайте отдельную SSH-учётную запись и предоставьте доступ только к необходимым файлам и командам.
Как обновлять игровой мод?
Сначала на тестовой сборке и копии базы, затем после полной проверки на рабочем сервере.
Как часто делать резервные копии?
Регулярно, а также перед обновлением мода, плагинов, базы или операционной системы.
Можно ли хранить копии только на VPS?
Нет. Минимум одна актуальная копия должна находиться вне рабочего сервера.
Как проверить автоматический запуск?
Перезагрузите VPS и проверьте состояние службы, игровой порт, подключение базы и вход тестового аккаунта.
Официальные и технические источники
Заключение
Для запуска сервера GTA на Linux необходимо подготовить VPS, обновить операционную систему, создать отдельного пользователя и загрузить серверную сборку через SFTP.
Перед запуском проверьте архитектуру исполняемого файла и всех нативных плагинов. Отсутствующие библиотеки следует устанавливать через официальный пакетный менеджер, а не скачивать со случайных сайтов.
Назначьте правильного владельца файлов и минимальные права. Игровой процесс не должен постоянно работать от root, а конфигурации с паролями должны быть закрыты от других пользователей системы.
Открывайте только те UDP- и TCP-порты, которые действительно использует выбранная серверная платформа. Правила могут потребоваться одновременно в UFW и панели облачного провайдера.
Первый запуск выполняйте вручную в терминале. После устранения ошибок создайте службу systemd с рабочим каталогом, отдельным пользователем, автоматическим запуском и контролируемым восстановлением после сбоя.
Для удалённого управления используйте SSH, SFTP и systemctl. Игровому персоналу не следует выдавать root-доступ, пароль VPS или возможность изменять серверные файлы.
Регулярно проверяйте journalctl, системные ресурсы, свободное место, состояние базы и открытые порты. Настройте ротацию журналов, чтобы они не заполнили диск.
Резервные копии серверных файлов и MySQL необходимо хранить в нескольких поколениях, включая актуальную копию за пределами рабочего VPS.
Установка сервера на Windows:
Выбор и настройка VPS:
Настройка базы данных:
Безопасность и резервные копии:
Журналы и обслуживание:
Комментарии к инструкции
Обсудите решение, задайте вопрос или дополните инструкцию