Защита Hytale-сервера от DDoS-атак

Опубликовано Обновлено 29 мин. чтения

Почему Hytale-серверу нужен ровно один порт, что QUIC меняет в площади атаки, какое правило фильтрации действительно работает и с какого объёма атаки помогает только фильтрация в сети перед сервером.

Hytale-сервер, который вечером посреди игры теряет все соединения одновременно, пару минут недоступен и потом сам собой снова работает, редко страдает от проблем с железом. Обычно идёт атака. В этой статье показано, как защитить Hytale-сервер от DDoS-атак: сначала то, что вы можете настроить сами и без дополнительных расходов, затем место, где эти меры технически заканчиваются, и в конце то, что должно происходить в сети перед сервером, чтобы сервер оставался доступным.

Все указания относятся к официальному выделенному серверу от Hypixel Studios, то есть к HytaleServer.jar вместе с Assets.zip под Java 25, на Debian 12, Debian 13, Ubuntu 22.04 LTS или Ubuntu 24.04 LTS. Команды написаны для root, если вы работаете под обычным пользователем, добавляйте перед командой sudo. Hytale находится в раннем доступе (Early Access) и меняется быстро, поэтому в этой статье каждое утверждение об игре несёт дату, а всё, что официально не подтверждено, прямо обозначено как ожидание или как источник из сообщества. Если атака идёт прямо сейчас, действует ещё и порядок: сначала измерять, потом менять. Жёсткая перезагрузка под нагрузкой отбрасывает всё, что произошло в мире после последней точки сохранения, а измерения инцидента после неё тоже пропадают.

Почему Hytale-серверы целенаправленно выводят из строя DDoS-атаками

Hytale-сервер — это аудитория по фиксированному адресу, и эта аудитория заменима. Тот, кто вечером трижды подряд не попадает на свой привычный сервер, ищет другой. Именно в этом состоит бизнес-модель атак на серверы сообществ: речь не про данные и не про вымогательство, а про игроков, которые уходят. Служба booter, обстреливающая адрес за пару евро в месяц, не требует от заказчика ни умений, ни усилий, а ущерб возникает заново при каждом простое.

К этому у Hytale добавляется особенность: код сервера открыт. Hypixel Studios объявила в июне 2026 года программу Hytale Shared Source и предоставляет через неё полный код сервера, сетевой протокол и ассеты через GitHub, доступ есть у любого владельца действующей лицензии на игру. Для владельцев серверов это выигрыш, потому что плагины пишутся под настоящие интерфейсы. Для атакующей стороны это означает, что протокол больше никому не нужно угадывать. Кто хочет знать, в каком месте установление соединения стоит процессорного времени, может это прочитать. Что при такой атаке происходит технически, объясняет статья Что такое DDoS-атака.

Состояние дел по Hytale на 27 сентября 2026 года

Hytale находится в раннем доступе с 13 января 2026 года, доступен для Windows, macOS и Linux, и в дни после запуска набрал более миллиона игроков. Путь к этому был необычным, и он объясняет, почему более старые статьи о Hytale часто уже не соответствуют действительности.

Дата Событие
13 декабря 2018 года Публичный анонс Hytale
апрель 2020 года Riot Games полностью выкупает Hypixel Studios
23 июня 2025 года Riot Games прекращает разработку и объявляет о закрытии студии
17 ноября 2025 года Основатели Симон Коллинз-Лафламм и Филипп Туше выкупают Hytale обратно, возвращается около 30 разработчиков
1 декабря 2025 года Публикация официальных требований к железу
13 января 2026 года Старт раннего доступа, более миллиона игроков вскоре после него
28 апреля 2026 года Анонс официальных списков серверов вместе с подтверждением домена через TXT-запись
26 мая 2026 года Update 5 приносит список серверов в саму игру
июнь 2026 года Hytale Shared Source: код сервера, протокол и ассеты на GitHub, доступ по действующей лицензии на игру
16 июля 2026 года Первый показ Chapter 1
27 августа 2026 года Patch Notes к Update 6: смена протокола с hytale/2 на hytale/3, адреса серверов в списке серверов по умолчанию скрыты
14 сентября 2026 года Hotfix 0.6.6
24 сентября 2026 года Объявление даты выхода Chapter 1
12 октября 2026 года Запланированный выход Chapter 1

Практическое следствие этой хронологии: Hytale-сервер сегодняшнего дня — это не сервер января. С Update 6 сетевой протокол сменился с hytale/2 на hytale/3, и по официальным Patch Notes от 27 августа 2026 года сервер и плагины нужно собрать заново, прежде чем они смогут соединиться. Поэтому тот, кто планирует свою доступность, планирует не только против атак, но и против смены протокола.

Почему 12 октября 2026 года — критическая дата

Крупные обновления содержимого работают как второй запуск продаж. Они возвращают старых игроков, привлекают новых, и на несколько дней доступность решает, какой сервер сообщества вырастет на этой волне, а какой её упустит. Эта закономерность подтверждена на других играх: Palworld в январе 2024 года за несколько дней набрал миллионы игроков, и серверы сообществ той стартовой фазы атаковали больше всего именно в тот момент, когда им было что терять. Механика за этим подробно описана в статье Защита Palworld-сервера от DDoS-атак и переносится на Hytale один к одному.

Из этого следует неудобная правда о сроках: защита, заказанная 12 октября, это слишком поздно. Канал, защищённый IP-адрес, набор правил по портам и измеренное значение для обычного режима требуют запаса времени, потому что без данных для сравнения их невозможно настроить осмысленно. Кто начинает за две недели до крупного обновления, успевает. Кто начинает в день обновления, настраивает наугад.

Порты, о которых при Hytale-сервере действительно идёт речь

Hytale-серверу нужен ровно один открытый порт: 5520 UDP. Игровой трафик идёт по QUIC, то есть по UDP, а TCP для игрового процесса не нужен. Кто открывает только TCP, видит ту же картину, что и при закрытом файрволе: игроки упираются в истечение времени ожидания. Привязка по умолчанию — 0.0.0.0:5520, другой порт задаётся при запуске через --bind.

Порт Протокол Для чего Как задаётся Нужен ли в открытой сети
5520 UDP весь игровой трафик по QUIC, установление соединения и текущая синхронизация по умолчанию 0.0.0.0:5520, иначе через --bind 0.0.0.0:PORT да, обязательно
5520 TCP для игрового трафика не требуется открывать не нужно нет
22 TCP ваш доступ по SSH к машине системная настройка ограниченно, лучше только из известных сетей
Порты панелей TCP интерфейсы управления, отображение карт, базы данных, которые вы установили дополнительно зависит от программы нет, только через проброс порта по SSH

Эта таблица короче, чем у большинства других игр, и это самое важное отличие. Сервер Counter-Strike отвечает на запросы статуса в формате Steam A2S, сервер Minecraft Bedrock отвечает на Unconnected Ping, сервер Palworld держит открытым собственный порт запросов. Для Hytale в публичной документации кроме 5520 UDP не описан ни один другой порт: ни порта запросов, ни порта RCON, ни REST-интерфейса в состоянии поставки. Всё, что Hytale-сервер предлагает наружу, лежит на одном единственном UDP-порту.

Hytale-сервер в числах

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

Величина Значение Происхождение
Игровой порт 5520 UDP, QUIC официальное указание, подтверждено во всех инструкциях по установке
Идентификатор протокола hytale/3 с Update 6, до этого hytale/2 официальные Patch Notes от 27 августа 2026 года
Потребность в TCP для игрового трафика отсутствует официальное указание
Порт запросов, RCON, REST не задокументированы, в состоянии поставки отсутствуют отсутствие в публичной документации
Файлы сервера HytaleServer.jar и Assets.zip официальное получение через загрузчик Hytale
Среда исполнения Java 25, 64 бита, x64 и arm64 официальное руководство по серверу
Оперативная память 4 ГБ минимум, 6 ГБ рекомендуется, больше с ростом числа игроков и дальности обзора официальное руководство по серверу
Конфигурационные файлы config.json, к ним whitelist.json, bans.json, permissions.json документация сообщества и руководства провайдеров, совпадают
Верхний предел числа игроков ключ MaxPlayers, значение по умолчанию в документации сообщества 100 документация сообщества, официально не подтверждено
Дальность обзора ключ MaxViewRadius, официальная рекомендация не более 12 чанков, то есть 384 блока официальная рекомендация
Полоса на одного игрока 2 Мбит/с минимум, 8 Мбит/с рекомендуется официальные требования к железу от 1 декабря 2025 года
Минимальный размер установления соединения QUIC 1200 байт на датаграмму RFC 9000, раздел 14.1
Предел усиления до проверки адреса не более трёхкратного объёма полученных байт RFC 9000, раздел 8.1
Интенсивность пакетов, заполняющая канал на 1 Гбит/с около 1,49 миллиона пакетов в секунду при размере пакета 64 байта расчёт
Типичный объём атаки против игровых проектов от 5 до 50 Гбит/с опытное значение по играм в целом, не специфичное для Hytale
Отфильтрованные на серверах KernelHost пики 473,4 Гбит/с при 41,5 миллиона пакетов в секунду собственное измерение

Что QUIC меняет в площади атаки

QUIC — это транспортный протокол, который устанавливает защищённые соединения поверх UDP и содержит встроенное согласование шифрования по TLS 1.3. Незашифрованного QUIC не существует. Для владельца сервера это означает две вещи, которые друг другу противоречат, и обе важны.

Первая — это настоящее улучшение. Поскольку UDP не требует установления соединения и адреса отправителей можно подделать, службы поверх UDP без соединения являются классическими усилителями для атак на третьих лиц. QUIC ограничивает это уже в стандарте. RFC 9000 предписывает в разделе 8.1, что сервер до проверки адреса отправителя вправе отправить не более трёхкратного объёма полученных байт, а раздел 14.1 требует, чтобы клиент дополнял свою первую датаграмму до минимум 1200 байт. Вместе эти два правила поднимают коэффициент усиления службы QUIC максимум до трёх, тогда как Steam-порт запросов или Unconnected Ping у Bedrock выходят на кратно большие значения. Поэтому корректно работающий Hytale-сервер как усилитель отражения практически неинтересен. Это структурное преимущество перед почти всеми другими играми с UDP-трафиком, и при сравнении с серверами Minecraft Bedrock оно бросается в глаза.

Вторая — это цена за первое. Установление соединения QUIC стоит серверу процессорного времени, ведь оно включает согласование TLS 1.3 с асимметричной криптографией. Один поддельный пакет установление соединения вызвать не может, а вот поток настоящих попыток подключения из ботнета может. Атакующий при этом тоже платит процессорным временем, и решает именно это соотношение: пока сервер на одну попытку подключения делает больше работы, чем атакующий, атака экономически выгодна. Поэтому поток попыток подключения нагружает не канал, а процессор, и в статистике полосы он выглядит как ничто. Это тот же механизм, который у Minecraft известен как nullping и флуд рукопожатий и подробно описан в статье Защита Minecraft от DDoS и защита от nullping.

Практически применимо из этого прежде всего правило 1200 байт. Новая попытка подключения обязана прийти как датаграмма минимум в 1200 байт, иначе по стандарту это не действительное установление соединения. Текущий игровой трафик, напротив, состоит преимущественно из маленьких пакетов. Это различие можно отлить в правило фильтрации, и к нему мы сейчас перейдём.

Что по Hytale публично не задокументировано

Этот список относится к честной статье, потому что он задаёт, где вам нельзя опираться на числа. Всё дальнейшее на 27 сентября 2026 года официально не подтверждено:

  • Применяет ли сервер QUIC Retry для проверки адреса. RFC 9000 разрешает в разделе 8.1.2 пакет Retry с токеном, которым сервер проверяет адрес отправителя, прежде чем занимать ресурсы. Делает ли это Hytale и начиная с какой нагрузки, не задокументировано. Исходите из того, что на это опираться нельзя.
  • Значения по умолчанию в блоках RateLimit и ConnectionTimeouts в config.json. То, что оба блока существуют, согласованно подтверждают несколько источников. Однако приводимые числа друг другу противоречат: один источник называет конкретные пороги, другой описывает блоки как присутствующие, но без действия. Поэтому в этой статье нет ни одного из этих чисел, и поэтому не стоит планировать эти блоки как свою защиту.
  • Названия и значения по умолчанию режимов аутентификации. Документация сообщества к опубликованному коду сервера описывает три режима, задаваемых через --auth-mode, с authenticated по умолчанию, а также offline и insecure для приватных окружений и разработки. Официально это не подтверждено. Выводимое отсюда правило тем не менее однозначно: для публичного сервера режим не меняйте.
  • Подробности построения TLS. Документация протокола от сообщества, опирающаяся на опубликованный код сервера, описывает двустороннюю проверку сертификата, создаваемый при запуске самоподписанный сертификат сервера, чей отпечаток SHA-256 попадает к клиентам через службу сессий, а также отключённый 0-RTT. Это выглядит правдоподобно и согласуется с TLS 1.3, но официально не подтверждено, и на меры ниже это ничего не меняет.
  • Объёмы атак именно против Hytale-серверов. Публичных чисел по этому поводу нет. Названные в таблице от 5 до 50 Гбит/с — это опытное значение по игровым проектам в целом и прямо не статистика по Hytale.
  • Интенсивность пакетов в обычном режиме на одного игрока. Надёжной публикации по этому поводу тоже нет. Поэтому в статье нет порога, который можно было бы перенять без проверки, зато есть инструкция, как измерить его самому.

Что вы можете сделать сами, прежде чем тратить деньги

Следующие шаги не остановят объёмную атаку, этого не сделает никакая программа на сервере. Но они убирают всё, что лежит ниже: сканы портов, потоки попыток подключения из нескольких источников, попытки захвата через дополнительно установленные интерфейсы управления и занятие всех мест посторонними. Это большая часть того, что мешает Hytale-серверу в повседневной работе, и стоит это доброго часа времени.

1. Инвентаризация: что слушает на сервере?

Прежде чем написать хотя бы одно правило, посмотрите, что ваш сервер предлагает наружу. Не гадайте, а смотрите:

ss -lntup

Интерес представляет колонка с локальным адресом. 0.0.0.0:5520 означает «доступен из всего интернета», 127.0.0.1:8080 означает «только локально» и правила файрвола не требует. Рядом с Java-процессом сервера на обжитой машине часто обнаруживаются панель управления, веб-сервер для отображения карты и база данных. Взгляд атакующего даёт скан портов снаружи:

nmap -Pn -sU -p 5520 ВАШ.IP.АДРЕС.СЕРВЕРА
nmap -Pn -p- --min-rate 1000 ВАШ.IP.АДРЕС.СЕРВЕРА

Второй вызов важнее. Он показывает, что ещё стоит открытым, и на практике это почти всегда больше, чем ожидалось.

2. Оставить открытым только 5520 UDP, всё остальное закрыть

Двух разрешений достаточно. В UFW это выглядит так, причём именно в таком порядке, чтобы не закрыть доступ самому себе:

ufw allow 22/tcp comment 'SSH'
ufw allow 5520/udp comment 'Hytale QUIC'
ufw default deny incoming
ufw default allow outgoing
ufw --force enable
ufw status verbose

Разрешение TCP на 5520 вам не нужно. Если вы держите сервер на другом порту, разрешение должно совпадать со значением из --bind, иначе запуск пройдёт, а игроки всё равно не дойдут. Полная инструкция вместе с запасным путём есть в статье Настройка файрвола UFW без потери доступа.

Для всего, что вы установили дополнительно для управления, действует то же правило, что и в любой другой игре: не в открытую сеть, а доступным через проброс порта по SSH, и дальше работать локально против 127.0.0.1:

ssh -N -L 8080:127.0.0.1:8080 root@ВАШ.IP.АДРЕС.СЕРВЕРА

3. Запускать сервер так, как он задуман

Запуск состоит из одной единственной команды. Файлы сервера вы получаете через официальный загрузчик Hytale или из собственной установки игры:

java -Xms2G -Xmx4G -jar HytaleServer.jar --assets Assets.zip --bind 0.0.0.0:5520

При первом запуске сервер создаёт config.json, каталог logs/ и каталог мира universe/. После этого вы один раз входите его учётной записью, чтобы работала аутентификация игроков. Делается это через код устройства в консоли сервера:

/auth login device
/auth status

Не ставьте -Xmx на всю оперативную память машины. Операционной системе, кешу файловой системы и накладным расходам среды Java вне heap тоже нужно место, а сервер, который под нагрузкой уходит в подкачку, выглядит для ваших игроков ровно как атака.

4. Белый список, пароль сервера и предел числа игроков против исчерпания слотов

Исчерпание слотов — самая дешёвая атака на сервер сообщества, и полосы она не требует. Кто набирает достаточно одновременных подключений, занимает все места и тем самым закрывает вход настоящему сообществу, не купив ни одного гигабита. У Hytale в отличие от некоторых других игр подходящие инструменты есть в состоянии поставки: белый список в whitelist.json, список блокировок в bans.json, права в permissions.json и в config.json ключи Password и MaxPlayers.

{
  "ServerName": "Мой Hytale-сервер",
  "MOTD": "",
  "Password": "значение, которое знает только ваша группа",
  "MaxPlayers": 40,
  "MaxViewRadius": 12
}

Password с завода пуст, то есть любой, у кого есть адрес и порт, попадает внутрь. Для закрытого сервера установленный пароль — самая действенная отдельная мера против исчерпания слотов, для публичного сервера ею на время волны атак становится белый список. И одно должно быть ясно: пароль сервера защищает ваши места, а не ваш канал. Атакующий, который заливает ваш сервер трафиком, подключаться вообще не хочет.

Правьте эти файлы только при остановленном сервере. Работающий процесс сервера держит собственное состояние в памяти и может при завершении работы без единого сообщения перезаписать изменения, которые вы в это время внесли в файл. Для изменений на ходу пользуйтесь консольными командами, а не редактором.

5. Оставить аутентификацию на значении по умолчанию

Режим по умолчанию требует от каждого игрока действующей учётной записи Hytale. Это больше, чем проверка лицензии: это фильтр доступа, который делает массовые учётные записи дорогими. Атакующему, который хочет занять места, нужны для этого действующие учётные записи, а они стоят денег. Не убирайте этот фильтр.

Документация сообщества описывает наряду со стандартом ещё два режима для приватных окружений и для разработки, в которых подключиться можно без проверки учётной записи. Для публичного сервера это худшая из достижимых настроек, потому что она превращает исчерпание слотов из вопроса денег в вопрос скрипта. Если вы переключаетесь ради тестов, то на машине, которая не стоит в интернете, и после этого переключаетесь обратно.

6. Ограничить новые попытки подключения, и притом правилом 1200 байт

Здесь структурное преимущество QUIC становится практикой. Действительное установление соединения приходит по RFC 9000 как датаграмма минимум в 1200 байт. Текущий игровой трафик заметно меньше. С отслеживанием соединений вы поэтому можете отличать новые потоки данных от существующих и отбрасывать всё, что ново и слишком мало. Через nftables, загружаемое командой nft -f:

table inet hytale {
    chain input {
        type filter hook input priority -10; policy accept;

        ct state new udp dport 5520 udp length < 1208 drop

        ct state new udp dport 5520 \
            meter hyconn { ip saddr limit rate over 5/second burst 10 packets } drop
    }
}

Первое правило работает по длине UDP, то есть 8 байт заголовка плюс 1200 байт полезной нагрузки, вместе 1208. Оно попадает исключительно в пакеты, которые хотят открыть новый поток данных и для этого слишком малы, и подключённых игроков задеть не может. Второе правило ограничивает, сколько новых соединений в секунду вправе открывать один адрес источника. Пять в секунду — это щедро: настоящий игрок устанавливает одно соединение и держит его. Приоритет -10 обеспечивает, что оба правила срабатывают до цепочки фильтрации UFW.

Верхний предел интенсивности пакетов по адресу источника на самом игровом порту — третье осмысленное правило, и здесь прямо оговорено: числовое значение это стартовая величина, а не истина.

iptables -I INPUT -p udp --dport 5520 \
  -m hashlimit --hashlimit-name hytale_udp --hashlimit-mode srcip \
  --hashlimit-above 800/sec --hashlimit-burst 1200 -j DROP

Сначала померьте неделю в обычном режиме, затем выставьте предел на двукратное измеренное пиковое значение. Для Hytale опубликованного ориентира на это нет, а значения сильно зависят от числа игроков и дальности обзора. Кто настроит слишком узко, выбросит собственных игроков, причём первыми тех, у кого канал хуже всех.

Просто добавленные правила iptables после перезагрузки исчезают. В Debian и Ubuntu их сохраняют так:

apt-get install -y iptables-persistent
netfilter-persistent save

При работе с UFW такие правила дополнительно относятся в /etc/ufw/before.rules, иначе они пропадут при следующем ufw reload. Достигается ли правило вообще, показывает iptables -L INPUT -n -v: если счётчики совпадений остаются на нуле, оно не срабатывает.

7. Правильно настроить отслеживание соединений в ядре

Этот пункт объясняет сбои, которые выглядят как объёмная атака, но ею не являются. Ядро заводит для UDP-трафика записи в отслеживании соединений, а при поддельных адресах отправителя каждый адрес означает новую запись. Когда таблица заполнена, ядро отбрасывает пакеты без разбора, атака и ваши игроки вылетают вместе, а в журнале стоит «nf_conntrack: table full». Текущее значение и верхний предел показывает:

sysctl net.netfilter.nf_conntrack_count net.netfilter.nf_conntrack_max

У большинства игр лучший ответ на это — вообще не отслеживать игровой трафик. У Hytale это настоящий выбор с обеих сторон, ведь правило 1200 байт из шага 6 без отслеживания соединений не работает. Без него фильтр не знает, какой пакет открывает новый поток данных. Поэтому рекомендация такая: отслеживание оставить, таблицу увеличить, время ожидания для UDP держать коротким. Добавка под /etc/sysctl.d/, применяемая командой sysctl --system:

net.netfilter.nf_conntrack_max = 1048576
net.netfilter.nf_conntrack_udp_timeout = 30
net.netfilter.nf_conntrack_udp_timeout_stream = 120
net.core.rmem_max = 16777216
net.core.rmem_default = 1048576
net.core.netdev_max_backlog = 16384

Кто всё же хочет отслеживание отключить, например на машине с очень большим числом одновременных игроков, ставит udp dport 5520 notrack в таблице raw и тем самым отказывается от правила 1200 байт. Вместе это не работает. Для одного отдельного Hytale-сервера правило стоит дороже, чем сэкономленные записи в таблице.

Если пакеты приходят быстрее, чем Java-процесс их забирает, дополнительно переполняется приёмный буфер. Для игроков это выглядит как потеря пакетов, хотя канал свободен. Нужны ли настройки буфера выше, скажет само ядро: если UdpRcvbufErrors в nstat -az растёт, они срабатывают. Если счётчик остаётся на нуле, правка ничего не меняет.

8. Подобрать дальность обзора и число игроков под канал

Этот шаг не является мерой безопасности, но он определяет, сколько атаки вы вообще выдержите. Hypixel Studios сформулировала это в официальных требованиях к железу от 1 декабря 2025 года прямо: если вы удвоите дальность обзора, вы учетверите объём мира вокруг игрока. Официальная рекомендация лежит на не более 12 чанках, то есть 384 блоках, задаётся через MaxViewRadius. Со стороны клиента те же требования называют 2 Мбит/с минимумом и 8 Мбит/с рекомендацией на одного игрока для сетевой игры.

Посчитайте это для своего сервера один раз. Сервер с 40 игроками при щедрой дальности обзора в обычном режиме двигает низкий трёхзначный диапазон мегабит. Это то значение, по которому должен мериться ваш канал, и одновременно то значение, которое атаке нужно превысить, чтобы стать заметной. Кто в обычном режиме заполняет канал на 1 Гбит/с на треть, имеет меньше запаса, чем тот, у кого пять процентов. Поэтому меньшая дальность обзора — это не только вопрос производительности, но и вопрос устойчивости.

9. Держать в поле зрения моды, плагины и смену протокола

Hytale моддится на стороне сервера: моды лежат как .zip или .jar в каталоге mods/, а плагины обращаются к серверному интерфейсу напрямую. Это удобно, потому что игрокам ничего устанавливать не нужно, и это одновременно риск для доступности, не имеющий отношения к атакам. Плагин, который на каждое сетевое событие работает дорого, это усилитель в вашем собственном доме.

К этому добавляется смена протокола. С Update 6 сетевой протокол по официальным Patch Notes от 27 августа 2026 года сменился с hytale/2 на hytale/3, и сервер с плагинами нужно собрать заново, прежде чем они смогут соединиться. Для доступности это означает: ведите список своих модов вместе с версиями, проверяйте их перед каждым обновлением на втором экземпляре и запланируйте окно обслуживания перед 12 октября 2026 года. Сервер, который после обновления не запускается, для ваших игроков от атаки не отличим.

10. Собрать измерения, прежде чем станет серьёзно

Самый важный шаг — тот, который почти никто не делает заранее: собрать базу для сравнения, пока всё работает нормально. Без нормального значения вы после инцидента не скажете, много ли это было, 40 000 пакетов в секунду, или это просто вечер субботы. С apt-get install -y vnstat sysstat conntrack измерение идёт постоянно в фоне. Во время инцидента хватает пяти команд:

sar -n DEV 1 10
ip -s link show eth0
conntrack -C
nstat -az | grep -i -E 'udp|drop'
tcpdump -ni eth0 -c 200 "udp port 5520"

Для tcpdump правило одно: всегда ограничивайте объём через -c, ведь захват трафика под полной нагрузкой дополнительно нагружает и без того перегруженный сервер. Поскольку Hytale-сервер работает на Java, вам нужна вторая проба, исключающая самое частое ложное срабатывание. Пауза сборки мусора выглядит для игроков точно так же, как атака: все стоят одновременно, потом всё идёт дальше. Разница видна в числах.

jcmd $(pgrep -f HytaleServer.jar) GC.heap_info
tail -n 200 logs/latest.log

Разбор прост. Если входящие пакеты поднимаются далеко выше нормального значения, а Java-процесс при этом почти не работает, это атака. Если интенсивность пакетов остаётся ничем не примечательной, а heap заполняется или в журнале видны длинные паузы, это нагрузка. Как разобрать сетевые значения в подробностях, описано в статье Как определить DDoS-атаку на сервере.

11. Резервная копия, план отката и пробный прогон перед крупной датой

Концепция защиты, которую никогда не проверяли, это предположение. Перед такой датой, как 12 октября 2026 года, должны быть сделаны четыре вещи: резервная копия каталога universe/ вместе с config.json, лежащая вне машины, проверенный возврат к предыдущей версии сервера, второй экземпляр, на который вы сначала ставите обновление, и однократный нагрузочный тест, который задействует ваши собственные правила фильтрации.

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

Где эти меры заканчиваются: полоса и интенсивность пакетов

Теперь та часть, которую не решит ни один конфигурационный файл. Все описанные выше меры работают на вашем сервере, то есть в конце канала. Правило файрвола принимает решение о пакете, который уже прошёл по кабелю. Вы можете его отбросить, но не можете сделать неотправленным.

Давайте посчитаем. Типовой игровой сервер подключён на 1 Гбит/с, это 125 мегабайт в секунду, и канал заполнен, как только кто-то отправит больше. Атаки против игровых проектов обычно лежат между 5 и 50 Гбит/с, то есть от пяти до пятидесяти раз больше вашего канала. Насколько хорошо ваше правило nftables позади этого, тогда уже не играет роли, ведь пакеты ваших игроков не проходят ещё раньше.

Вторая величина — интенсивность пакетов, и она часто упирается раньше полосы. При маленьких пакетах по 64 байта в канал на 1 Гбит/с помещается около 1,49 миллиона пакетов в секунду. Обычное серверное ядро в зависимости от процессора и сетевой карты обрабатывает несколько сотен тысяч из них, прежде чем начинает отбрасывать. То есть атака, которая не заполняет ваш канал даже на треть, всё равно может положить ваш сервер, потому что процессорное время уходит на отбрасывание. Владельцы описывают это словами «загрузка ведь была совсем не высокой, а всё равно всё легло».

У Hytale добавляется третья величина, которой у большинства игр нет: процессорное время на установление соединения. Поток действительных попыток подключения из ботнета не заполняет канал и не создаёт заметной интенсивности пакетов, он занимает процессор криптографией. Такие атаки в статистике полосы невидимы и хорошо видны в загрузке процессора Java-процессом, и против них не помогает ни ограничение интенсивности по адресу источника, ни больший приёмный буфер, если источников достаточно много.

Для понимания того, какие порядки величин встречаются реально: на серверах KernelHost были отфильтрованы в том числе атака более 473,4 Гбит/с при более 41,5 миллиона пакетов в секунду на голосовой сервер и UDP-flood более 112,2 Гбит/с на игровой сервер. Локальной настройки против этого нет. Объёмные атаки должны заканчиваться в сети перед сервером.

Что KernelHost противопоставляет DDoS-атакам на Hytale-серверы

Постоянная защита, которая входит в каждый серверный тариф

Защита от DDoS в KernelHost построена в два уровня и активна постоянно, вам не нужно ничего включать, заказывать или настраивать:

  • Уровень 1: 17 Тбит/с ёмкости mitigation в глобальной scrubbing-сети. Объёмные атаки вычищаются близко к источнику, ещё до того как они дойдут до дата-центра.
  • Уровень 2: фильтрация Arbor в реальном времени на 3,2 Тбит/с во Франкфурте-на-Майне. Непосредственно перед сервером распознаются и отбрасываются схемы, характерные для конкретных протоколов, пакет за пакетом.

Решают два свойства. Защита работает постоянно и не должна сначала отреагировать на атаку, поэтому нет тех первых минут, когда сервер недоступен. И null-routing не применяется: ваш IP-адрес остаётся в сети, отбрасываются только вредоносные пакеты. Тот, кто убирает IP-адрес из сети, добивается для вас того же результата, что и атакующий. Какие титулы и протоколы покрыты собственными профилями защиты, перечисляет статья Защита игровых серверов от DDoS в реальном времени.

Advanced DDoS Protection для Hytale-проектов под постоянным обстрелом

Некоторые проекты атакуют не время от времени, а прицельно и неделями, и у игры в раннем доступе это задевает прежде всего серверы, которые как раз растут. Для них есть Advanced DDoS Protection от 50,00 € в месяц, по модели PrePaid, без минимального срока и без платы за подключение. Разница не в большей ёмкости, а в контроле:

  • Выделенный защищённый IP-адрес из франкфуртского ядра сети, на который ваш сервер переводится внутри нашей сети. С вашей стороны ничего перестраивать не нужно.
  • Самостоятельно управляемые правила защиты по портам и протоколам в личном кабинете: вы задаёте, что разрешено на 5520 UDP, отдельно от всего остального, и тикет для этого не нужен.
  • Изменения вступают в силу в реальном времени, поэтому подстраивать их можно прямо во время идущей атаки, например на короткое время жёстче ограничить новые соединения, а текущий игровой трафик не трогать.
  • Набор правил под протокол, как для QUIC поверх UDP, так и для собственных приложений на любых портах TCP или UDP.

Advanced DDoS Protection рассчитана на серверы, которые стоят в KernelHost. Кто держит свой Hytale-проект сейчас в другом месте и находится под постоянными атаками, переносит его для этого в KernelHost, и тогда оба уровня действуют с момента развёртывания.

Сравнение двух уровней

Характеристика Включённая постоянная защита от DDoS Advanced DDoS Protection
Цена входит в каждый серверный тариф без доплаты от 50,00 € в месяц, PrePaid
Ёмкость фильтрации 17 Тбит/с глобального scrubbing плюс фильтрация Arbor в реальном времени на 3,2 Тбит/с во Франкфурте-на-Майне та же двухуровневая фильтрация
IP-адрес IP-адрес вашего сервера дополнительный выделенный защищённый IP
Набор правил автоматические профили, настраивать ничего не нужно собственные правила по портам и протоколам в личном кабинете, 5520 UDP отдельно от всего остального
Изменения применяются автоматически вступают в силу в реальном времени, в том числе во время атаки
Null-routing нет нет
Активация активна с момента развёртывания защищённый IP-адрес сразу после заказа
Срок привязан к серверному тарифу PrePaid, без минимального срока, без платы за подключение

Большинству Hytale-серверов хватает включённой постоянной защиты вместе с аккуратной настройкой сервера. Advanced DDoS Protection — это ответ на ситуацию, когда кто-то воспринимает происходящее лично.

Что переносится на Hytale из других игр

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

  • Взрывной старт и что он вызывает: Palworld показывает, как волна новых игроков и волна атак накладываются по времени и почему целью становятся именно растущие серверы.
  • Разница между запросом и игровым трафиком: Minecraft Bedrock объясняет на примере Unconnected Ping, как работает усиление через UDP. Именно этого пути атаки у Hytale из-за QUIC нет, и на этом разница понимается лучше всего.
  • Установление соединения как цель атаки: Защита Minecraft от DDoS и защита от nullping описывает флуд рукопожатий, которому почти не нужна полоса. Это ближайший родственник флуда подключений в QUIC.
  • Малое число игроков и исчерпание слотов: Project Zomboid и Conan Exiles показывают, как мало усилий нужно, чтобы закрыть вход постоянной группе, и какую роль играют при этом белый список и пароль.
  • Работа под постоянной нагрузкой: Terraria показывает, как один серверный процесс с нагрузкой на одно ядро реагирует на атаки. Hytale-сервер — это Java-процесс, базовая проблема сопоставима.

Частые ошибки на Hytale-серверах и как их решить

«Я открыл порт 5520 TCP, а игроки всё равно не заходят»: игровой трафик идёт по QUIC, то есть по UDP. Разрешение TCP для игрового трафика ничего не даёт. Откройте 5520 UDP и проверьте это снаружи командой nmap -Pn -sU -p 5520. Если вы перенесли сервер через --bind на другой порт, разрешение должно называть этот порт.

«Сервер работает, но никто не может зайти, и в журнале ничего про атаки»: проверьте вход сервера в его учётную запись командой /auth status. Сервер, у которого вход просрочен, продолжает работать и тем не менее отказывает игрокам. Это не сетевая проблема и не правило фильтрации.

«После обновления ничего больше не запускается»: это не атака, а смена протокола. С Update 6 сетевой протокол сменился с hytale/2 на hytale/3, и сервер вместе с плагинами нуждается в новой сборке. Ставьте обновления сначала на второй экземпляр, прежде чем пускать их на рабочий сервер.

«Все игроки одновременно стоят две секунды, потом всё идёт дальше»: с высокой вероятностью это сборка мусора среды Java, а не атака. Проверьте jcmd ... GC.heap_info и журнал сервера. Если sar -n DEV 1 10 при этом остаётся ничем не примечательным, атаки в деле не было, а был слишком скромно отмеренный heap или слишком большая дальность обзора.

«Моё правило против маленьких пакетов закрыло вход игрокам»: значит, условие на 1200 байт стоит в цепочке без ct state new. Текущий игровой трафик состоит преимущественно из маленьких пакетов, и условие по длине без проверки состояния попадает ровно в них. Условие действует исключительно для вновь открываемых потоков данных.

«Я сменил IP-адрес и через два часа снова был офлайн»: атакующий взял новый адрес из того же источника, что и старый. У Hytale это обычно старая A-запись в DNS, Discord-бот с отображением статуса или запись в одном из многих сторонних списков серверов. С Update 6 адреса серверов в официальном списке серверов по умолчанию скрыты, что закрывает самый удобный путь, но не все. Смена адреса — это выигрыш времени, а не решение.

«Мои правила фильтрации не срабатывают»: частых причин три. Правила стоят позади цепочек UFW, и дело до них не доходит. Либо они пропали после последней перезагрузки (тогда помогут netfilter-persistent save или запись в /etc/ufw/before.rules). Либо атака объёмная, и правило работает корректно на канале, который уже забит. Проверьте командой iptables -L INPUT -n -v, растут ли счётчики совпадений.

«Мой прежний провайдер заблокировал мой IP-адрес»: это и есть null-routing. Так провайдер защищает собственную сеть, а для вас результат ничем не отличается от успешной атаки, обычно ещё на несколько часов после неё. Если сомневаетесь, спросите напрямую: трафик фильтруют или адрес уводят в null-routing. Ответ определяет вашу доступность сильнее, чем любые характеристики железа.

«В tcpdump я не вижу ничего подозрительного»: если трафик отфильтрован ещё в сети перед сервером, то до самого сервера, как и ожидается, ничего не доходит. При работающей фильтрации это нормальная картина. Верно и обратное: при насыщенном канале до вас может не дойти даже та SSH-сессия, из которой вы собирались снимать измерения. Тогда используйте VNC-консоль в личном кабинете, она работает независимо от сети гостевой системы.

Коротко о главном

  • Hytale-серверу нужен ровно один открытый порт: 5520 UDP для QUIC. TCP для игрового трафика не требуется, а в публичной документации не описан ни один другой порт для запросов, RCON или удалённого управления.
  • Поскольку QUIC по RFC 9000 до проверки адреса вправе отправить не более трёхкратного объёма полученных байт, а первая попытка подключения должна быть размером минимум 1200 байт, Hytale-сервер как усилитель отражения практически неинтересен. Этим он отличается от серверов со Steam-запросами или с Unconnected Ping у Bedrock.
  • То же правило 1200 байт — лучшее локальное правило фильтрации: то, что хочет открыть новый поток данных на 5520 UDP и меньше по размеру, не может быть действительным установлением соединения и отбрасывается, не задевая подключённых игроков.
  • Дорогая часть установления QUIC — это криптография, а не полоса. Поток действительных попыток подключения в статистике полосы невидим и виден только в загрузке процессора и в счётчиках новых соединений.
  • Режим по умолчанию с обязательной учётной записью — это фильтр доступа, который делает массовые учётные записи дорогими. Для публичного сервера он остаётся неизменным, к нему добавляются whitelist.json, bans.json и установленное значение в Password против исчерпания слотов.
  • Локальные меры заканчиваются на канале: 1 Гбит/с — это 125 мегабайт в секунду, и при пакетах размером 64 байта туда помещается около 1,49 миллиона пакетов в секунду. Всё, что выше, должно заканчиваться в сети перед сервером.
  • Hytale находится в раннем доступе с 13 января 2026 года, Chapter 1 объявлен на 12 октября 2026 года. Крупные даты — это даты атак, а защита, заказанная в саму дату, приходит слишком поздно.
  • В KernelHost двухуровневая постоянная защита входит в каждый серверный тариф без доплаты и активна с момента развёртывания, без null-routing. Advanced DDoS Protection с выделенным защищённым IP-адресом и самостоятельно управляемыми правилами по портам начинается от 50,00 € в месяц.

Если ваш Hytale-сервер уже работает в KernelHost, фильтрация активна, и делать для этого ничего не нужно. Если вы всё же замечаете странности, откройте тикет в поддержку, чтобы правила фильтрации подстроили под ваш IP-адрес. Во время идущей атаки с нами дополнительно можно связаться через экстренный чат WhatsApp по номеру +43 650 8209883.

Эта статья отражает состояние на 27 сентября 2026 года. Hytale находится в раннем доступе, и сетевой протокол в этом году уже один раз менялся. Статья будет дописываться после Chapter 1 и после каждого обновления, которое затрагивает установление соединения, порты или список серверов.

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

Какие порты нужны Hytale-серверу и какие из них надо открыть?
Ровно один: 5520 UDP. Через него идёт весь игровой трафик по QUIC, то есть установление соединения и текущая синхронизация. Привязка по умолчанию — 0.0.0.0:5520, другой порт задаётся при запуске через ключ --bind и должен тогда стоять и в файрволе. В публичной документации для Hytale не описан ни один другой порт: ни порта запросов, ни порта RCON, ни REST-интерфейса в состоянии поставки. Всё, что сервер предлагает наружу, лежит тем самым на одном единственном UDP-порту, и это наименьшая площадь атаки, какая может быть у игрового сервера.
Почему у Hytale недостаточно открыть TCP?
Потому что игровой трафик идёт по QUIC, а QUIC — это транспортный протокол поверх UDP. Разрешение 5520 TCP для игрового трафика не требуется и ничего не меняет в том, что игроки упираются в истечение времени ожидания, пока 5520 UDP закрыт. Это самая частая ошибка настройки Hytale-серверов, потому что многие более старые игры используют TCP и инструкции для них копируются. Проверяйте разрешение снаружи командой nmap -Pn -sU -p 5520, а не с самого сервера, ведь локально порт отвечает и при закрытом файрволе.
Может ли мой Hytale-сервер быть использован как усилитель для атаки на третьих лиц?
Практически нет, и это структурное преимущество QUIC. RFC 9000 предписывает в разделе 8.1, что сервер до проверки адреса отправителя вправе отправить не более трёхкратного объёма полученных байт, а раздел 14.1 требует, чтобы клиент дополнял свою первую датаграмму до минимум 1200 байт. Вместе эти правила ограничивают коэффициент усиления максимум до трёх. Steam-порт запросов или Unconnected Ping у Minecraft Bedrock выходят на кратно большие значения. Поэтому корректно работающий Hytale-сервер для атак с отражением неинтересен.
Как понять, мой Hytale-сервер атакуют или он просто перегружен?
Смотрите на интенсивность пакетов на интерфейсе, а не на загрузку процессора саму по себе. Командой sar -n DEV 1 10 вы видите пакеты и байты в секунду, командой ip -s link show eth0 счётчики отброшенных пакетов. Если входящие пакеты поднимаются далеко выше нормального значения, а Java-процесс при этом почти не работает, это атака. Hytale-сервер работает на Java, поэтому нужна вторая проба: пауза сборки мусора выглядит для игроков точно как атака. Проверьте heap через jcmd и журнал сервера под logs/. Ничем не примечательная интенсивность пакетов при заполненном heap означает нагрузку, а не атаку.
Что такое флуд подключений QUIC и почему его не видно в полосе?
Флуд подключений — это большое число действительных попыток подключения, которое заставляет сервер снова и снова считать согласование TLS 1.3. Дорогая часть здесь асимметричная криптография, а не объём данных. Поэтому такая атака ни канал не заполняет, ни заметной интенсивности пакетов не создаёт, она занимает процессор. В статистике полосы она невидима, видна она в загрузке процессора серверным процессом и в числе новых соединений в секунду. Это тот же механизм, который у Minecraft известен как флуд рукопожатий и nullping.
Как защитить Hytale-сервер от исчерпания слотов?
Инструментами, которые сервер приносит с собой в состоянии поставки: белым списком в whitelist.json, списком блокировок в bans.json, правами в permissions.json, а также ключами Password и MaxPlayers в config.json. Password с завода пуст, то есть любой, у кого есть адрес и порт, попадает внутрь. К этому добавляется режим аутентификации по умолчанию, который требует от каждого игрока действующей учётной записи Hytale и делает массовые учётные записи дорогими. Для публичного сервера оставьте этот режим неизменным. Правьте файлы только при остановленном сервере, иначе работающий процесс может перезаписать ваши изменения при завершении работы.
Какое правило фильтрации работает у Hytale лучше всего, не закрывая вход своим игрокам?
Проверка минимального размера установления соединения. Действительный новый поток QUIC приходит по RFC 9000 как датаграмма минимум в 1200 байт, а текущий игровой трафик состоит из заметно меньших пакетов. Поэтому в nftables вы целенаправленно отбрасываете новые потоки данных меньше этого размера: ct state new udp dport 5520 udp length меньше 1208 drop, где 1208 это 1200 байт полезной нагрузки плюс 8 байт заголовка UDP. Подключённых игроков это правило задеть не может. Важно условие ct state new, потому что без него проверка длины попадает ровно в обычный игровой трафик.
Вышел ли Hytale и на какое состояние опирается эта статья?
Hytale находится в раннем доступе с 13 января 2026 года для Windows, macOS и Linux и вскоре после запуска набрал более миллиона игроков. Riot Games прекратила разработку 23 июня 2025 года, а 17 ноября 2025 года основатели выкупили проект обратно. Эта статья отражает состояние на 27 сентября 2026 года. Сетевой протокол с Update 6 по официальным Patch Notes от 27 августа 2026 года сменился с hytale/2 на hytale/3, и сервер вместе с плагинами с тех пор нуждается в новой сборке.
Что нужно подготовить до выхода Chapter 1 12 октября 2026 года?
Пять вещей, и всем нужен запас времени. Первое: сравнительное измерение в обычном режиме, потому что без нормального значения пороги невозможно выставить осмысленно. Второе: резервная копия каталога universe/ вместе с config.json вне машины. Третье: проверенный возврат к предыдущей версии сервера. Четвёртое: второй экземпляр, на который вы сначала ставите обновление и все моды, ведь смена протокола делает сервер и плагины непригодными, пока они не собраны заново. Пятое: пробный прогон ваших правил фильтрации с настоящими игроками. Защита, заказанная в день обновления, приходит слишком поздно.
Можно ли отбиться от DDoS-атаки на Hytale средствами nftables или UFW?
От небольших атак и неаккуратных ботов да, от объёмных атак нет. Правило файрвола на сервере принимает решение о пакетах, которые уже прошли по вашему каналу. Если канал насыщен, пакеты ваших игроков не доходят ещё раньше, и это не зависит от того, насколько хорош ваш набор правил. Локальные правила тем не менее остаются осмысленными: они перехватывают слишком маленькие попытки подключения на 5520 UDP, ограничивают новые соединения по адресу источника и убирают из открытой сети всё, что вы установили дополнительно для управления.
Стоит ли защита от DDoS для Hytale в KernelHost отдельных денег?
Нет. Двухуровневая постоянная защита входит в каждый серверный тариф без доплаты и активна с момента развёртывания. Её не нужно ни заказывать, ни включать, ни настраивать, и надбавки за игровой сервер нет. Уровни такие: 17 Тбит/с ёмкости mitigation в глобальной scrubbing-сети и дополнительно фильтрация Arbor в реальном времени на 3,2 Тбит/с во Франкфурте-на-Майне. Большинству Hytale-серверов этой постоянной защиты вместе с аккуратной настройкой сервера хватает полностью, то есть с закрытыми административными портами, установленным паролем сервера и ограничением новых соединений.
Когда для Hytale дополнительно нужна Advanced DDoS Protection?
Когда ваш сервер атакуют не время от времени, а прицельно и неделями, и вы хотите управлять фильтрацией сами. Вы получаете выделенный защищённый IP-адрес из франкфуртского ядра сети и сами управляете правилами защиты по портам и протоколам в личном кабинете, то есть 5520 UDP отдельно от всего остального. Изменения вступают в силу в реальном времени, подстраивать их можно прямо во время идущей атаки, например на короткое время жёстче ограничить новые соединения. Цена начинается от 50,00 € в месяц, по модели PrePaid, без минимального срока и без платы за подключение. Предпосылка — сервер в KernelHost.
Уйдёт ли мой Hytale-сервер в KernelHost в офлайн во время атаки?
Нет. Null-routing не применяется. Ваш IP-адрес остаётся в сети, отбрасываются только вредоносные пакеты. Защита работает постоянно и не должна сначала отреагировать на атаку, поэтому нет тех первых минут, когда сервер недоступен. Для понимания порядков величин: на серверах KernelHost уже были отфильтрованы атака более 473,4 Гбит/с при более 41,5 миллиона пакетов в секунду и UDP-flood более 112,2 Гбит/с. Тот, кто убирает IP-адрес из сети, добивается для клиента того же результата, что и атакующий.

Hytale Hytale-DDoS-защита Hytale-сервер 5520 UDP QUIC Защита игровых серверов Advanced DDoS Protection