Выделенный сервер Garry's Mod ставится через SteamCMD (app 4020, анонимный вход) и запускается через srcds_run (Linux) или srcds.exe (Windows). Нужно около 30 минут, VPS или ПК и токен сервера GSLT, обязательный по вики Facepunch. Основной источник: wiki.facepunch.com/gmod.
Пошаговая установка
Выберите машину: VPS с Linux (Ubuntu/Debian) или ПК с Windows; нагрузка зависит в основном от аддонов и режима.
Создайте пользователя без root (steam) и установите SteamCMD и 32-битные библиотеки.
Скачайте сервер: app_update 4020 validate с анонимным входом.
Создайте токен GSLT (AppID 4000) на steamcommunity.com/dev/managegameservers.
Создайте строку запуска инструментом «Команда запуска Garry's Mod» и запустите srcds_run.
Настройте garrysmod/cfg/server.cfg инструментом «Генератор server.cfg для Garry's Mod».
Добавьте аддоны через коллекцию Workshop (+host_workshop_collection).
Откройте порты (минимум 27015 UDP/TCP) в ufw, у провайдера и на роутере.
Проверьте локально (connect 127.0.0.1 в консоли игры), затем с другого подключения.
Создайте службу systemd и запланируйте обновления и бэкапы.
Требования
- ОС: Linux (Ubuntu/Debian) или Windows. В вики Facepunch есть команды для Windows и Linux.
- Ресурсы: вики минимум не задаёт. Начните с 2 vCPU, 4 ГБ ОЗУ и нескольких ГБ диска, затем подстройте под аддоны и число игроков (официально не документировано).
- Аккаунты: аккаунт Steam для токена GSLT (AppID 4000); сам сервер ставится анонимным входом.
Локальная установка в Windows
Распаковав SteamCMD в C:\steamcmd, установите сервер и запустите srcds.exe (пример из вики Facepunch). Затем проверьте командой connect 127.0.0.1 в консоли игры.
cd C:\steamcmd
steamcmd +force_install_dir C:\gmodds +login anonymous +app_update 4020 validate +quit
cd C:\gmodds
srcds.exe -console -game garrysmod +maxplayers 20 +gamemode sandbox +map gm_construct +sv_setsteamaccount YOUR_GSLT_TOKENLinux VPS: пользователь и зависимости
Сервер Source — 32-битная программа: включите архитектуру i386 и установите 32-битные библиотеки. Пакеты ниже взяты из вики Team Fortress (тот же движок); названия могут отличаться в зависимости от дистрибутива.
sudo adduser steam
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y lib32gcc-s1 lib32stdc++6 lib32z1 steamcmd
su - steamLinux VPS: установка и первый запуск
Команда установки для Linux из вики Facepunch, затем запуск через srcds_run. На странице нет подробностей о портах и точном месте server.cfg; действуют стандартные значения Source (см. ниже).
steamcmd +login anonymous +force_install_dir /home/steam/gmodds +app_update 4020 validate +quit
cd /home/steam/gmodds
./srcds_run -game garrysmod -console +maxplayers 32 +gamemode sandbox +map gm_construct +sv_setsteamaccount YOUR_GSLT_TOKENWorkshop и токен GSLT
По вики Facepunch, +sv_setsteamaccount обязателен (без него рейтинг сервера понижается), а +host_workshop_collection добавляет аддоны публичной или скрытой по ссылке коллекции вместе с вложенными. host_workshop_autoupdate 0 отключает автообновление, но может помешать игрокам зайти при устаревшей версии карты. В вики упомянут и новый формат cfg/srcds_workshop_ids.txt (версия 2026.09.22 и новее): см. страницу «Workshop for Dedicated Servers». О загрузках на стороне игроков — инструмент «Менеджер коллекции Workshop».
./srcds_run -game garrysmod -console +maxplayers 32 +gamemode sandbox +map gm_construct \
+host_workshop_collection 123456789 \
+sv_setsteamaccount YOUR_GSLT_TOKENОткрываемые порты и брандмауэр Linux (ufw)
Это стандартные значения серверов Source (на изученной странице вики Facepunch их нет). Игровой порт меняется параметром -port N в строке запуска. Аддоны Workshop скачиваются через Steam: дополнительных портов на стороне игрока не документировано.
Открывайте только необходимое и проверяйте с другого подключения (не с самого сервера).
- 27015/udp: игра (порт Source по умолчанию)
- 27015/tcp: RCON
- 27005/udp: связь с клиентом
- 27020/udp: SourceTV (необязательно)
sudo ufw allow OpenSSH
sudo ufw allow 27015/udp
sudo ufw allow 27015/tcp
sudo ufw allow 27005/udp
sudo ufw allow 27020/udp
sudo ufw enable
sudo ufw statusБрандмауэр Windows (netsh)
В командной строке администратора создайте входящее правило для каждого порта (или откройте «Брандмауэр Защитника Windows в режиме повышенной безопасности»).
netsh advfirewall firewall add rule name="Garry's Mod 27015 UDP" dir=in action=allow protocol=UDP localport=27015
netsh advfirewall firewall add rule name="Garry's Mod 27015 TCP" dir=in action=allow protocol=TCP localport=27015
netsh advfirewall firewall add rule name="Garry's Mod 27005 UDP" dir=in action=allow protocol=UDP localport=27005
netsh advfirewall firewall add rule name="Garry's Mod 27020 UDP" dir=in action=allow protocol=UDP localport=27020Брандмауэр провайдера и проброс портов (роутер)
У хостера (OVH, Hetzner, Scaleway…) откройте те же порты и в брандмауэре или «security group» провайдера: ufw недостаточно, если есть внешний брандмауэр. Дома настройте на роутере проброс (NAT) каждого порта на локальный IP машины (статический или зарезервированный по DHCP).
Проверка: с другого подключения добавьте сервер как «IP:порт» в браузере серверов Garry's Mod или в консоли. Если не выходит, проверьте по порядку: запущена ли служба, локальный брандмауэр, брандмауэр провайдера, NAT.
Автозапуск: служба systemd
Создайте /etc/systemd/system/gmod.service (от root) и включите его. Подставьте своего пользователя и пути; логи — journalctl -u gmod -f.
[Unit]
Description=Garry's Mod dedicated server
After=network-online.target
Wants=network-online.target
[Service]
User=steam
WorkingDirectory=/home/steam/gmodds
ExecStart=/home/steam/gmodds/srcds_run -game garrysmod -console -norestart +maxplayers 32 +gamemode sandbox +map gm_construct +sv_setsteamaccount YOUR_GSLT_TOKEN
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
# then:
# sudo systemctl daemon-reload
# sudo systemctl enable --now gmodWindows: задача планировщика при запуске
В Windows задача планировщика запускает ваш .bat при старте системы (выполните команду в командной строке администратора).
schtasks /Create /TN "Garry's Mod server" /TR "C:\gmodds\start-gmod.bat" /SC ONSTART /RU SYSTEM /RL HIGHESTОбновления, резервные копии и плановые перезапуски
Останавливайте службу перед обновлением (та же команда SteamCMD, что и при установке), регулярно делайте бэкап конфигурации и данных и планируйте ежедневный перезапуск, если сервер со временем деградирует.
sudo systemctl stop gmod
steamcmd +force_install_dir /home/steam/gmodds +login anonymous +app_update 4020 validate +quit
sudo systemctl start gmod
# backup
tar czf ~/gmod-$(date +%F).tar.gz -C /home/steam/gmodds garrysmod/cfg garrysmod/data garrysmod/addons
# daily restart at 05:00 (root crontab: sudo crontab -e)
0 5 * * * systemctl restart gmodДобавление и поиск сервера
Добавьте сервер на https://game-rank.com/jeux/garrys-mod, чтобы его увидело сообщество. В игре ищите его в браузере серверов или подключайтесь напрямую по IP:порт.
Устранение неполадок: частые ошибки
- Клиенты зависают на загрузке или «missing content»: аддоны не переданы игрокам. Решение: добавьте ID в workshop.lua (resource.AddWorkshop) или задайте sv_downloadurl (FastDL) и проверьте, что коллекция публичная.
- Сервер не виден снаружи: служба работает, но никто не может подключиться. Причина: закрыт порт (ufw, брандмауэр провайдера или нет NAT). Решение: откройте перечисленные порты на всех трёх уровнях и проверьте с другого подключения.
- Порт занят при запуске: порт удерживает другой экземпляр. Решение: посмотрите процессы командой ss -lunp | grep 27015, остановите старый экземпляр или задайте каждому серверу свой порт через -port.
- SteamCMD «Failed to install app» или зависшая загрузка: частая причина — заполненный диск или нехватка прав на папку. Решение: проверьте df -h и владельца папки, затем повторите команду с validate (при необходимости несколько раз).
- srcds_run: «No such file or directory» или нет 32-битной библиотеки: сервер Source — 32-битная программа. Решение: включите архитектуру i386 (dpkg --add-architecture i386) и установите lib32gcc-s1 и lib32stdc++6.
Частые вопросы
- Обязателен ли токен GSLT?
- Вики Facepunch указывает, что +sv_setsteamaccount обязателен, а без него рейтинг сервера понижается. Для создания токена используйте AppID 4000.
- Как сменить режим игры (DarkRP, TTT…)?
- Параметром +gamemode <папка> в строке запуска; папка находится в garrysmod/gamemodes/ или в gamemodes/ аддона. Можно также изменить переменную gamemode и затем сменить карту.
- Можно ли запускать сервер от root?
- Не рекомендуется: создайте отдельного пользователя (например, steam) без прав администратора и устанавливайте и запускайте сервер от него. Тогда уязвимость сервера или плагина не скомпрометирует всю машину.
- Мой сервер Garry's Mod не отображается в списке: что проверить?
- Сначала проверьте, что порты открыты на всех уровнях, сервер не в режиме LAN (sv_lan 0) и, если игра требует, указан действительный токен сервера (GSLT). Список Steam может обновляться несколько минут; пока подключайтесь по IP:порт.
