Полное руководство по настройке онлайн-сервера для игры Garry's Mod.
В этой статье представлено пошаговое руководство по настройке онлайн-сервера для игры Garry's Mod как для администраторов серверов, так и для игроков.

Полное руководство по настройке онлайн-сервера для игры Garry's Mod.

В этой статье представлено пошаговое руководство по настройке онлайн-сервера для игры Garry's Mod. В неё включены советы по выбору подходящего местоположения, установке и настройке SRCDS, параметрам безопасности, а также оптимизации пинга и аппаратных ресурсов.
0 Акции
0
0
0
0

Готовы ли вы настроить стабильный, безопасный сервер Garry's Mod с низкой задержкой?

Это пошаговое руководство для администраторов серверов, геймеров и команд DevOps объясняет полный процесс настройки сервера Garry's Mod (SRCDS) с помощью SteamCMD. В этой статье рассматриваются выбор подходящего местоположения, установка и настройка SRCDS, параметры безопасности, такие как RCON и брандмауэр, пинг и оптимизация оборудования, управление мастерской, автоматизация обновлений и резервного копирования, а также практические советы по обслуживанию и мониторингу.

Выбор подходящего местоположения и плана

Выбор местоположения очень важен для Garry's Mod, поскольку качество игры зависит от пинга. Для игроков из конкретной страны выберите ближайший дата-центр: Европа (Франкфурт/Лондон), Северная Америка (Нью-Йорк/Чикаго), Западная Америка (Лос-Анджелес), Азия (Сингапур/Токио), Австралия (Сидней), Бразилия (Сан-Паулу).

Цель приведенного ниже уведомления 80 мс Для приемлемого качества обслуживания и ниже 60 мс Рекомендуется для получения опыта участия в соревнованиях.

Рекомендации по оборудованию основаны на количестве игроков.

  • Небольшая группа (до 12 игроков): 2 виртуальных процессора, 4 ГБ оперативной памяти, SSD, пропускная способность 100 Мбит/с.
  • Средний размер (12–32 игрока): 4 виртуальных процессора, 8-16 ГБ ОЗУ, NVMe SSD, 1 Гбит/с.
  • Крупные проекты (более 32 игроков или ресурсоемкие дополнения): Сервер с 6+ виртуальными процессорами, 32+ ГБ ОЗУ, NVMe, скоростью передачи данных 1–10 Гбит/с и высокой скоростью ввода-вывода.

Используйте выделенные игровые серверы или серверы защиты от DDoS-атак для минимизации задержек и защиты от атак. Используйте CDN для распространения загружаемых файлов (карт, дополнений), чтобы уменьшить потребление полосы пропускания и ускорить загрузку.

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

Рекомендуемая операционная система: Ubuntu 20.04/22.04 Или Debian 11/12. Выполните следующие команды от имени пользователя с правами суперпользователя (sudo), чтобы обновить систему и установить необходимые компоненты.

sudo apt update && sudo apt upgrade -y
sudo apt install -y wget lib32gcc-s1 lib32stdc++6 ca-certificates screen tmux unzip

Если упаковка steamcmd Доступно в резервуарах:

sudo apt install -y steamcmd

В противном случае установите SteamCMD вручную:

sudo mkdir -p /opt/steamcmd
sudo chown $USER:$USER /opt/steamcmd
cd /opt/steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz

Создайте пользователя без прав root для запуска сервера:

sudo useradd -m -s /bin/bash gmod
sudo passwd gmod
sudo mkdir -p /home/gmod/server
sudo chown -R gmod:gmod /home/gmod

Скачайте и установите SRCDS с помощью SteamCMD.

Войдите в систему под учетной записью gmod и запустите SteamCMD, чтобы установить сервер Garry's Mod:

sudo su - gmod
/opt/steamcmd/steamcmd.sh +login anonymous +force_install_dir /home/gmod/server +app_update 4020 validate +quit

Чтобы загрузить элементы Мастерской (например, коллекцию или карту):

/opt/steamcmd/steamcmd.sh +login anonymous +force_install_dir /home/gmod/server +app_update 4020 validate +workshop_download_item 4020 <WORKSHOP_ID> +quit

Для автоматической загрузки коллекции при запуске SRCDS используйте следующие параметры:

+host_workshop_collection <COLLECTION_ID> +host_workshop_authkey <STEAM_WEB_API_KEY>

Конфигурация сервера — файл server.cfg и параметры выполнения.

Поместите базовый конфигурационный файл в указанный путь. /home/gmod/server/garrysmod/cfg/server.cfg Создать или отредактировать. Пример основных настроек:

hostname "My GMod Server"
rcon_password "PUT_A_STRONG_PASSWORD_HERE"
sv_password ""
sv_cheats 0
sv_lan 0
sv_allowdownload 1
sv_allowupload 1
sv_maxrate 30000
sv_minrate 5000
sv_timeout 120
sv_voiceenable 1
sv_pure 0
sv_region 3

Советы по настройке:

  • sv_maxrate и sv_minrate Настройте параметры в зависимости от пропускной способности и количества игроков.
  • Для управления модами и доступа к файлам из коллекция мастерских Используется для автоматической загрузки файлов игроками.

Пример параметра выполнения SRCDS:

cd /home/gmod/server
./srcds_run -game garrysmod +maxplayers 32 +map gm_flatgrass -tickrate 66 -port 27015 +host_workshop_collection <COLLECTION_ID> -autoupdate

Запуск сервера в качестве службы systemd.

Создайте службу systemd для удобного управления и автоматического запуска при загрузке системы. Пример создания файла службы:

sudo tee /etc/systemd/system/gmod.service <<'EOF'
[Unit]
Description=Garry's Mod Server
After=network.target

[Service]
Type=simple
User=gmod
WorkingDirectory=/home/gmod/server
ExecStart=/home/gmod/server/srcds_run -game garrysmod +maxplayers 32 +map gm_flatgrass -tickrate 66 -port 27015
Restart=on-failure
RestartSec=10
LimitNOFILE=100000

[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable gmod.service
sudo systemctl start gmod.service
sudo journalctl -u gmod.service -f

Межсетевой экран, порты и сетевая безопасность

Распространенные порты Garry's Mod / SRCDS:

  • UDP 27015 (игра и запрос)
  • TCP/UDP 27015 (RCON может использовать TCP)
  • UDP 27005 (клиент Steam)

Пример конфигурации с использованием UFW:

sudo ufw allow 27015/tcp
sudo ufw allow 27015/udp
sudo ufw allow 27005/udp
sudo ufw enable

Для защиты от DDoS-атак используйте планы защиты серверов от DDoS-атак, чтобы фильтровать сетевые атаки до того, как они достигнут сервера.

Оптимизация производительности и снижение пинга.

Основные советы по повышению производительности сервера:

  • Чтобы снизить время кругового обзора (RTT), выберите местоположение поближе к игрокам.
  • Используйте SSD/NVMe для сокращения времени загрузки карт и повышения производительности ввода-вывода.
  • Для физических вычислений используйте высокочастотный процессор; GMod во многих случаях работает на одноядерном процессоре.

Настройки ядра сети (пример):

sudo sysctl -w net.core.rmem_max=26214400
sudo sysctl -w net.core.wmem_max=26214400

Кроме того, необходимо сбалансировать параметры sv_maxrate, tickrate и maxplayers в зависимости от ресурсов и количества игроков, а также тестировать ресурсоемкие моды перед их выпуском на сервер.

Управление модами, Мастерская и автоматизация загрузок.

Используйте SteamCMD для добавления модов из Мастерской:

/opt/steamcmd/steamcmd.sh +login anonymous +force_install_dir /home/gmod/server +workshop_download_item 4020 <WORKSHOP_ID> +quit

Предложение: используйте коллекцию и передайте её идентификатор в параметре. +host_workshop_collection Настройте Steam так, чтобы загрузка предметов происходила при работающем сервере.

Для ручной установки дополнений просто скопируйте файлы в указанную папку. garrysmod/addons Вставьте его и перезапустите сервер.

Автоматические обновления и резервное копирование

Простой скрипт для обновления SRCDS:

#!/bin/bash
systemctl stop gmod
/opt/steamcmd/steamcmd.sh +login anonymous +force_install_dir /home/gmod/server +app_update 4020 validate +quit
systemctl start gmod

Добавьте в cron (например, каждый день в 4 утра):

sudo crontab -e
0 4 * * * /home/gmod/update_gmod.sh >> /var/log/gmod_update.log 2>&1

Резервное копирование: из папок garrysmod/maps, garrysmod/addons Регулярно создавайте резервные копии файлов конфигурации. Используйте rsync или снимки облачной инфраструктуры и объектное хранилище (совместимое с S3) для быстрого восстановления.

Мониторинг, ведение журналов и техническое обслуживание.

Вход в систему garrysmod/logs и systemd видны. Используйте logrotate для ротации логов.

Для мониторинга состояния сервера используются такие инструменты, как... Prometheus + Grafana Или Заббикс Рекомендуется отслеживать загрузку ЦП, оперативной памяти, сети и потерю пакетов.

Запланированные перезапуски (например, каждые 6–12 часов) могут уменьшить утечки памяти и проблемы, вызванные дополнениями.

Практические советы для менеджеров и специалистов по DevOps.

  • Для выявления проблем с модами сначала протестируйте обновления на тестовом сервере.
  • Для упрощения смены IP-адресов используйте доменное имя или DNS-сервер; создайте запись типа A для server.example.com.
  • Используйте CDN для загрузки файлов, а балансировщик нагрузки и BGP/Anycast — для обеспечения высокой доступности.

Рекомендации: При увеличении пропускной способности или предоставлении общедоступных услуг используйте разделение файлового трафика между CDN и распределенную архитектуру для снижения нагрузки на серверы и повышения доступности.

Краткое изложение и общие рекомендации

Следуя этому руководству, вы сможете настроить стабильный, безопасный и оптимизированный сервер Garry's Mod, начиная с установки SRCDS с помощью SteamCMD и заканчивая настройкой server.cfg, службы systemd, брандмауэра и защиты от DDoS-атак. Обратите внимание на местоположение, подходящее оборудование и использование CDN для достижения наилучшей производительности.

Для обеспечения минимального пинга наилучшим вариантом будет ближайший к целевым пользователям центр обработки данных (например, Европа: Франкфурт/Лондон, Азия: Сингапур/Токио).
Установить SRCDS можно, создав пользователя без прав root, скачав SteamCMD и выполнив команду +app_update 4020 из SteamCMD.
Включайте RCON только при необходимости, используйте надежные пароли и ограничения доступа по IP-адресу, а также, по возможности, используйте туннель управления или VPN.
Используйте коллекцию и установите её ID на +host_workshop_collection, чтобы Steam автоматически загружал предметы; тестируйте ресурсоёмкие моды перед публикацией.
Рекомендуется регулярно создавать резервные копии папок с картами, дополнениями и файлами конфигурации с помощью rsync или облачного хранилища и сохранять их в объектном хранилище (совместимом с S3).

Вам также может понравиться

Сюжет игры God of War: Ragnarok

В основе сюжета — Кратос, бог войны, и его сын-подросток Атреус, которые сталкиваются с надвигающимся конфликтом Рагнарёк...