Перейти к основному содержимому

Интеграция игрового сервера через RCON

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


Перед началом интеграции убедитесь, что ваш сервер запущен и имеет доступ в Интернет.

Настройка Minecraft Java Edition сервера

Чтобы включить RCON на сервере Java Edition, нужно внести некоторые изменения в файле server.properties. Файл находится в корне вашего сервера

Файл

server.properties

enable-rcon=true
rcon.port=<порт>
rcon.password=<password>
rcon.ip=0.0.0.0

enable-rcon — включает/выключает RCON.
rcon.port — порт, на котором будет работать RCON (не должен быть равен параметру server-port). Чаще всего равен 25575.
rcon.password — RCON пароль (используйте сложные пароли, чтобы их не взломали); rcon.ip — IP-адрес, на котором работает RCON (укажите 0.0.0.0).

к сведению

Если каких-то параметров нет в настройках server.properties, добавьте их вручную.

Когда вы настроили эти парамеры, можно приступить к созданию виртуального сервера в панели управления EasyDonate.

Создание сервера

  • В поле Адрес сервера укажите хост вашего игрового сервера. Это может быть как домен, так и IP-адрес, который вам предоставил хостинг-провайдер.
  • В поле Порт сервера укажите порт, по которому подключаются ваши игроки (обычно 25565).
  • В поле Rcon адрес можно указать 0.0.0.0 или хост вашего игрового сервера.
  • В поле Rcon порт укажите значение rcon.port из файла server.properties.
  • В поле Rcon пароль укажите значение rcon.password из файла server.properties.

На этом интеграция закончена. Для тестирования покупки вы можете активировать Тестовый режим в настройках вашего магазина и попробовать совершить покупку. Также в панели управления EasyDonate есть встроенная RCON консоль для тестирования команд.

Если после тестирования EasyDonate сообщает об отсутствии RCON соединения, посмотрите Возможные проблемы.

Обязательно прочитайте подраздел про безопасность, чтобы повысить защиту вашего сервера.

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

По умолчанию RCON порт всегда открыт. Это может быть небезопасно и стать причиной взлома сервера. Как правило, взлом осуществляется путем многократного подбора пароля. Защититься можно несколькими способами:

Настройка файрвола (высокая защита)

Файрвол используется для настройки сетевых ограничений на сервере. В Linux существует утилита iptables.

Через iptables

# Устанавливаем iptables
sudo apt-get install iptables iptables-persistent

# Разрешаем входящие подключения на порт <rcon.port> только для 186.2.171.43
sudo iptables -A INPUT -p tcp --dport <rcon.port> -s 186.2.171.43 -j ACCEPT

# Закрываем <rcon.port> для других IP-адресов
sudo iptables -A INPUT -p tcp --dport <rcon.port> -j DROP

Замените <rcon.port> на порт, установленный в server.properties (без угловых скобок). В качестве источника указан 186.2.171.43 — IP-адрес EasyDonate, который отправляет запросы через RCON.

После полной перезагрузки VDS/VPS/Dedicated сервера правила будут удалены. Чтобы сохранить их, используйте команду:

sudo netfilter-persistent save

Если нужно разрешить другим IP-адресам доступ через RCON, используйте команду:

iptables -A INPUT -p tcp --dport <rcon.port> -s <ip> -j ACCEPT

Для панельных хостингов

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

Используйте длинный пароль минимум от 20 символов (средняя защита)

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

Рекомендуемые онлайн-сервисы:

Используйте нестандартный RCON порт на VDS/VPS/Dedicated (слабая защита)

По умолчанию в Minecraft серверах RCON порт равен 25575. Используйте, например, порт 53482.

В совокупности все эти методы дадут надежную защиту, устойчивую ко взломам.

Возможные проблемы

В ходе интеграции могут возникнуть некоторые сложности. Собрали наиболее частые проблемы в этом подразделе:

Сервер не перезагружен

После обновления файла server.properties сервер нужно перезагрузить, чтобы изменения вступили в силу.

RCON порт недоступен

Если у вас панельный хостинг (специально настроенный сервер под Minecraft с доступом к файлам через браузер), в качестве RCON порта нужно вбырать выделенный отдельный порт. Обычно, все доступные порты находятся во вкладке Порты хостинга. Найдите неосновной порт и укажите его в rcon.port.

Также RCON порт может быть заблокирован файрволом, если вы используете VDS/VPS или выделенный сервер.

RCON порт совпадает с портом для входа на сервер (Java Edition)

На серверах Minecraft Java Edition параметр rcon.port должен отличаться от server.port в конфигурационном файле. RCON порт должен работать на отдельном порте, отличным от основного.

RCON порт занят другим процессом

Проверьте, что rcon.port, указанный в server.properties свободен и не занят другим процессом. В Linux это можно сделать так:

$ netstat -tulnp | grep <rcon.port>

Если RCON порт занят другим процессом, выберите другой порт.

Connection refused / Подключение отклонено

Причины:

  • RCON не включен в настройках сервера;
  • неправильный порт;
  • файрвол или антивирус блокируют подключение;
  • сервер не запущен или "висит".

Решение:

  • проверьте server.properties: enable-rcon=true;
  • убедитесь, что порт, указанный в rcon.port, свободен и не занят другим процессом;
  • отключите файрвол на время теста;
  • перезапустите сервер.

Authentication failed / Неверный пароль

Причины:

  • неправильный пароль RCON;
  • используются специальные символы в пароле, которые могут некорректно обрабатываться.

Решение:

  • проверьте пароль в server.properties (без лишних пробелов!);
  • используйте простой пароль без специальных символов для теста;
  • полностью перезагрузите сервер после смены пароля.

Команды отправляются, но не выполняются

Причины:

  • неправильный синтаксис команд;
  • ограничения прав RCON (со стороны плагинов);
  • cервер перегружен и не успевает обрабатывать команды.

Решение:

  • проверьте команды в ручной консоли сервера;
  • убедитесь, что RCON имеет достаточные права (например, для выполнения команд плагина CMI) в конфигах плагинов;
  • проверьте загрузку CPU и память сервера.

Нестабильное соединение, разрывы

Причины:

  • плохое интернет-соединение;
  • cервер перезагружается или "лагает".

Решение:

  • проверьте стабильность интернет-соединения;
  • мониторьте производительность сервера.

Проблемы с совместимостью

Причины:

  • разные версии протокола RCON;
  • особенности реализации RCON в разных сборках серверных ядер.

Решение:

  • используйте актуальную версию серверного ядра;
  • для нестандартных сборок ищите специализированные плагины.

Инструкции от хостинг-провайдеров

Некоторые хостинг-провайдеры подготовили статьи для интеграции с EasyDonate через RCON. С удовольствием делимся с вами: