Плагин для серверов Майнкрафт, который защищает вход от VPN, прокси, выходных узлов Tor и адресов хостингов. Он сверяет IP сразу по нескольким сервисам, учитывает их вес и блокирует подключение только при достаточном числе совпадений — это помогает снизить ложные срабатывания.
Возможности
- Проверяет IP по подключённым сервисам, спискам адресов, ASN, обратной DNS-записи и поведенческим признакам: частым входам с подсети, множеству аккаунтов с одного IP и резкой смене страны.
- Поддерживает блокировку VPN, прокси, хостингов и Tor, а также ограничение входа по странам.
- Белый список имён и IP пропускает игрока до любых проверок, чёрный список блокирует его без запросов к сервисам.
- Сохраняет результаты проверок в кэше, объединяет одновременные запросы для одного IP и отключает временно недоступные сервисы.
- Может доверять постоянным игрокам после заданного числа входов и дней. Это не отменяет ручную блокировку и сбрасывается при обнаружении прокси.
- Игроки Майнкрафт Бедрок через Geyser/Floodgate пропускаются по умолчанию: адрес прокси Geyser часто выглядит как адрес хостинга.
- Режим
detection.dry-run: trueзаписывает предполагаемые блокировки вblocks.log, но не отключает игроков. - Для сети серверов можно хранить кэш, списки и историю в Redis, MySQL, MariaDB, PostgreSQL, SQLite, H2, файлах или памяти. При недоступности хранилища плагин переключается на файловое.
- На Bukkit-сборках при наличии PlaceholderAPI доступны плейсхолдеры со статусом проверки, страной, ASN, провайдером, оценкой риска и счётчиками блокировок.
Команды
Все команды требуют proxyshield.admin. Алиасы: /ps, /antivpn.
/proxyshield info— сведения о режиме проверки, хранилище и списках./proxyshield providers— включённые сервисы, их вес, состояние и задержка./proxyshield stats— статистика блокировок, кэша и проверок./proxyshield check <игрок|ip>— полная проверка с ответами сервисов./proxyshield lookup <игрок|ip>— новая проверка без кэша, включая ASN и оценку./proxyshield whitelist <add|remove|list> [запись]— управление белым списком./proxyshield blacklist <add|remove|list> [запись]— управление чёрным списком./proxyshield refresh— повторная загрузка списков адресов./proxyshield recheck— повторная проверка игроков онлайн с отключением нарушителей./proxyshield clearcache— очистка кэша на текущем сервере и в общей сети./proxyshield reload— перечитывание конфигурации и файла сообщений.
Права
proxyshield.bypass— пропустить все проверки.proxyshield.notify— получать уведомления о блокировках.proxyshield.admin— доступ к командам плагина.
На Paper, BungeeCord и Sponge право proxyshield.bypass при входе игрока определяется только для операторов. Для надёжного исключения используйте белый список имени или IP. На Velocity право работает обычно.
Настройка
Основные параметры находятся в config.yml, а тексты сообщений — в messages_en.yml и messages_de.yml; их можно изменить под свой сервер.
В разделе api.providers задаются сервисы проверки, их weight, ключи и включение. Режим consensus суммирует вес совпавших ответов и сравнивает его с required-score; failover использует первый доступный ответ. Повышение required-score уменьшает риск ошибочно заблокировать обычного игрока, понижение делает фильтр строже.
В detection включаются проверки block-proxy, block-hosting и block-tor; в asn задаются разрешённые и заблокированные сети. Параметры rdns, heuristics, trust, country и notifications управляют DNS-проверкой, поведенческими правилами, доверием, странами и уведомлениями.
Можно добавить собственный сервис проверки без доработки плагина: укажите его url, формат ответа, пути к полям и условия определения прокси или хостинга в config.yml.
Требования
Поддерживаются Paper, Purpur, Pufferfish, Spigot, Folia, BungeeCord, Waterfall, Velocity и Sponge. Устанавливайте один файл плагина на сервер или прокси, который принимает подключение игрока: сервер за BungeeCord видит адрес самого прокси, а не игрока.
Для общего хранилища необходим Redis либо подходящая SQL-база. Если нужного драйвера базы нет на сервере, его файл указывается через storage.sql.driver-path в папке плагина.
