- Баллы
- 98
- Имя в Minecraft
- OverwriteMC
Как мы все, вероятно, знаем, BungeeCord более не является перспективным и развивающемя прокси сервером. Его форки поддерживаются с куда более меньшей активностью, а Paper перешел на поддержку более развитого в этом плане прокси сервера - Velocity.
По этому настало время создать гайд по Velocity и его настройке, в котором будут описаны все основные правила его использования, а также будет рассказано, как подключить к нему антибот систему, которая встроена во всеми известный форк банжи - BotFilter, а также о важных аспектах при работе с данным прокси сервером.
По этому настало время создать гайд по Velocity и его настройке, в котором будут описаны все основные правила его использования, а также будет рассказано, как подключить к нему антибот систему, которая встроена во всеми известный форк банжи - BotFilter, а также о важных аспектах при работе с данным прокси сервером.
⦁ Пункт 1 - устанавливаем и запускаем
Тут проблем возникнуть не должно, т.к. тут процесс схож с установкой обычного ядра сервера или банжи.
1) Качаем Velocity с сайта PaperMС.
2) Положите скачанный вами .jar файл в определенную папку, после чего создайте в ней файл start.txt, в котором напишите следующее:
java -Xmx2G -Xms2G -XX:+UseG1GC -XX:G1HeapRegionSize=4M -XX:+UnlockExperimentalVMOptions -XX:+ParallelRefProcEnabled -XX:+AlwaysPreTouch -XX:MaxInlineLevel=15 -jar velocity.jar
(Учтите, что ваш jar файл должен называться именно velocity! А также вам потребуется Java версии 17 или выше!)
3) Переименуйте start.txt в start.bat и запустите его. После этого дождитесь, когда все папки и файлы будут созданы и после сообщения по типу "Done (2,2s)!" закрывайте открывшееся окно консоли. Запустите его вновь уже после полной настройки.
⦁ Пункт 2 - настройка Velocity
Velocity имеет один файл конфигурации - velocity.toml. Его можно открыть при помощи любого текстового редактора, но я рекомендую Notepad++.
Специально для вас перевел данный файл. Ознакомиться со всеми его значениями можете ниже:
Код:
# Версия конфигурации. Не изменяйте это
config-version = "2.7"
# К какому порту должен быть привязан прокси? По умолчанию привязывается ко всем адресам на порту 25565.
bind = "0.0.0.0:25565"
# Какое сообщение MOTD должно отображаться? Это показывается, когда игрок добавляет ваш сервер в список.
# Поддерживается только формат MiniMessage.
motd = "<#09add3>A Velocity Server"
# Какое максимальное количество игроков отображать? (Velocity не поддерживает ограничение на количество игроков.)
show-max-players = 500
# Нужно ли аутентифицировать игроков через Mojang? По умолчанию включено.
online-mode = true
# Должен ли прокси применять новый стандарт безопасности с публичными ключами? По умолчанию включено.
force-key-authentication = true
# Если ISP/AS клиента, отправленный этим прокси, отличается от того, что получен от сервера аутентификации Mojang,
# игрок будет кикнут. Это блокирует некоторые VPN и прокси-соединения, но является слабой защитой.
prevent-client-proxy-connections = false
# Должен ли прокси передавать IP-адреса и другие данные на backend-серверы?
# Доступные варианты:
# - "none": Передача не выполняется. Все игроки будут отображаться как подключённые
# через прокси и получат оффлайн-UUID.
# - "legacy": Передача IP и UUID в формате, совместимом с BungeeCord. Используйте это,
# если у вас серверы на Minecraft 1.12 или ниже.
# - "bungeeguard": Передача IP и UUID в формате, поддерживаемом плагином BungeeGuard.
# Используйте, если у вас серверы на 1.12 или ниже и нет возможности
# настроить сетевой фаервол (на shared-хостинге).
# - "modern": Передача IP и UUID как часть процесса входа, используя нативный
# механизм Velocity. Только для Minecraft 1.13 и выше.
player-info-forwarding-mode = "NONE"
# Если используется modern или BungeeGuard, укажите файл с уникальным секретным ключом.
# Файл должен быть в UTF-8 и не пустым.
forwarding-secret-file = "forwarding.secret"
# Сообщать ли о поддержке Forge? Если у вас модифицированный сервер, рекомендуется включить.
#
# Если у вас один модпак, лучше использовать ping-passthrough = "mods" для красивого отображения в списке серверов.
announce-forge = false
# Если включено (по умолчанию выключено) и прокси в online-режиме, Velocity будет кикать
# любого онлайн-игрока при попытке дублирующего подключения.
kick-existing-players = false
# Должен ли Velocity передавать запросы пинга сервера на backend-сервер?
# Доступные варианты:
# - "disabled": Без передачи. Ответ формируется на основе velocity.toml и server-icon.png.
# - "mods": Передаёт только список модов из backend-сервера.
# Используется первый сервер из списка try (или forced host) с модами.
# - "description": Использует описание и список модов из backend-сервера.
# - "all": Полностью использует ответ backend-сервера. Если серверы недоступны, используется конфиг Velocity.
ping-passthrough = "DISABLED"
# Если включено (по умолчанию выключено), в списке серверов будет отображаться пример игроков онлайн
# при наведении на количество игроков. Не работает при ping-passthrough = "description" или "all".
sample-players-in-ping = false
# Если выключено (по умолчанию включено), IP-адреса игроков в логах заменяются на <ip address withheld>.
enable-player-address-logging = true
[servers]
# Настройте серверы здесь. Ключ — название сервера, значение — IP для подключения.
lobby = "127.0.0.1:30066"
factions = "127.0.0.1:30067"
minigames = "127.0.0.1:30068"
# Порядок подключения к серверам при входе или кике.
try = [
"lobby"
]
[forced-hosts]
# Настройка forced hosts.
"lobby.example.com" = [
"lobby"
]
"factions.example.com" = [
"factions"
]
"minigames.example.com" = [
"minigames"
]
[advanced]
# Минимальный размер пакета для сжатия. 0 — сжимать всё, -1 — отключить сжатие.
compression-threshold = 256
# Уровень сжатия (0-9). По умолчанию -1 (уровень 6).
compression-level = -1
# Задержка (в миллисекундах) между подключениями. По умолчанию 3 секунды. 0 — отключить.
login-ratelimit = 3000
# Таймаут подключения (по умолчанию 5 секунд).
connection-timeout = 5000
# Таймаут чтения (по умолчанию 30 секунд).
read-timeout = 30000
# Совместимость с PROXY-протоколом HAProxy. Не включайте, если не уверены.
haproxy-protocol = false
# Поддержка TCP Fast Open (требуется Linux).
tcp-fast-open = false
# Поддержка каналов плагинов BungeeCord.
bungee-plugin-message-channel = true
# Показывать запросы ping от клиентов.
show-ping-requests = false
# Пытаться переподключать игроков при неожиданном разрыве (кроме таймаутов).
failover-on-unexpected-server-disconnect = true
# Сообщать клиентам 1.13+ о командах прокси.
announce-proxy-commands = true
# Логировать выполнение команд.
log-command-executions = false
# Логировать подключения, переходы между серверами и отключения игроков.
log-player-connections = true
# Разрешать трансфер игроков с других хостов через пакет Transfer (Minecraft 1.20.5).
accepts-transfers = false
# Поддержка SO_REUSEPORT для лучшей масштабируемости (требуется Linux/macOS).
enable-reuse-port = false
# Ограничение скорости отправки команд (по умолчанию 50 мс = 20 команд/сек).
command-rate-limit = 50
# Передавать команды на сервер при превышении лимита?
forward-commands-if-rate-limited = true
# Сколько команд можно отправить после превышения лимита до кика? 0 — отключить.
kick-after-rate-limited-commands = 0
# Ограничение скорости автодополнения команд (по умолчанию 10 мс).
tab-complete-rate-limit = 10
# Сколько автодополнений можно отправить до кика? 0 — отключить.
kick-after-rate-limited-tab-completes = 0
[query]
# Включить ответы на запросы GameSpy 4.
enabled = false
# Порт для query-протокола.
port = 25565
# Название карты для query-сервисов.
map = "Velocity"
# Показывать ли плагины в ответах query.
show-plugins = false
Теперь перейдем непосредственно к настройке.
В первую очередь давайте определимся с типом "пересылки IP адресов"
Если вы держите сервер на версиях 1.13+ - то как и указано, используйте режим player-info-forwarding-mode = "modern".
Если же вы держите сервер на версиях 1.12 и ниже - вам НАСТОЯТЕЛЬНО рекомендуется использовать режим player-info-forwarding-mode = "bungeeguard".
Указываем это значение соответственно тому, что для вас подходит.
Далее нам нужно придумать ключ и указать его в файле, который указан в графе forwarding-secret = "forvarding.secret" (по умолчанию там уже будет сгенерирован ключ, но я рекомендую ставить свой)
Если вы выбрали режим modern, то данный ключ нужно будет выставить в paper.yml (paper-global.yml для новых версий), найдя поле velocity-support, после чего активировав его, поставив enabled: true, после чего найти поле secret:, в нем поле default: '' и вставить в кавычки придуманный вами ключ.
Если вы выбрали режим bungeeguard - вам необходимо будет скачать плагин BungeeGuard, установить его на игровые сервера и вставить придуманный вами код в его конфиг в поле allowed-tokens:
Важное примечание:
В файле spigot.yml есть строка bungeecord: false
Если вы настроили player-info-forwarding-mode = "modern" и в paper.yml (paper-global.yml для новых версий) включили поддержку велосити - данное поле должно оставаться false.
Если же вы имеете значение bungeeguard - оно должно стоять на true!
Далее нам нужно настроить сервера. Тут всё просто. В разделе servers у вас есть примеры настроенных серверов. Вам лишь нужно подставить свои значения и при необходимости переименовать сервера под себя. Просто укажите имя_сервера = "IP сервера:порт сервера" (порт сервера находится в server.properties и его можно менять).
После того как добавили все нужные вам сервера - укажите сервер, на который будет подключать игрока сразу после захода в графе try =
Теперь разберемся с некоторыми настройками, которые вы вероятно будете менять.
1) announce-proxy-commands = true - поставьте на false, если не хотите, чтобы табкомплит выдавал игрокам команды вашего прокси.
2) ping-passthrough = "description" - поставьте значение на DISABLED, если хотите увидеть зеленую галочку совместимости с модами на клиенте. Я не знаю как это точно работает, но у меня работает.
3) force-key-authentication = true - поставьте его на false если ваш сервер на оффлайн моде (тоесть без лицензии).
⦁ Пункт 3 - Команды Velocity.
По умолчанию Velocity имеет 4 команды:
/velocity (version|plugins|reload|dump) - показывает версию велосити|плагины велосити|перезагружает прокси|выгружает дамп с информацией о прокси соответственно
/end - выключает прокси
/glist - показывает, сколько игроков находится на прокси. /glist all - показывает, сколько игроков где находятся
/server - позволяет перемещаться между серверами
Права можете посмотреть тут:
https://docs.papermc.io/velocity/built-in-commands
⦁ Пункт 4 - Полезные утилиты:
Тут я хочу рассказать о том какие утилиты вам практически необходимы при работе с Velocity и зачем они вам нужны.
1) Наверное самой важной частью является защита от ботов. Данную функцию может взять на себя такой плагин как Sonar.
Там имеется как и стандартная капча, так и продвинутые проверки, коих нет в других анти-ботах, что поможет для защиты от ботов, способных обходить капчи.
2) Важно задуматься об ограничении игроков в использовании команд прокси сервера, т.к. если вы будете невнимательны - ваша авторизация будет пройдена а вы взломаны!
Всем игрокам по умолчанию на Velocity доступна команда /server. Заблокировать её так просто не получится, по этому вам нужно будет снять права с игроков на её использование. С этим справляется плагин LuckPermsVelocity. Как только установите его на прокси сервер - Пропишите /lpv group default permission set velocity.command.server false. Эта команда выдаст отрицательное право на команду /server всем игрокам и тем самым запретит её использование.
3) Довольно полезным может оказаться для вас плагин CommandSync. С недавних пор в него добавили поддержку велосити, что сделало его вновь актуальным. Если кратко - он нужен для того, чтобы выполнять с прокси команды на серверах. Очень удобно, если вы не можете использовать базу данных, но у вас есть несколько игровых режимов.
4) Также стоит задуматься о блокировке команд. Если вам необходимо ограничить прочие команды на прокси сервере - вам рекомендуется использовать плагин CommandWhitelist. По названию, как я думаю, ясно, что он делает.
⦁ Пункт 5 - Полезные ссылки.
https://docs.papermc.io/velocity - оф. вики велосити
⦁ Видео-гайд. Спасибо _MrJaycob_
⦁ Заключение.
Думаю теперь вам стало понятно, как настроить велосити и про то как с ним работать. Если вы решаете, что выбрать - Bungee или Velocity...
То лично я бы посоветовал NullCordX :3
Последнее редактирование:
