- Готовы ли вы настроить стабильный, безопасный сервер Garry's Mod с низкой задержкой?
- Выбор подходящего местоположения и плана
- Предварительные условия и подготовка системы
- Скачайте и установите SRCDS с помощью SteamCMD.
- Конфигурация сервера — файл server.cfg и параметры выполнения.
- Запуск сервера в качестве службы systemd.
- Межсетевой экран, порты и сетевая безопасность
- Оптимизация производительности и снижение пинга.
- Управление модами, Мастерская и автоматизация загрузок.
- Автоматические обновления и резервное копирование
- Мониторинг, ведение журналов и техническое обслуживание.
- Практические советы для менеджеров и специалистов по DevOps.
- Краткое изложение и общие рекомендации
Готовы ли вы настроить стабильный, безопасный сервер 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
EOFsudo 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 для достижения наилучшей производительности.









