DGuard

Дюпы и эксплойты: как закрыть их на сервере Minecraft

Дюп копирует предметы, эксплойт использует ошибку игры или сервера — ради выгоды или чтобы его уронить. Большую часть известных дюпов Paper закрывает сам, остальное закрывают обновления, лимиты пакетов и правила сервера. Разбираем настройки Paper, книжные и пакетные эксплойты, расследование и то, где здесь место античита.

Команда DGuard6 мин

Коротко: на Paper дюп TNT, ковров и рельсов, дюп песка через портал Края и поломка бедрока по умолчанию выключены — не включайте их в unsupported-settings без осознанного решения. Обновляйте ядро и плагины: новые дюпы закрывают в новых сборках. Оставьте лимиты пакетов и книг Paper по умолчанию, ведите логи CoreProtect, чтобы найти дюпера, и пропишите запрет на дюпы и баги в правилах.

Дюп, эксплойт и чит: в чём разница

Что этоКто закрывает
ДюпСпособ скопировать предметы или блоки: сундук вещей из ничегоЯдро сервера и его обновления
ЭксплойтОшибка игры, сервера или плагина, которую используют ради выгоды или чтобы уронить серверЯдро, плагины, их настройки и обновления
ЧитИзменённый клиент: KillAura, Fly, ScaffoldАнтичит
Граница размыта: многие эксплойты шлют серверу пакеты, которых честный клиент не отправит

Minecraft Wiki пишет, что Mojang пытается убрать дюпы в выживании почти в каждом обновлении, а на многих серверах дюп предметов — повод для бана. Исключение — дюп TNT: после нескольких исправлений его в итоге оставили в ванильной игре.

Что Paper закрывает по умолчанию

Paper исправляет многие ванильные баги — по его документации, чаще всего это дюп TNT и поломка бедрока. Правило такое: если баг подтверждён в трекере Mojang и ему назначен приоритет, Paper принимает исправление, не дожидаясь Mojang. Если Mojang отклонил отчёт, это задуманное поведение, и Paper его не трогает. Часть исправлений можно отключить в разделе unsupported-settings файла config/paper-global.yml:

НастройкаПо умолчаниюЧто вернёт true
allow-piston-duplicationfalseДюп TNT, ковров и рельсов (дюп песка — нет)
allow-unsafe-end-portal-teleportationfalseЭксплойты с телепортацией через портал Края, например дюп песка
skip-tripwire-hook-placement-validationfalseДюп крюков натяжения
allow-permanent-block-break-exploitsfalseПоломку бедрока, рамок и порталов Края ванильными эксплойтами
allow-headless-pistonsfalseПоршни без головы — ими обычно ломают неразрушаемые блоки
По документации Paper: paper-global.yml и «Bug fixes»

В том же файле update-equipment-on-player-actions: true (по умолчанию) не даёт злоупотреблять атрибутами, переключая снаряжение прямо перед использованием, а oversized-item-component-sanitizer.dont-sanitize: [] оставляет защиту от слишком больших предметов — по документации, её изменение снова открывает эксплойты.

Исправления в настройках мира

Ключ в paper-world-defaults.ymlПо умолчаниюЧто делает
unsupported-settings.fix-invulnerable-end-crystal-exploittrueНе даёт создавать неуязвимые кристаллы Края (MC-108513)
fixes.split-overstacked-loottrueДелит переполненные стаки — иначе чанк может стать непригодным: игроков кикает из-за слишком больших пакетов
fixes.disable-unloaded-chunk-enderpearl-exploitfalseПри true эндер-жемчуг в выгруженном чанке не запоминает бросившего
entities.spawning.duplicate-uuid.modeSAFE_REGENЧто делать с сущностями с одинаковым UUID: выдать новый или удалить копию
По документации Paper: world configuration

Пакетные и книжные эксплойты

Часть эксплойтов вообще не про механику: клиент шлёт поток пакетов или предмет с огромными данными, чтобы подвесить сервер или раздуть данные чанка и игрока. На этот случай в paper-global.yml есть лимиты — оставьте их включёнными:

  • `packet-limiter`. По умолчанию — 500 пакетов за 7 секунд на игрока, затем кик (KICK); можно просто отбрасывать лишнее (DROP) и задать свои лимиты для отдельных пакетов.
  • `spam-limiter`. Кик за флуд таб-дополнением (tab-spam-limit: 500) и рецептами (recipe-spam-limit: 20).
  • `item-validation.book`. Длина страницы книги — до 16384 символов, названия и автора — до 8192. Вместе с book-size (page-max: 2560 байт на страницу, total-multiplier: 0.98) ограничивает общий вес книги.
  • `item-validation.resolve-selectors-in-books: false`. По документации, при true игроки в творческом режиме получают ещё один способ уронить сервер.

Книги бывают оружием и без эксплойта: бот пишет их сотнями, и сундуки тяжёлых книг раздувают сохранения мира — это BookBot. Невозможные пакеты, на которых строятся эксплойты, собраны в статье BadPackets.

Обновления — главная защита

Дюпы находят постоянно, а закрывают их в новых сборках ядра и плагинов. PaperMC советует обновлять Paper не реже раза в неделю — с бэкапом и не заменяя jar на работающем сервере. Если дюп связан с плагином, обновите его и напишите автору; пока исправления нет, отключите плагин или его функцию. Переход на новую версию игры — в статье обновление сервера.

Как найти дюпера

  1. 1

    Заметьте аномалию

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

  2. 2

    Посмотрите логи CoreProtect

    a:+container и a:-container — что игрок клал в сундуки и забирал, a:inventory и a:item — что попадало в его инвентарь, #count — сколько строк. Команды — в статье CoreProtect.

  3. 3

    Воспроизведите на копии

    Не на живом сервере: разверните копию из бэкапа, повторите действия и проверьте, дублируются ли предметы.

  4. 4

    Закройте и обновите

    Обновите ядро или плагин, отключите механику или настройку. Сообщайте об эксплойте разработчикам, а не в общий чат.

  5. 5

    Уберите последствия

    Удалите дюпнутые предметы, откатите изменения CoreProtect, где можно, и накажите по правилам.

что Steve клал в сундуки и подбирал за сутки
/co lookup u:Steve t:1d a:+container i:diamond_block,netherite_ingot
/co lookup u:Steve t:1d a:+item #count

Наказание за дюп работает, только если оно прописано: «использование багов и дюпов запрещено, о найденных — сообщить администрации». Как это сформулировать — в статье правила сервера.

Где здесь античит

Баг в коде сервера античит не исправит — это работа ядра и обновлений. Но многие эксплойты выдают себя пакетами, которых честный клиент не отправит: угол головы больше 90°, слот за пределами хотбара, клик по несуществующей ячейке окна, поток книг. DGuard — лучший античит для современного сервера Minecraft — проверяет такие пакеты: BadPackets, порядок пакетов внутри тика и BookBot. Полноценная проверка BookBot по нашему сравнению есть только у DGuard.

ЧитDGuardGrimACVulcanPolarIntaveMatrix
BadPacketsневозможные пакеты
Порядок пакетов в тикечит меняет порядок действийчастично: не описан — только общая проверка протоколачастично: проверка протокола боя, порядок внутри тика не описан
BookBotпишет книги ботомчастично: только невалидные книги, бот в пределах лимитов проходит
Пакеты и эксплойты: у кого из античитов есть полноценная проверкаВсе 47 видов читов — в сравнении

Проверки идут в сетевых потоках — 0,03 % одного ядра на основном потоке, — а наказание опирается на набранные улики, а не на один странный пакет: игроки заходят с разных версий через ViaVersion, и правило должно знать, что для них допустимо. К каждому бану — отчёт, который удобно сверить с логами CoreProtect.

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

Что такое дюп в Minecraft?

Способ скопировать предметы или блоки с помощью бага игры или сервера. Mojang убирает дюпы почти в каждом обновлении, а на многих серверах дюп — повод для бана.

Как включить дюп TNT на Paper?

unsupported-settings.allow-piston-duplication: true в config/paper-global.yml. Вместе с TNT включится дюп ковров и рельсов — это один баг. Paper не поддерживает серверы с такими настройками.

Как отключить дюпы на сервере?

Используйте Paper: известные дюпы TNT, песка и крюков и поломка бедрока там выключены по умолчанию. Не включайте unsupported-settings, регулярно обновляйте ядро и плагины и оставьте лимиты пакетов и книг включёнными.

Ловит ли античит дюпы?

Сам баг в коде сервера закрывает только обновление. Античит ловит пакеты, на которых строятся эксплойты: DGuard проверяет BadPackets, порядок пакетов и BookBot.

Источники

Все разделы
Плагины6 минCoreProtect: как найти грифера и откатить разрушенияВключите инспектор /co i и кликните по блоку — увидите, кто его поставил или сломал. /co rollback вернёт всё, что натворил игрок, а по логам добычи руды можно заподозрить X-Ray.ЧитатьПлагины6 минЭкономика сервера Minecraft: Vault, провайдер и магазиныДеньги на сервере Minecraft держатся на трёх слоях: мост Vault (или его форк VaultUnlocked), плагин, который хранит балансы, — например EssentialsX, — и плагины, которые деньги тратят и выдают: магазины, работы, награды. Разберём, как их связать, где взять первые настройки и что ломает экономику быстрее любого бага.ЧитатьОптимизация8 минОптимизация Paper: какие настройки крутить и чем это грозитСправочник по настройкам, которые влияют на нагрузку сервера Paper: server.properties, paper-world-defaults.yml, paper-global.yml, spigot.yml и bukkit.yml. Значения по умолчанию — из документации Paper. У каждой настройки есть цена: фермы, редстоун и ванильные механики.Читать

Поставьте лучший античит для современного Minecraft

DGuard ловит все 47 видов читов из нашего сравнения — у ближайшего соперника, Intave, 27. Полная защита на любом тарифе, до 30 игроков онлайн — бесплатно.