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_maxfailures | 10 | Неудачных попыток до бана IP |
sv_rcon_minfailuretime | 30 | Окно подсчёта неудач (сек) |
sv_rcon_banpenalty | 60 | Длительность бана IP (сек) |
sv_rcon_log | 0 | Логировать команды в консоль |
После изменения 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 сервер