Защита Hytale-сервера от DDoS-атак
Почему 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-серверу и какие из них надо открыть?
Почему у Hytale недостаточно открыть TCP?
Может ли мой Hytale-сервер быть использован как усилитель для атаки на третьих лиц?
Как понять, мой Hytale-сервер атакуют или он просто перегружен?
Что такое флуд подключений QUIC и почему его не видно в полосе?
Как защитить Hytale-сервер от исчерпания слотов?
Какое правило фильтрации работает у Hytale лучше всего, не закрывая вход своим игрокам?
Вышел ли Hytale и на какое состояние опирается эта статья?
Что нужно подготовить до выхода Chapter 1 12 октября 2026 года?
Можно ли отбиться от DDoS-атаки на Hytale средствами nftables или UFW?
Стоит ли защита от DDoS для Hytale в KernelHost отдельных денег?
Когда для Hytale дополнительно нужна Advanced DDoS Protection?
Уйдёт ли мой Hytale-сервер в KernelHost в офлайн во время атаки?
2026 KernelHost GmbH. Все права защищены. Эта инструкция охраняется авторским правом. Публикация на других сайтах, в том числе частично или в изменённом виде, без нашего письменного согласия не разрешается. Цитирование с указанием источника и активной ссылкой мы приветствуем.

