Как перенести Minecraft сервер на DDoS-защиту без даунтайма

Как перенести Minecraft сервер на DDoS-защиту без даунтайма

Зачем вообще переносить сервер под защиту

Если ты читаешь этот гайд, скорее всего, уже столкнулся с DDoS-атаками на свой Minecraft сервер. Или пока не столкнулся, но понимаешь, что это вопрос времени. Атаки на Minecraft серверы - реальность, с которой живут тысячи администраторов каждый день.

Главный страх при подключении DDoS-защиты - это даунтайм. Игроки не смогут зайти, кто-то уйдет на другой сервер, донаты пропадут. Знакомо? Хорошая новость: при правильном подходе перенос можно сделать вообще без простоя. Игроки даже не заметят, что что-то изменилось.

В этом гайде разберем весь процесс по шагам - от подготовки до финальной проверки.

Как работает DDoS-защита через DNS

Прежде чем лезть в настройки, стоит понять базовый принцип. Большинство сервисов защиты (включая MineGuard) работают по схеме обратного прокси:

  1. Игрок подключается к домену твоего сервера (например, play.myserver.ru)
  2. DNS направляет его не на твой реальный IP, а на IP фильтра защиты
  3. Фильтр проверяет трафик, отсеивает мусор
  4. Чистый трафик пересылается на твой настоящий сервер

Вся магия происходит на уровне DNS. Ты просто меняешь, куда указывает домен - и трафик начинает идти через фильтр. Сам сервер при этом продолжает работать как работал.

Шаг 1: Подготовка - бэкап и снижение TTL

Перед любыми изменениями - бэкап. Да, мы не трогаем сам сервер, но привычка делать бэкап перед любыми манипуляциями спасала не один проект.

Что забэкапить:

  • Конфиг DNS-зоны (скриншот или экспорт записей)
  • Настройки файрвола на сервере
  • Конфиги BungeeCord/Velocity, если используешь прокси

Снижаем TTL записей DNS

Это критически важный шаг, который многие пропускают. TTL (Time To Live) - это время, которое DNS-резолверы кэшируют запись. Если у тебя TTL стоит 86400 (24 часа), то после смены DNS часть игроков будет ходить на старый IP еще сутки.

Зайди в панель управления DNS (Cloudflare, Hetzner DNS, любой другой провайдер) и установи TTL для A-записи твоего игрового домена на минимум - 60 или 120 секунд. Сделай это за 24-48 часов до переноса. Нужно подождать, пока старый высокий TTL истечет у всех резолверов.

Если используешь Cloudflare с включенным проксированием (оранжевое облако) - TTL управляется автоматически, тут ничего менять не нужно.

Шаг 2: Регистрация и настройка защиты

Регистрируемся в панели управления DDoS-защиты. На примере MineGuard:

  1. Создаем аккаунт на сайте
  2. Добавляем новую сеть (network) - это контейнер для настроек твоего сервера
  3. Выбираем тариф - для начала подойдет базовый, потом всегда можно масштабировать

После создания сети ты получишь адрес фильтра - это может быть IP-адрес или CNAME-запись вида filter.mineguard.net. Именно на этот адрес мы потом направим DNS.

Важный момент: не торопись сразу менять DNS. Сначала нужно полностью настроить защиту.

Шаг 3: Добавление домена и бэкенда

В панели защиты нужно указать два ключевых параметра:

Домен (или поддомен) - тот адрес, по которому игроки подключаются к серверу. Например, play.myserver.ru или просто myserver.ru.

Бэкенд - реальный IP-адрес твоего Minecraft сервера и порт. Например, 185.100.50.25:25565. Это адрес, куда фильтр будет пересылать чистый трафик.

В MineGuard это делается в разделе настроек сети:

  • Backend Address: указываем IP и порт сервера
  • Backend Protocol: TCP (стандарт для Minecraft Java Edition)

Если у тебя несколько серверов за BungeeCord или Velocity - указывай IP прокси-сервера, а не отдельных бэкенд-серверов.

Шаг 4: Настройка Proxy Protocol (если нужно)

Proxy Protocol - это способ передачи реального IP-адреса игрока через прокси. Без него твой сервер будет видеть все подключения как идущие с IP фильтра, а не от реальных игроков.

Когда Proxy Protocol нужен:

  • Ты хочешь видеть реальные IP в логах
  • У тебя есть бан-система по IP
  • Используешь плагины, привязанные к IP игрока

Когда можно обойтись без него:

  • Маленький сервер, где IP не критичен
  • Используешь авторизацию только по нику

Настройка на стороне BungeeCord:

В config.yml BungeeCord найди секцию listeners и добавь:

listeners:
  - proxy_protocol: true

Для Velocity в velocity.toml:

haproxy-protocol = true

Для Paper/Spigot напрямую (без BungeeCord) потребуется плагин HAProxyDetector или аналогичный.

После включения Proxy Protocol на стороне сервера - включи его и в панели защиты. Порядок важен: сначала сервер, потом защита. Если включить Proxy Protocol только на одной стороне, подключения сломаются.

Шаг 5: Переключение DNS

Все настроено, протестировано локально (к этому вернемся) - пора переключать DNS. Это собственно момент переноса.

Вариант A: Используешь A-запись

Заходим в DNS-панель и меняем A-запись игрового домена с реального IP сервера на IP фильтра защиты.

Было:

play.myserver.ru  A  185.100.50.25

Стало:

play.myserver.ru  A  104.167.24.91

Вариант B: Используешь CNAME

Некоторые сервисы защиты дают CNAME-запись. В этом случае удаляем старую A-запись и создаем CNAME:

play.myserver.ru  CNAME  yournetwork.filter.mineguard.net

Вариант C: Cloudflare + защита

Если домен на Cloudflare, можно использовать CNAME с включенным проксированием (оранжевое облако). Cloudflare будет проксировать HTTP/HTTPS трафик, а для игрового трафика Minecraft нужно выключить проксирование (серое облако) и использовать обычный CNAME или A-запись на фильтр.

Важно помнить: Cloudflare проксирует только веб-трафик. Игровой TCP/UDP трафик Minecraft через оранжевое облако не пойдет (если нет Cloudflare Spectrum, но это дорого и отдельная тема).

После сохранения DNS-записи изменения начнут распространяться. Благодаря низкому TTL, который мы выставили на шаге 1, большинство игроков переключатся на новый маршрут в течение нескольких минут.

Шаг 6: Проверка работы

DNS обновился, теперь проверяем, что все работает.

Проверка DNS-резолва:

nslookup play.myserver.ru

или

dig play.myserver.ru +short

В ответе должен быть IP фильтра защиты, а не реальный IP сервера.

Проверка подключения:

Запускаем Minecraft клиент и подключаемся к серверу по домену. Если зашел нормально, видишь мир, можешь двигаться - базовая проверка пройдена.

Проверка IP в логах:

Зайди на сервер и посмотри последний лог. Если настроен Proxy Protocol, в логах должны быть реальные IP игроков, а не IP фильтра. Если видишь IP фильтра - перечитай шаг 4.

Проверка через панель защиты:

В панели MineGuard можно увидеть активные подключения, статистику трафика и текущие угрозы. Если видишь входящие соединения - значит трафик идет через фильтр.

Проверка пинга:

Пинг может немного вырасти (на 1-5 мс) из-за дополнительного хопа через фильтр. Это нормально и незаметно для игроков. Если пинг вырос значительно (на 50+ мс), проверь географическое расположение фильтра - в идеале он должен быть ближе к основной аудитории сервера.

Шаг 7: Закрываем прямой доступ к серверу

Это шаг, который забывают чаще всего. Если реальный IP сервера известен атакующим (а он скорее всего известен), они просто будут бить напрямую, минуя защиту.

Настройка файрвола:

Разрешаем входящие подключения на игровой порт (25565) только с IP-адресов фильтра защиты. В iptables это выглядит примерно так:

iptables -A INPUT -p tcp --dport 25565 -s IP_ФИЛЬТРА -j ACCEPT
iptables -A INPUT -p tcp --dport 25565 -j DROP

У каждого сервиса защиты есть список IP-адресов, с которых приходит трафик. Убедись, что добавил все адреса, иначе часть игроков не сможет подключиться.

Смена IP (если скомпрометирован):

Если атакующие знают реальный IP сервера, файрвол поможет от прямых атак на порт Minecraft, но не спасет от volumetric атак на сам IP. В идеале - сменить IP у хостера и никому его не светить. Новый IP указать только в настройках защиты как бэкенд.

Что делать, если что-то пошло не так

Игроки не могут подключиться после смены DNS:

  • Проверь, что DNS обновился (nslookup/dig)
  • Попроси игроков очистить DNS-кэш (ipconfig /flushdns на Windows)
  • Проверь, что бэкенд-адрес в панели защиты указан верно
  • Убедись, что файрвол сервера разрешает подключения с IP фильтра

Подключение есть, но сервер лагает:

  • Проверь нагрузку на самом сервере - может быть не связано с защитой
  • Посмотри, нет ли потери пакетов на маршруте через mtr или traceroute
  • Обратись в поддержку сервиса защиты с результатами диагностики

В логах IP фильтра вместо реальных IP игроков:

  • Proxy Protocol не настроен или настроен только на одной стороне
  • Перечитай шаг 4 и проверь конфигурацию и на сервере, и в панели защиты

Часть игроков заходит, часть нет:

  • DNS еще не обновился у всех - подожди (зависит от старого TTL)
  • Если прошло больше суток - проблема в другом, проверяй файрвол и маршрутизацию

Откат: если все совсем плохо, просто верни DNS-запись на прежний IP сервера. Через несколько минут (благодаря низкому TTL) все вернется как было. Именно поэтому мы делали бэкап DNS-конфигурации.

Рекомендации после переноса

После успешного переноса не забудь:

  1. Поднять TTL обратно до 3600-86400 секунд. Низкий TTL создает лишнюю нагрузку на DNS-серверы.
  2. Настроить оповещения в панели защиты, чтобы получать уведомления об атаках.
  3. Изучить настройки файрвола в панели - можно ограничить подключения по версии протокола, включить капчу для подозрительных подключений, настроить rate limiting.
  4. Не светить реальный IP - не указывай его в публичных конфигах, DNS-записях для других поддоменов на том же IP, трекерах серверов.
  5. Проверить SRV-записи - если используешь SRV для Minecraft, убедись, что они тоже указывают на защищенный адрес.

Итого

Перенос Minecraft сервера под DDoS-защиту - не рокет сайенс. Весь процесс сводится к: подготовил DNS, настроил фильтр, переключил запись, проверил работу. При правильной подготовке (особенно с низким TTL) даунтайм равен нулю.

Главное - не торопиться и проверять каждый шаг. Лучше потратить лишние 30 минут на подготовку, чем потом разбираться, почему 200 игроков не могут зайти на сервер.


Proteja Seu Servidor de Ataques DDoS

Proteção gratuita com configuração em 5 minutos. 1 TB de tráfego incluso.

Experimentar Grátis


Artigos Relacionados