Если вы когда-нибудь задумывались, что такое Velocity в мире Minecraft и зачем он нужен, то этот пост — именно для вас. Мы разберём, почему Velocity — это настоящий гений инфраструктуры Minecraft, который помогает сделать игру быстрее, безопаснее и стабильнее. А ещё расскажем, как его правильно настроить, чтобы ваш сервер не превратился в лагодром или поле битвы с DDoS-атаками.


Velocity — прокси сервер нового поколения для Minecraft

Velocity — это современный прокси сервер, который выступает связующим звеном между игроками и внутренними серверами Minecraft (например, lobby, survival и другими). Он пришёл на смену классическим решениям вроде BungeeCord, предлагая улучшенную производительность, безопасность и гибкость.

Почему Velocity?

  • Производительность: Velocity оптимизирован для работы с большим числом игроков и минимальной задержкой (latency).
  • Безопасность: поддерживает современные методы аутентификации и защиту от подделки адресов.
  • Совместимость: работает с серверами Bukkit, Spigot, Paper и даже с BungeeCord-плагинами.
  • Удобство: простая настройка и мощные возможности для масштабирования.

Ключевые параметры конфигурации Velocity

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

Параметр Описание Влияние на сервер
online-mode Включение проверки аккаунтов через Mojang (true) или отключение (false) Безопасность: true — защищает от фейков
forwarding.secret-file Файл с секретным ключом для безопасной передачи данных между прокси и внутренними серверами Безопасность: предотвращает подделку
compression-threshold Размер пакета (в байтах), при котором включается сжатие Производительность: баланс между CPU и сетью
compression-level Уровень сжатия (от -1 до 9) Производительность: влияет на нагрузку CPU
connection-timeout Время ожидания соединения в миллисекундах Отказоустойчивость: предотвращает подвисания
read-timeout Время ожидания чтения данных Отказоустойчивость
enable-player-address-logging Логирование IP-адресов игроков Конфиденциальность: влияет на приватность
show-ping-requests Отображение запросов пинга Мониторинг: помогает отслеживать нагрузку
force-key-authentication Принудительная аутентификация ключей Безопасность: предотвращает несанкционированный доступ
kick-existing-players Отключение игроков при повторном входе Управление сессиями
prevent-client-proxy-connections Запрет подключения клиентов напрямую к прокси Безопасность: предотвращает обход прокси

Как правильно использовать online-mode

  • online-mode = true — рекомендуется для публичных серверов, где важна проверка подлинности аккаунтов через Mojang. Это снижает риск подделки игроков и читерства.
  • online-mode = false — используется для локальных или приватных серверов, где нет доступа к интернету или для тестирования. Но будьте осторожны: отключение онлайн-режима открывает двери для фейковых аккаунтов и атак.

Риски offline-mode:

  • Возможность подделки аккаунтов.
  • Уязвимость к читерству и взлому.
  • Необходимость дополнительных мер безопасности, например, строгой настройки forwarding.secret.

Что такое forwarding.secret и как его использовать

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

Как сгенерировать и хранить forwarding.secret

  • Используйте генераторы случайных строк длиной не менее 32 символов.
  • Храните файл forwarding.secret в защищённом месте, с ограниченным доступом.
  • Не передавайте ключ в открытом виде и не публикуйте в общедоступных местах.
  • При смене ключа обновляйте его одновременно на прокси и всех внутренних серверах.

Связывание нескольких внутренних серверов через Velocity

Velocity позволяет легко объединять несколько серверов, например, lobby и survival, в единую сеть.

Пример конфигурации в velocity.toml:

[servers]
lobby = "127.0.0.1:25566"
survival = "127.0.0.1:30014"

try = ["lobby"]

[forced-hosts]
"lobby.example.com" = ["lobby"]

Что важно учитывать:

  • Убедитесь, что все внутренние сервера настроены на работу с forwarding.secret.
  • Настройте тайм-ауты и лимиты соединений для устойчивой работы.
  • Используйте try для указания сервера по умолчанию при подключении.

Proxy-protocol, BungeeCord и Velocity — кто есть кто?

Технология Роль и особенности
Proxy-protocol Протокол передачи информации о клиенте через прокси (IP, порт)
BungeeCord Классический прокси сервер для Minecraft, широко используемый, но с ограничениями по безопасности
Velocity Современный прокси сервер с улучшенной производительностью, безопасностью и поддержкой плагинов

Выбор: Velocity — лучший выбор для новых проектов благодаря стабильности и функционалу.


Практические советы по настройке лимитов и тайм-аутов

  • login-ratelimit — ограничивает количество попыток входа, чтобы защититься от атак перебора.
  • connection-timeout и read-timeout — устанавливайте значения в диапазоне 3000-5000 мс и 30000 мс соответственно для баланса между отзывчивостью и стабильностью.
  • Обрабатывайте пинг-запросы (show-ping-requests) для мониторинга нагрузки, но отключайте в продакшене для снижения нагрузки.

Оптимизация сжатия: compression-threshold и compression-level

  • compression-threshold (например, 256 байт) — пакеты меньше этого размера не сжимаются, что снижает нагрузку на CPU.
  • compression-level — уровень сжатия, где -1 означает использование стандартного уровня. Более высокий уровень снижает трафик, но увеличивает нагрузку на процессор.

Баланс: Для серверов с мощным процессором (например, Ryzen 9 9950x) можно повысить уровень сжатия, чтобы экономить пропускную способность сети.


Конфиденциальность и мониторинг

  • enable-player-address-logging — включение логирования IP-адресов игроков помогает в расследовании инцидентов, но снижает приватность.
  • show-ping-requests — полезно для мониторинга, но может раскрывать информацию о нагрузке.

Безопасность перед запуском в продакшн

Перед тем как открыть сервер для игроков, обязательно:

  • Включите force-key-authentication для защиты forwarding.secret.
  • Настройте kick-existing-players для предотвращения конфликтов сессий.
  • Отключите prevent-client-proxy-connections, если хотите запретить обход прокси.

Особенности работы с offline-mode и риски

Если вы вынуждены использовать online-mode = false, то:

  • Обязательно используйте forwarding.secret для защиты.
  • Ограничьте доступ к серверу через firewall.
  • Будьте готовы к повышенному риску читерства и подделки аккаунтов.

Тестирование конфигурации перед релизом

  • Используйте локальные тесты с несколькими клиентами.
  • Проверяйте логи Velocity на ошибки.
  • Тестируйте пинг и время отклика.
  • Проверяйте работу forwarding.secret и аутентификации.

Обзор аппаратных требований и хостинга для Velocity

Для стабильной работы Velocity и Minecraft сервера нужны:

Параметр Рекомендации для высоконагруженных серверов
Процессор Мощный CPU, например AMD Ryzen 9 9950x с большим количеством ядер
Оперативная память От 8 ГБ и выше, в зависимости от числа игроков и модов
Дисковое пространство Быстрые NVMe SSD, минимум 40-60 ГБ для больших миров и модов
Сеть Канал с пропускной способностью не менее 1 Гбит/с
Защита Встроенная DDoS защита, способная отбивать атаки до нескольких Тбит/с

Пример тарифов хостинга с поддержкой Velocity

Тариф CPU (ядра) RAM (ГБ) Диск (ГБ) Особенности
Бесплатный 0.3 1.5 5 Для тестов и новичков
Золотой Ultra 2.5 8 40 Для средних серверов
Алмазный Ultra 4 20 80 Для больших проектов
Бедроковый Ultra 5 32 100 Максимальная производительность

Как установить и настроить Velocity

  1. Скачайте актуальную версию с официального сайта.
  2. Создайте файл velocity.toml с базовой конфигурацией.
  3. Настройте bind (адрес и порт), online-mode, forwarding.secret-file.
  4. Добавьте внутренние сервера в раздел [servers].
  5. Запустите Velocity и проверьте логи на ошибки.
  6. Тестируйте подключение клиентов.

Мониторинг и обновление Velocity

  • Используйте встроенные логи для отслеживания ошибок и активности.
  • Настройте сбор статистики пинга и нагрузки.
  • Обновляйте Velocity без простоя, используя rolling update или запуск параллельного прокси.

Полезные ссылки для изучения Velocity


Velocity — это мощный инструмент для создания масштабируемой и безопасной Minecraft-инфраструктуры. Правильная настройка параметров, понимание рисков и возможностей помогут вам сделать сервер мечты для вас и ваших игроков. Не бойтесь экспериментировать, но всегда тестируйте изменения — и ваш Minecraft будет летать, как на крыльях!