Как поднять сервер Garry's Mod: пошаговая инструкция
Если ты уже пробовал поднять GMod-сервер по случайному гайду из интернета, то наверняка словил либо «missing gameinfo.txt», либо сервер, который не видно в браузере серверов, либо аддоны, которые тихо не подгружаются игрокам. Это классика жанра — сам проходил все три грабли не по одному разу. Разберём процесс так, чтобы сервер встал с первого раза: от выбора VPS до автозапуска после перезагрузки.
Содержание
Системные требования: сколько ресурсов реально нужно
Garry's Mod не требователен к железу по меркам 2026 года, но экономить до предела не стоит — сервер держит на себе физику, Lua-хуки аддонов и сетевой снапшот для каждого игрока.
Минимум, с которого стоит начинать — 2 ГБ RAM, это порог, ниже которого голый sandbox с парой десятков аддонов уже начинает подтормаживать под нагрузкой. Дальше ориентируйся так:
| Сценарий | RAM | vCPU | Игроков |
|---|---|---|---|
| Sandbox, немного аддонов | 2 ГБ | 2 | до 16 |
| Sandbox с крупной Workshop-коллекцией | 3–4 ГБ | 2–3 | до 24 |
| DarkRP / TTT с плагинами | 4–6 ГБ | 3–4 | 24–32 |
| Крупный RP-проект с базами данных | 6–8 ГБ | 4 | 32+ |
Это ориентировочные цифры, не результат бенчмарка — реальное потребление сильно зависит от того, сколько Lua-кода крутится на сервере: сложные RP-гейммоды типа DarkRP с десятками аддонов легко удвоят потребление памяти по сравнению с голым sandbox. Диск лучше брать SSD/NVMe — Workshop-коллекции на сотни аддонов и карт спокойно занимают 10–20 ГБ, а медленный диск ощутимо тормозит загрузку карты при рестарте.
Установка через SteamCMD
Garry's Mod Dedicated Server ставится через SteamCMD с app id 4020 — это отдельный публичный билд, для его загрузки не нужен купленный аккаунт с игрой, достаточно анонимного логина.
На Debian/Ubuntu сначала ставим зависимости для 32-битных библиотек, без них steamcmd просто не запустится:
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y lib32gcc-s1 lib32stdc++6 curl tar
Если пакет lib32gcc-s1 не находится (на старых релизах он назывался lib32gcc1), поставь ту версию, что есть в репозитории твоего дистрибутива.
Дальше скачиваем и распаковываем сам SteamCMD:
mkdir -p ~/steamcmd && cd ~/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" -o steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz
И запускаем установку самого сервера:
cd ~/steamcmd
./steamcmd.sh +login anonymous +force_install_dir /home/gmod/gmodserver +app_update 4020 validate +quit
Первая загрузка — это несколько гигабайт, на VPS со средним каналом займёт от 5 до 15 минут. Флаг validate стоит держать при каждом крупном обновлении — он пересчитывает контрольные суммы файлов и докачивает битые. Если хочешь освежить сервер позже, команда та же самая, просто без +login anonymous каждый раз можно обойтись — steamcmd запомнит сессию в кэше.
Поднять сервер Garry's Mod за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверБазовая конфигурация: server.cfg и стартовый скрипт
Основной конфиг сервера — garrysmod/cfg/server.cfg, он подхватывается автоматически при старте (через встроенный +exec server.cfg, который многие прописывают явно в параметрах запуска на всякий случай). Создаём файл:
nano /home/gmod/gmodserver/garrysmod/cfg/server.cfg
Минимальный рабочий набор:
hostname "Мой первый GMod сервер"
rcon_password "смени_меня_на_сложный_пароль"
sv_password ""
sv_lan 0
sv_region 3
maxplayers 16
sv_allowdownload 1
sv_allowupload 1
sv_downloadurl ""
rcon_password обязательно смени на что-то нетривиальное — с дефолтным или пустым паролем сервер за пару дней найдут и завалят rcon-командами. sv_region 3 — код региона для Европы/России в браузере серверов, если сервер стоит в другом регионе (например, US), поставь соответствующий код или просто убери строку, чтобы Steam определил регион по IP автоматически.
Отдельно стоит завести garrysmod/cfg/autoexec.cfg — туда удобно вынести настройки, которые не должны перезаписываться при mapchange или ресете конфига гейммодом, в отличие от server.cfg, который иногда переопределяют плагины.
Что касается файла с параметрами запуска — многие панели хостеров действительно генерируют что-то вроде srcds.txt или startup.txt со строкой запуска. Технически это не файл движка Source, а просто обёртка, которую панель подставляет в srcds_run. Проще и надёжнее держать свой start.sh:
#!/bin/bash
cd /home/gmod/gmodserver
./srcds_run -game garrysmod -console -port 27015 +gamemode sandbox +map gm_construct +maxplayers 16 +exec server.cfg
chmod +x start.sh
Запуск сервера и ключевые параметры
Разберём флаги srcds_run по одному, потому что именно тут чаще всего путаются новички:
-game garrysmod— обязательно, иначе сервер попробует стартовать как чистый Source SDK и упадёт с ошибкой про gameinfo.-console— включает консольный вывод в терминал, без него не увидишь логи в реальном времени.-port 27015— игровой порт, можно оставить дефолтный или сменить, если на одной машине крутится несколько серверов.+gamemode sandbox— гейммод по умолчанию; для DarkRP это будет+gamemode darkrp, для TTT —+gamemode terrortown(идёт в комплекте с игрой).+map gm_construct— стартовая карта; для DarkRP обычно берутrp_downtown_v2или другую RP-карту, но её нужно предварительно закинуть вgarrysmod/maps/.+maxplayers 16— лимит слотов, совпадает с тем, что стоит вserver.cfg, но здесь имеет приоритет.
Если ставишь DarkRP, гейммод не идёт в базовой поставке — его нужно скачать (например, через Workshop-коллекцию, о которой ниже, или вручную с GitHub) и положить в garrysmod/gamemodes/darkrp/. То же касается TTT-карт и кастомных RP-аддонов: голый app_update 4020 даёт только engine и базовые sandbox/TTT гейммоды.
Запускаем и смотрим на консоль:
cd /home/gmod/gmodserver
./start.sh
Если всё правильно, в логе будет строка про успешную загрузку карты и Server logging enabled. Если сервер тут же падает — почти всегда это либо неверный -game, либо битые файлы после неполной загрузки (тогда снова гоняем app_update 4020 validate).
Порты и firewall
Дефолтный игровой порт Garry's Mod — 27015 (UDP и TCP). Именно на нём сервер отвечает клиентам и мастер-серверу Steam. Если арендуешь VPS напрямую (не готовый игровой хостинг с уже открытыми портами), проброс — это, по сути, настройка firewall на самой машине, а не роутера, потому что у VPS обычно белый IP без NAT.
На Ubuntu/Debian с ufw:
sudo ufw allow 27015/tcp
sudo ufw allow 27015/udp
sudo ufw reload
Если планируешь SourceTV-трансляцию, дополнительно открой 27020/udp. Для нескольких серверов на одном хосте порт для каждого нужно менять (27016, 27017 и так далее) и открывать отдельно — ставить два сервера на один порт нельзя, второй просто не забиндится.
Проверить, что порт реально слушается, можно так:
ss -tulnp | grep 27015
Если строки нет — сервер либо не запущен, либо упал при старте, смотри логи в консоли srcds_run.
Steam Workshop: подключаем коллекцию аддонов
С 2018 года Valve требует авторизацию для загрузки Workshop-контента на дедик — без ключа сервер просто откажется скачивать коллекцию. Получить его можно бесплатно на steamcommunity.com/dev/apikey, привязав к любому Steam-аккаунту.
Дальше собираешь коллекцию аддонов в Steam Workshop (карты, модели, скрипты — всё, что нужно) и берёшь её ID из URL страницы коллекции. Добавляем в команду запуска:
+host_workshop_collection 123456789 -authkey ТВОЙ_API_КЛЮЧ
При старте сервер скачает все аддоны из коллекции в garrysmod/cache/workshop/ и автоматически разошлёт их клиентам при подключении — игрокам не нужно вручную подписываться на каждый аддон. Это удобнее, чем host_workshop_addon для одиночных аддонов, но у коллекции есть нюанс: чем она больше, тем дольше стартует сервер после каждого рестарта, потому что сверка контрольных сумм идёт по всем файлам. Для больших сборок (300+ аддонов) старт может растянуться на несколько минут — это нормально, не баг.
Если сервер пишет Host validation failed или похожие ошибки при загрузке коллекции — почти всегда это истёкший или неверный -authkey, перепроверь ключ на той же странице steamcommunity.
Автозапуск через systemd
Ручной запуск удобен для отладки, но после перезагрузки VPS или падения процесса сервер сам не поднимется — нужен systemd-юнит. Создаём файл:
sudo nano /etc/systemd/system/gmod.service
Содержимое:
[Unit]
Description=Garry's Mod Dedicated Server
After=network.target
[Service]
User=gmod
WorkingDirectory=/home/gmod/gmodserver
ExecStart=/home/gmod/gmodserver/srcds_run -game garrysmod -console -port 27015 +gamemode sandbox +map gm_construct +maxplayers 16 +host_workshop_collection 123456789 -authkey ТВОЙ_API_КЛЮЧ +exec server.cfg
Restart=on-failure
RestartSec=10
LimitNOFILE=100000
[Install]
WantedBy=multi-user.target
Запускаем от пользователя gmod (заводить отдельного непривилегированного юзера под игровой сервер — хорошая практика, не гоняй дедик под root). Регистрируем и включаем автозапуск:
sudo systemctl daemon-reload
sudo systemctl enable --now gmod.service
sudo systemctl status gmod.service
Логи после этого удобно смотреть через journalctl -u gmod -f вместо консоли терминала — так видно и что происходило до текущей сессии SSH. Restart=on-failure подхватит сервер, если он упадёт из-за кривого аддона, но учти: если проблема в самом конфиге (например, битый Workshop ID), systemd будет честно пытаться перезапускать падающий сервер по кругу — в этом случае лучше сразу лезть в логи, а не полагаться на автовосстановление.
Поднять сервер Garry's Mod за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверЧастые вопросы
Почему сервер не виден в браузере серверов Steam?
Чаще всего дело в закрытом порте (проверь ss -tulnp) или в том, что прошло мало времени — регистрация на мастер-сервере Steam может занимать пару минут после старта.
Можно ли сменить гейммод без переустановки сервера?
Да, просто меняешь +gamemode в команде запуска и кладёшь нужный гейммод в garrysmod/gamemodes/, если его нет в базовой поставке.
Нужен ли отдельный -authkey, если аддонов мало и они ставятся вручную?
Нет, ключ обязателен только для автоматической загрузки через host_workshop_collection/host_workshop_addon. Если аддоны просто лежат в garrysmod/addons/ вручную, ключ не нужен, но тогда игрокам придётся ставить их у себя самостоятельно.
Сколько реально памяти ест DarkRP по сравнению с sandbox?
Точных цифр без замера на конкретной сборке не назову — слишком сильно зависит от количества аддонов и плагинов экономики, но по опыту DarkRP с типичным набором SQL-based плагинов ест в полтора-два раза больше, чем голый sandbox с тем же числом игроков.
Как быстро обновить сервер до новой версии игры?
Останови сервис (systemctl stop gmod), прогони app_update 4020 validate через steamcmd, запусти снова.