MAATRIX GAMES / Блог / RCON: подключение и основные команды

RCON: подключение и основные команды

MAATRIX GAMES

Сервер лежит, а зайти в его консоль нельзя — переустанавливаете панель, теряете вкладку SSH, или вообще управляете с телефона из дома. Знакомая ситуация для любого, кто хоть раз админил сборку не с той машины, где она крутится. RCON решает это ровно для того и придуман: даёт полный доступ к консоли сервера по сети, без физического или SSH-подключения к машине. Разберём, как его включить, чем подключаться и какие команды реально нужны в повседневной работе.

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

RCON (Remote Console) — это протокол удалённого управления игровым сервером через отдельное сетевое соединение, независимое от игрового порта. Изначально появился в играх на движке Quake III, но прижился почти везде: в Source-играх Valve (CS2, Garry's Mod), в Rust, в Minecraft (через встроенный RCON-сервер), в ARK и десятках других тайтлов.

Смысл простой: сервер поднимает отдельный TCP-порт, на который можно подключиться клиентом (консольным или GUI) и отправлять текстовые команды — те же самые, что вы вбили бы в серверную консоль напрямую. Ответ сервера приходит тем же каналом. Никакого доступа к файловой системе, только команды самой игры — но зато полный: смена карты, кик, бан, рассылка, перезапуск, изменение конфига на лету (там где это поддерживается).

Практическая польза:

  • Не нужен доступ к хостингу. Если сервер арендован, панель управления хостера может не давать прямого шелла — RCON работает поверх игрового процесса.
  • Автоматизация. Скрипты, боты в Discord, дашборды мониторинга — всё это дёргает RCON, а не лезет в консоль руками.
  • Быстрая реакция без захода на сервер. Забанить гриферa с телефона за 10 секунд — реальный сценарий, если RCON настроен заранее.

Обратная сторона: RCON-пароль — это ключ от всего сервера. Плохая новость для тех, кто хранит его в открытом виде в публичном конфиге на GitHub (и такое бывает регулярно).

Как включить RCON на сервере

Общий принцип один: в конфиге сервера задаётся порт и пароль для RCON, отдельно от игрового порта. Дальше — нюансы по играм.

Rust — RCON включается параметрами запуска (или в переменных окружения, если сервер в Docker):

+rcon.web 1
+rcon.port 28016
+rcon.password "ваш_сложный_пароль"

Порт RCON у Rust принято брать на 1 выше игрового (игровой 28015 → RCON 28016), но это соглашение, не жёсткое требование — главное, чтобы порт был свободен и открыт в фаерволе.

Source-игры Valve (CS2 и другие) — RCON включается одной строкой в server.cfg:

rcon_password "ваш_сложный_пароль"

Отдельный порт для RCON в Source-играх не нужен — он ходит через тот же UDP/TCP-порт, что и сам сервер, просто с аутентификацией по паролю на уровне протокола.

Minecraft (ванильный сервер / Paper / Spigot) — правится server.properties:

enable-rcon=true
rcon.port=25575
rcon.password=ваш_сложный_пароль

После правки нужен рестарт сервера — RCON поднимается только при старте процесса.

ARK: Survival — тоже через строку запуска или GameUserSettings.ini:

RCONEnabled=True
RCONPort=27020
ServerAdminPassword=ваш_сложный_пароль

Общая грабля во всех играх одна: после смены пароля или порта сервер обязательно нужно перезапустить (или хотя бы перечитать конфиг, если игра это поддерживает) — RCON не подхватывает изменения на лету.

Нужен игровой сервер?

MAATRIX GAMES — 45+ игр, деплой за минуты, DDoS-защита, автобэкапы. Тарифы от 399 ₽/мес.

Создать сервер

Подключение: консольные клиенты и GUI

Самый универсальный инструмент — mcrcon, консольный RCON-клиент с открытым исходным кодом, поддерживающий протокол Source RCON (который используют Rust, CS2, Minecraft и многие другие). Ставится под Windows, Linux и macOS.

Базовый вызов:

mcrcon -H your.server.ip -P 28016 -p ваш_пароль

Это откроет интерактивную RCON-консоль — дальше просто печатаете команды. Можно и без интерактива, сразу с командой:

mcrcon -H your.server.ip -P 28016 -p ваш_пароль "status"

Для одноразовых команд из скриптов (крон-задача рестарта, автобан по списку) такой формат удобнее интерактивного.

Из GUI-вариантов:

  • RustAdmin — специализированный клиент под Rust, с окном чата, списком игроков и горячими командами.
  • Cod4x RCON GUI / SourceMod-панели — для Source-игр, если не хочется консоли.
  • Встроенные RCON-клиенты в панелях управления хостеров — часто самый простой путь, если хостинг это уже предоставляет.

Если у вас Rust с rcon.web 1, там есть встроенная веб-RCON-консоль — заходите по адресу вида http://your.server.ip:28016/паролькаксслуг прямо из браузера, без установки клиента.

Базовые команды: статус и игроки

Команды разные для каждой игры, но набор задач у всех примерно одинаковый. Вот типовой набор.

Статус сервера — кто онлайн, сколько тика, какая карта:

status

Работает в Source-играх и Rust практически одинаково — выводит список игроков со SteamID, пинг, время в игре, текущую карту.

Список игроков отдельной командой (когда status слишком многословный):

players

или в Minecraft:

list

Приватные сообщения / рассылка всем:

say Внимание! Через 10 минут перезагрузка сервера

Работает почти везде одинаково — от Rust до Minecraft (там команда та же say).

Модерация: кик и бан

Тут различия по играм заметнее, поэтому конкретика по каждой.

Rust:

kick "SteamID_или_ник" "причина"
ban add "SteamID" "причина"
ban remove "SteamID"

Source-игры (CS2 и другие на движке Source):

kick "ник или #userid"
banid 0 "SteamID"
addip 0 "IP_адрес"

Обратите внимание: banid с параметром 0 — это бан без ограничения по времени, число можно заменить на количество минут.

Minecraft:

kick ник Причина
ban ник Причина
ban-ip 192.0.2.10
pardon ник

Список банов в Minecraft хранится в banned-players.json и banned-ips.json в корне сервера — иногда проще отредактировать файл напрямую, чем банить по одному через RCON, если нужен массовый бан.

ARK:

BanPlayer SteamID
UnbanPlayer SteamID
KickPlayer SteamID

Совет из практики: если у вас несколько серверов под одной командой модераторов, держите единый список забаненных SteamID где-то отдельно (гуглотаблица, бот) — RCON-баны обычно локальны для конкретного сервера и не синхронизируются между инстансами сами по себе.

Смена карты и управление раундом

Смена карты — вторая по частоте задача после модерации.

Source-игры:

changelevel de_dust2

Список доступных карт можно посмотреть в файле maps/mapcycle.txt (или mapcycle.txt в корне мода) — если карты там нет, changelevel просто выдаст ошибку.

Rust карту на лету не сменить — карта генерируется процедурно при старте сервера, единственный способ — рестарт с новым сидом (+server.seed) или новым файлом карты через параметр +server.levelurl. Это не ограничение RCON, а особенность движка.

Minecraft — понятия "карты" в привычном смысле нет, но можно телепортировать всех на новый спавн:

setworldspawn x y z

или переключить основной мир через плагины (Multiverse и подобные) — это уже не голый RCON, а команда плагина, которую он же и добавляет в список доступных.

Если у вас ротация карт настроена автоматически (например, через топ-10 плагинов для Rust-сервера с функцией рестарта по расписанию), RCON пригодится в первую очередь для внепланового вмешательства — форс-рестарт, если авто-ротация зависла.

Безопасность: почему это критично

RCON даёт полный контроль над сервером — тот, кто знает пароль, может забанить всех админов, снести конфиг командами, слить сервер до нуля игроков за минуту. Утечка RCON-пароля — это не "неприятность", это полная потеря контроля над сервером до момента, пока вы физически не зайдёте на хостинг и не смените пароль через панель.

Базовые правила, которые реально стоит соблюдать:

  • Сложный пароль. Не admin123, не название сервера. Генератор паролей, минимум 16 символов, буквы разных регистров, цифры, спецсимволы.
  • Ограничение по IP. Большинство игр не дают этого из коробки, но фаервол — даёт. Правило iptables/ufw, разрешающее подключение к RCON-порту только с вашего статического IP (или VPN-подсети), закрывает 90% рисков перебора.
sudo ufw allow from 203.0.113.10 to any port 28016 proto tcp
sudo ufw deny 28016/tcp
  • Не публикуйте конфиги с паролями в открытых репозиториях. Банальность, но именно так утекает большинство RCON-паролей — забыли .gitignore для server.cfg.
  • Меняйте пароль после увольнения/ухода админа/модератора. RCON-пароль обычно один на весь сервер, персональных учёток там нет — значит, любой, кто его знал, сохраняет доступ, пока вы не смените.
  • Логируйте RCON-команды, если игра это поддерживает (Source-игры пишут RCON-команды в серверный лог) — полезно, чтобы понять, кто и когда что сделал, если что-то пошло не так.

Если сервер стоит у хостера с готовой панелью управления и встроенным фаерволом (как на большинстве современных площадок аренды игровых серверов), ограничение по IP часто можно настроить прямо в панели, без ручного ufw — стоит проверить это в первую очередь перед тем, как городить что-то на уровне ОС.

Нужен игровой сервер?

MAATRIX GAMES — 45+ игр, деплой за минуты, DDoS-защита, автобэкапы. Тарифы от 399 ₽/мес.

Создать сервер

Частые вопросы

RCON и SSH — это одно и то же?

Нет. SSH даёт доступ к операционной системе сервера целиком (файлы, процессы, установка ПО), RCON — только к консоли конкретной игры. Это разные уровни доступа с разными рисками.

Можно ли использовать RCON без установки клиента?

Да, если игра поддерживает веб-RCON (как Rust с rcon.web 1) — тогда достаточно браузера. Для остальных игр нужен хотя бы консольный клиент вроде mcrcon.

RCON-порт обязательно должен быть открыт наружу?

Нет, и часто лучше наоборот — если вы всегда подключаетесь с одного и того же IP или через VPN, ограничьте доступ фаерволом до этого адреса, а не держите порт открытым всему интернету.

Что делать, если забыл RCON-пароль?

Он хранится в конфиге сервера в открытом виде (не хэшируется) — открываете server.cfg / server.properties / файл параметров запуска и смотрите или меняете прямо там, затем перезапускаете сервер.

RCON работает, если сервер завис или не отвечает игрокам?

Не всегда — если процесс завис намертво, RCON-канал тоже может не отвечать, поскольку он часть того же процесса. В этом случае поможет только рестарт процесса через хостинг-панель или SSH, RCON здесь бессилен.