Pterohost docs

GMod: RCON и удалённое управление сервером

Настройка RCON в Garry's Mod: rcon_password, подключение через консоль и клиенты, команды управления, безопасность и отличие от ULX-админки.

Кратко: RCON - стандартный механизм Source Engine для удалённого управления GMod-сервером через консоль. Задайте rcon_password в server.cfg, подключитесь через встроенную консоль игры или отдельный клиент, и вы получаете полный контроль без SSH и без открытия дополнительных портов.

GMod: RCON и удалённое управление сервером

RCON (Remote CONsole) существует в Source Engine с эпохи Half-Life 2 и в 2026 году остаётся самым надёжным способом удалённо управлять Garry’s Mod сервером. В отличие от игровых аддонов вроде ULX, RCON работает на уровне движка - он не зависит от загруженных аддонов, не ломается при обновлениях GMod и не требует, чтобы администратор был подключён к серверу как игрок. Достаточно сетевого доступа к игровому порту и правильно настроенного пароля. В этой статье разберём полную настройку RCON: от строчки в конфиге до автоматизации плановых задач и защиты от перебора паролей.

Pterohost - хостинг Garry’s Mod серверов с защитой от DDoS-атак, NVMe-дисками и поддержкой 24/7. Промокод 4START даёт -20% на первый заказ. Заказать Garry’s Mod сервер

Что такое RCON и как он работает

RCON - это бинарный TCP-протокол, описанный Valve. Клиент устанавливает соединение с тем же портом, на котором работает игровой сервер (по умолчанию 27015), аутентифицируется паролем и затем отправляет консольные команды в виде пакетов. Сервер выполняет команды так же, как если бы вы набирали их в серверной консоли напрямую, и возвращает текстовый ответ.

Принципиальная схема работы:

Клиент (консоль/утилита)  --->  TCP:27015  --->  GMod-сервер
     SERVERDATA_AUTH (пароль)
     SERVERDATA_EXECCOMMAND (команда)
     <---  SERVERDATA_RESPONSE_VALUE (ответ)

Один порт - для игры и для RCON. Отдельный порт открывать не нужно. Если сервер доступен игрокам, RCON-порт тоже открыт - и это важно учитывать при настройке безопасности.

Ограничения RCON

  • Максимальный размер одного ответного пакета - 4096 байт. Длинный вывод (например, cvarlist) возвращается по частям или обрезается в зависимости от клиента.
  • RCON не поддерживает подписку на события в реальном времени - только запрос-ответ.
  • RCON не заменяет игровой Lua-API: через него нельзя вызвать произвольный Lua-код без дополнительных конфигурационных переменных.

Настройка rcon_password в server.cfg

Основная настройка RCON делается в файле server.cfg, который находится в директории garrysmod/cfg/ на сервере. Если файла ещё нет - создайте его.

Минимальная конфигурация:

// garrysmod/cfg/server.cfg

rcon_password "NvMe_Str0ng#2026"   // пароль RCON, обязательно непустой

Дополнительные переменные, влияющие на RCON:

sv_rcon_maxfailures 5          // блокировать IP после N неудачных попыток
sv_rcon_minfailuretime 30      // окно для подсчёта неудач (секунды)
sv_rcon_banpenalty 60          // длительность блокировки IP (секунды)
sv_rcon_log 1                  // логировать RCON-команды в консоль сервера
ПеременнаяПо умолчаниюНазначение
rcon_password"" (отключён)Пароль для аутентификации
sv_rcon_maxfailures10Неудачных попыток до бана IP
sv_rcon_minfailuretime30Окно подсчёта неудач (сек)
sv_rcon_banpenalty60Длительность бана IP (сек)
sv_rcon_log0Логировать команды в консоль

После изменения server.cfg нужно перезапустить сервер или выполнить в консоли команду exec server.cfg, чтобы изменения применились без полного рестарта.

Пустой rcon_password "" полностью отключает RCON - клиент получит отказ аутентификации. Это безопаснее, чем слабый пароль, если RCON-доступ вам не нужен.

Подключение через консоль GMod (клиент)

Самый простой способ управлять сервером по RCON - встроенная консоль игрового клиента Garry’s Mod. Откройте консоль клавишей ~ и выполните:

rcon_address <IP-сервера>:<порт>
rcon_password "NvMe_Str0ng#2026"
rcon status

Первые две команды задают адрес и пароль. После этого каждая команда с префиксом rcon будет выполнена удалённо. Например:

rcon status                     // статус сервера
rcon maps *                     // список карт
rcon changelevel gm_flatgrass   // смена карты
rcon kickid 42 "AFK"            // кик игрока по userid
rcon ban 42 60 "Cheating"       // бан игрока на 60 минут
rcon sv_cheats 1                // включить читы
rcon exec myconfig              // выполнить конфиг-файл

Важный нюанс: в клиентской консоли GMod не всегда отображается полный ответ от сервера из-за ограничения размера пакета. Для большого вывода лучше использовать отдельные RCON-клиенты.

Подключение через RCON-клиенты

Для серьёзной работы с сервером рекомендуется использовать специализированные RCON-клиенты - они показывают полный вывод команд и удобнее для частого использования.

RCON-консоль через командную строку: rcon-cli

rcon-cli - кросс-платформенная утилита с открытым исходным кодом, работающая на Windows, Linux и macOS.

Установка на Linux:

curl -sL https://github.com/gorcon/rcon-cli/releases/latest/download/rcon-0.10.3-amd64_linux.tar.gz | tar xz
mv rcon /usr/local/bin/

Базовое использование:

rcon -a 45.11.16.73:27015 -p "NvMe_Str0ng#2026" "status"
rcon -a 45.11.16.73:27015 -p "NvMe_Str0ng#2026" "changelevel gm_construct"

Интерактивный режим (сессия RCON):

rcon -a 45.11.16.73:27015 -p "NvMe_Str0ng#2026" -i
> status
> maps *
> exit

Конфигурационный файл rcon.yaml (чтобы не вводить IP и пароль каждый раз):

address: "45.11.16.73:27015"
password: "NvMe_Str0ng#2026"
type: "rcon"

После создания файла в рабочей директории достаточно команды:

rcon "changelevel ttt_minecraft_b5"

RCON-консоль через Python

Для скриптовой автоматизации удобна библиотека rcon для Python 3:

pip install rcon

Пример скрипта для плановой смены карты:

from rcon.source import Client

HOST = "45.11.16.73"
PORT = 27015
PASSWORD = "NvMe_Str0ng#2026"

with Client(HOST, PORT, passwd=PASSWORD) as client:
    response = client.run("status")
    print(response)
    
    # Смена карты
    client.run("changelevel gm_construct")

Графические RCON-клиенты

Если командная строка неудобна, есть графические варианты:

  • ARCC (Another RCON Client) - веб-интерфейс для Source-серверов, запускается локально.
  • Sourcemod’s SM RCON - если на сервере установлен SourceMod, через его RCON-утилиту удобно работать с конфигами.
  • RCon Toolbox - настольное приложение для Windows с историей команд и сохранёнными профилями серверов.

Основные команды управления сервером через RCON

Через RCON доступны все серверные конвары и команды Source Engine. Вот наиболее полезные для администрирования GMod-сервера:

Управление игроками

status                          // список игроков: SteamID, IP, ping, userid
users                           // краткий список игроков
kickid <userid> "<причина>"     // кик по userid из status
ban <userid> <минуты> "<причина>"  // временный бан (0 = навсегда)
banid <steamid> <минуты>        // бан по SteamID
removeid <steamid>              // снять бан по SteamID
writeid                         // сохранить список банов в banned_user.cfg

Управление картой и режимом

changelevel <карта>             // смена карты
map <карта>                     // смена карты (аналог changelevel)
maps *                          // список всех доступных карт
gamemode <режим>                // смена геймода (нужен relog)

Управление сервером

sv_password "<пароль>"         // установить/снять пароль сервера
sv_maxplayers <число>          // максимум игроков
sv_cheats 0/1                  // включить/отключить читы
exec <файл>                    // выполнить конфиг (без .cfg)
heartbeat                      // принудительная регистрация на мастер-сервере
quit                           // завершить работу сервера

Диагностика

cvarlist                        // все конвары (вывод большой)
find <подстрока>                // поиск конваров по названию
net_status                      // сетевая статистика
stats                           // CPU, память, FPS сервера

Безопасность RCON

RCON - мощный инструмент, но при неправильной настройке он превращается в уязвимость. Разберём реальные угрозы и способы защиты.

Выбор надёжного пароля

Слабый пароль - главная угроза. Подбор по словарю через RCON занимает минуты. Требования к паролю:

  • Минимум 20 символов
  • Буквы в разных регистрах, цифры, спецсимволы
  • Не использовать слова из словаря, названия игр, даты

Хороший пример: K9!qWm#2Lp$Xv7@nZe3

Защита через фаервол

Самый надёжный способ ограничить доступ к RCON - разрешить подключение только с доверенных IP-адресов на уровне ОС. На Linux с iptables:

# Разрешить игровой трафик всем
iptables -A INPUT -p udp --dport 27015 -j ACCEPT

# Разрешить RCON только с вашего IP
iptables -A INPUT -p tcp --dport 27015 -s 1.2.3.4 -j ACCEPT

# Запретить RCON с остальных
iptables -A INPUT -p tcp --dport 27015 -j DROP

На хостинге Pterohost управление фаерволом доступно через панель - можно настроить правила для каждого сервера отдельно без SSH-доступа к хосту.

Встроенная защита от перебора

Source Engine имеет встроенный механизм блокировки IP при множестве неудачных попыток. Настройте его жёстко:

sv_rcon_maxfailures 3
sv_rcon_minfailuretime 60
sv_rcon_banpenalty 3600

Эти настройки заблокируют IP на час после 3 неудачных попыток за 60 секунд.

Логирование RCON-команд

Включите логирование всех RCON-команд - это позволит отслеживать несанкционированный доступ:

sv_rcon_log 1
log on
logaddress_add 127.0.0.1:8000   // опционально: отправка логов на внешний сервер

Логи содержат IP-адрес, выполненную команду и время. При подозрительной активности это поможет быстро найти источник.

Ротация паролей

Раз в несколько месяцев меняйте rcon_password. При компрометации пароля смена мгновенно лишает злоумышленника доступа:

# Быстрая смена через RCON (если вы ещё подключены)
rcon "rcon_password NewSecurePassword2026"

Не забудьте обновить пароль и в server.cfg - иначе после перезапуска сервера вернётся старый.

Автоматизация через RCON

RCON удобен для автоматизации рутинных задач: плановые перезапуски, ротация карт, бэкапы.

Плановый перезапуск через cron

На Linux-сервере (или через SSH на хост) можно настроить cron-задачу, которая будет перезапускать сервер каждую ночь:

# crontab -e
# Перезапуск GMod-сервера в 4:00 каждую ночь
0 4 * * * /usr/local/bin/rcon -a 127.0.0.1:27015 -p "PASSWORD" "quit" && sleep 5 && systemctl restart gmod-server

Автоматическая смена карты по расписанию

#!/bin/bash
# map_rotation.sh

RCON="/usr/local/bin/rcon -a 127.0.0.1:27015 -p 'PASSWORD'"
MAPS=("gm_flatgrass" "gm_construct" "gm_bigcity" "ttt_minecraft_b5")
HOUR=$(date +%H)

# Выбрать карту по часу (простой пример)
INDEX=$((HOUR % ${#MAPS[@]}))
$RCON "changelevel ${MAPS[$INDEX]}"

Python-скрипт для мониторинга и рестарта

import subprocess
import time
from rcon.source import Client

def check_and_restart(host, port, password):
    try:
        with Client(host, port, passwd=password, timeout=5) as client:
            response = client.run("stats")
            # Парсим FPS сервера
            for line in response.split("\n"):
                if "fps" in line.lower():
                    fps = float(line.split()[-1])
                    if fps < 5:
                        print(f"Критически низкий FPS: {fps}. Перезапуск...")
                        client.run("quit")
    except Exception as e:
        print(f"Сервер недоступен: {e}")
        # Логика перезапуска через systemctl/pterodactyl API

while True:
    check_and_restart("127.0.0.1", 27015, "PASSWORD")
    time.sleep(60)

RCON и SourceMod/ULX: различия и совместимость

Один из частых вопросов: зачем использовать RCON, если есть ULX или SourceMod? Разница принципиальная.

Когда использовать RCON

  • Управление сервером до загрузки аддонов (ранние этапы старта)
  • Системное администрирование: смена карты, перезапуск, диагностика
  • Автоматизация через скрипты и внешние инструменты
  • Доступ при сбое аддонов (ULX не загрузился, Lua-ошибки)
  • CI/CD-пайплайны и деплой обновлений

Когда использовать ULX/SourceMod

  • Управление правами игроков и ролями (группы, привилегии)
  • Игровые команды: спавн, телепорт, бессмертие, god mode
  • Интерфейс модерации прямо в игре (команды в чате)
  • Правила и логика, специфичная для геймода

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

RCON и ULX отлично работают вместе. Через RCON можно вызвать ULX-команды, если они зарегистрированы как серверные конвары:

rcon ulx ban "PlayerName" 60 "Cheating"
rcon ulx kick "PlayerName" "AFK"
rcon ulx map gm_flatgrass

Важно: ULX-команды через RCON выполняются без проверки прав ULX - с правами “хоста сервера”. Это нормально для автоматизации, но означает, что RCON-доступ равен правам супер-администратора.

Отладка проблем с RCON

RCON не отвечает

Чаще всего причина - пустой rcon_password. Проверьте:

grep rcon_password garrysmod/cfg/server.cfg

Если строки нет или пароль пустой - добавьте и перезапустите сервер.

”Bad RCON password”

Пароль указан неверно в клиенте. Убедитесь, что:

  • Нет лишних пробелов в начале и конце пароля
  • Кавычки не экранируются неожиданно (в shell-скриптах используйте одинарные кавычки или \)
  • Пароль в server.cfg обновился после правки (выполнили exec server.cfg или рестарт)

“You have been banned from this server”

IP попал в RCON-банлист из-за слишком многих неудачных попыток. Чтобы снять блокировку, выполните в серверной консоли напрямую или через SSH:

sv_rcon_whitelist_address <ваш IP>

Или перезапустите сервер - RCON-баны не сохраняются между сессиями.

Обрезанный вывод команд

Если ответ обрезается - используйте rcon-cli в интерактивном режиме или Python-библиотеку rcon, которые корректно собирают многопакетные ответы. Встроенная консоль GMod-клиента не всегда обрабатывает их правильно.

Связанные материалы

Для полноценного администрирования GMod-сервера изучите также оптимизацию производительности GMod-сервера - там разобраны конвары, влияющие на тикрейт и нагрузку. Если вы администрируете TTT-сервер, рекомендуем полный гайд по настройке TTT с разбором специфичных для режима команд и конфигов. Если вы только начинаете и ещё не собрали сервер - сборка GMod-сервера с нуля поможет выстроить правильную архитектуру с первого раза.

Заключение

RCON в Garry’s Mod - это не сложно, но требует аккуратной настройки. Задайте надёжный rcon_password, ограничьте доступ к порту по IP, включите логирование и встроенную защиту от перебора - и получите инструмент, который будет работать стабильно годами. Для разовых задач достаточно консоли GMod-клиента или rcon-cli. Для автоматизации и мониторинга используйте Python-скрипты через библиотеку rcon. ULX и RCON не конкурируют - они решают разные задачи и отлично работают в паре. Главное правило: RCON-доступ равен полным правам на сервер, поэтому безопасность пароля - это безопасность всего сервера.

Pterohost - игровой хостинг с защитой от DDoS-атак, быстрыми NVMe-дисками и поддержкой 24/7: вы управляете сервером через RCON или панель, мы обеспечиваем стабильную работу. Промокод 4START даёт -20% на первый заказ. Заказать Garry’s Mod сервер