Перейти к основному содержимому
Вернуться в категорию

Установка сервера Garry's Mod: Руководство по Dedicated Server

Установка выделенного сервера GMod, настройка игровых режимов, аддоны/Workshop коллекции, FastDL, ULX админ мод и оптимизация сервера.

Время чтения: 15 мин. Настройка игровых серверов
garrys-modgmodигровой серверsteamcmddedicated server
Автор
REXE Teknoloji Network & Security Team
Редактор
REXE Teknoloji Technical Editorial
Первая публикация
Последнее обновление

Введение

Garry's Mod (GMod) — это песочница на движке Source Engine, предлагающая безграничные творческие возможности. С игровыми режимами DarkRP, TTT (Trouble in Terrorist Town), Sandbox и многими другими вы можете создать собственный сервер сообщества. В этом руководстве подробно описана установка GMod Dedicated Server на вашем REXE VDS.

Системные требования

РесурсМинимумРекомендуется
CPU2 ядра4+ ядер
RAM4 ГБ8+ ГБ
Диск20 ГБ SSD40+ ГБ NVMe
ОСUbuntu 22.04+Ubuntu 22.04 LTS
Пропускная способность5 Мбит/с10+ Мбит/с

Требования к RAM зависят от количества установленных аддонов и вместимости сервера. Серверы DarkRP обычно требуют больше RAM.

Предварительная подготовка

Подключитесь к серверу по SSH и установите необходимые пакеты:

hljs bash
sudo apt update && sudo apt upgrade -y
sudo apt install -y lib32gcc-s1 lib32stdc++6 wget tar screen

Создайте отдельного пользователя:

hljs bash
sudo adduser gmod --disabled-login --gecos ""
sudo su - gmod

Установка SteamCMD

hljs bash
mkdir -p ~/steamcmd && cd ~/steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xzf steamcmd_linux.tar.gz
rm steamcmd_linux.tar.gz
./steamcmd.sh +quit

Загрузка файлов сервера GMod

hljs bash
~/steamcmd/steamcmd.sh +force_install_dir ~/gmod-server \
  +login anonymous \
  +app_update 4020 validate \
  +quit

App ID 4020 — это Steam ID для Garry's Mod Dedicated Server. Загрузка составляет примерно 4-5 ГБ.

Установка контента CSS

Многие игровые режимы GMod требуют контент CSS:

hljs bash
~/steamcmd/steamcmd.sh +force_install_dir ~/css-content \
  +login anonymous \
  +app_update 232330 validate \
  +quit

Подключите контент CSS к серверу GMod:

hljs bash
nano ~/gmod-server/garrysmod/cfg/mount.cfg
"mountcfg"
{
  "cstrike" "/home/gmod/css-content/cstrike"
}

Получение GSLT токена

GSLT токен необходим для отображения сервера в браузере серверов:

  1. Перейдите на steamcommunity.com/dev/managegameservers
  2. App ID: 4000 (Garry's Mod)
  3. Скопируйте токен

Настройка сервера

server.cfg

hljs bash
nano ~/gmod-server/garrysmod/cfg/server.cfg
hostname "Мой REXE GMod Сервер"
rcon_password "НАДЕЖНЫЙ_ПАРОЛЬ_RCON"
sv_password ""
sv_defaultgamemode "sandbox"
sv_maxrate 0
sv_minrate 100000
sv_maxupdaterate 66
sv_minupdaterate 33
sv_timeout 120
sv_lan 0
sv_allowdownload 1
net_maxfilesize 64
log on

Игровые режимы

РежимОписаниеsv_defaultgamemode
sandboxСвободный режимsandbox
darkrpРолевая играdarkrp
terrortownTTT - Детективная играterrortown
prophuntПряткиprop_hunt
murderТайна убийстваmurder
deathrunПаркур с ловушкамиdeathrun

Скрипт запуска

hljs bash
nano ~/gmod-server/start.sh
hljs bash
#!/bin/bash
cd ~/gmod-server

./srcds_run \
  -game garrysmod \
  -port 27015 \
  -maxplayers 32 \
  +gamemode sandbox \
  +map gm_construct \
  +sv_setsteamaccount GSLT_TOKEN \
  -tickrate 33 \
  +host_workshop_collection ID_КОЛЛЕКЦИИ \
  -authkey STEAM_API_KEY
hljs bash
chmod +x ~/gmod-server/start.sh

Настройка Workshop коллекции

Управление аддонами через коллекции Steam Workshop:

1. Получение Steam API Key

Получите API ключ на steamcommunity.com/dev/apikey.

2. Создание коллекции Workshop

  1. Создайте новую коллекцию в Steam Workshop
  2. Добавьте нужные аддоны
  3. Запишите ID коллекции из URL

3. Добавление на сервер

Для автоматической загрузки на клиенте создайте lua/autorun/server/workshop.lua:

hljs lua
resource.AddWorkshop("ID_АДДОНА_1")
resource.AddWorkshop("ID_АДДОНА_2")
resource.AddWorkshop("ID_АДДОНА_3")

Настройка FastDL

FastDL обеспечивает быструю загрузку пользовательского контента:

hljs bash
sudo apt install nginx -y
sudo nano /etc/nginx/sites-available/fastdl
hljs nginx
server {
    listen 8080;
    server_name IP_СЕРВЕРА;

    location /garrysmod/ {
        alias /home/gmod/gmod-server/garrysmod/;
        autoindex on;
    }
}
hljs bash
sudo ln -s /etc/nginx/sites-available/fastdl /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

Добавьте в server.cfg:

sv_downloadurl "http://IP_СЕРВЕРА:8080/garrysmod/"
sv_allowdownload 1

Установка ULX Admin Mod

hljs bash
cd ~/gmod-server/garrysmod/addons
git clone https://github.com/TeamUlysses/ulib.git
git clone https://github.com/TeamUlysses/ulx.git

После перезапуска сервера в игре:

ulx adduserid STEAM_ID superadmin
ulx ban ИМЯ_ИГРОКА 0 "Причина"
ulx kick ИМЯ_ИГРОКА "Причина"

Настройка портов

ПортПротоколНазначение
27015TCP + UDPИгровой сервер GMod
27005UDPКлиентский порт
27020UDPSourceTV
8080TCPFastDL (опционально)

Path Panel Firewall

Через REXE Path Panel:

  1. GMod UDP: Протокол: UDP, Порт: 27015, Фильтр: Source Engine
  2. GMod TCP: Протокол: TCP, Порт: 27015
  3. Client: Протокол: UDP, Порт: 27005

Автозапуск через systemd

hljs bash
sudo nano /etc/systemd/system/gmod.service
hljs ini
[Unit]
Description=Garry's Mod Dedicated Server
After=network.target

[Service]
Type=simple
User=gmod
Group=gmod
WorkingDirectory=/home/gmod/gmod-server
ExecStart=/home/gmod/gmod-server/start.sh
Restart=on-failure
RestartSec=15
LimitNOFILE=100000

[Install]
WantedBy=multi-user.target
hljs bash
sudo systemctl daemon-reload
sudo systemctl enable gmod
sudo systemctl start gmod

Настройка DarkRP

hljs bash
cd ~/gmod-server/garrysmod/gamemodes
git clone https://github.com/FPtje/DarkRP.git darkrp
cd ~/gmod-server/garrysmod/addons
git clone https://github.com/FPtje/darkrpmodification.git

В server.cfg:

sv_defaultgamemode "darkrp"

Оптимизация сервера

Настройки Tickrate

-tickrate 33    # Стандарт (рекомендуется)
-tickrate 66    # Высокая производительность (требует больше CPU)

Автообновление

hljs bash
nano ~/update_gmod.sh
hljs bash
#!/bin/bash
~/steamcmd/steamcmd.sh +force_install_dir ~/gmod-server +login anonymous +app_update 4020 +quit
hljs bash
chmod +x ~/update_gmod.sh
crontab -e
0 5 * * * /home/gmod/update_gmod.sh >> /home/gmod/update.log 2>&1

Заключение

С выделенным сервером Garry's Mod вы можете создать сервер сообщества с безграничными творческими возможностями. Workshop коллекции, ULX Admin Mod, FastDL и DarkRP выведут ваш сервер на профессиональный уровень. Мощная инфраструктура REXE VDS обеспечивает идеальную производительность для вашего GMod сервера.

Часто задаваемые вопросы

Обязателен ли контент CSS для сервера GMod?

Не обязателен, но многие игровые режимы и карты требуют контент CSS. Без CSS игроки увидят фиолетово-чёрные квадраты (отсутствующие текстуры).

Как создать коллекцию Workshop?

Создайте новую коллекцию в Steam Workshop, добавьте аддоны и используйте ID коллекции в скрипте запуска с параметром +host_workshop_collection.

Что нужно для настройки сервера DarkRP?

Скачайте игровой режим DarkRP с GitHub, установите аддон DarkRP Modification и установите gamemode darkrp в server.cfg.

Что такое FastDL и зачем он нужен?

FastDL позволяет игрокам быстрее загружать пользовательский контент через HTTP при подключении к серверу. Настраивается с помощью Nginx или Apache.

Как установить ULX Admin Mod?

Клонируйте ULib и ULX с GitHub в папку addons. После перезапуска сервера используйте команду ulx adduserid для назначения суперадмина.

Какой tickrate должен быть у сервера GMod?

Для стандартных серверов рекомендуется 33 tickrate. Для соревновательных серверов можно использовать 66 tickrate, но это требует больше ресурсов CPU.

Связанные статьи

Сетевой трафикВходящий GbpsИсходящий Gbps