Как подключить сервер к Velocity
Подготовка окружения на proxify.cloud
1. Заказ и настройка выделенного сервера
В панели proxify.cloud закажите выделенный сервер (Dedicated Server) с Ubuntu 22.04/24.04 LTS. После установки ОС подключитесь по SSH:
ssh root@<IP_ВАШЕГО_СЕРВЕРА>
Обновите систему и установите базовые утилиты:
apt update && apt upgrade -y
apt install -y openjdk-21-jre-headless screen wget curl unzip ufw
2. Настройка файрвола (UFW)
Откройте порты для Velocity (прокси) и внутренних серверов:
ufw allow 25565/tcp # Velocity (внешний порт)
ufw allow 25566/tcp # Backend-1 (Paper/Spigot)
ufw allow 25567/tcp # Backend-2 (Paper/Spigot)
ufw allow 22/tcp # SSH
ufw enable
Проверьте статус:
ufw status numbered
Установка и настройка Velocity (прокси)
3. Создание пользователя и директорий
Не запускайте сервер от root. Создайте отдельного пользователя:
adduser --disabled-password --gecos "" velocity
su - velocity
Создайте структуру папок:
mkdir -p ~/velocity ~/servers/backend1 ~/servers/backend2
4. Скачивание Velocity
Перейдите в папку прокси и скачайте последнюю стабильную версию:
cd ~/velocity
wget https://versions.velocitypowered.com/download/3.3.0/velocity-3.3.0.jar -O velocity.jar
Проверьте актуальную версию на versions.velocitypowered.com.
5. Первый запуск — генерация конфига
Запустите один раз для создания velocity.toml:
java -Xms512M -Xmx512M -jar velocity.jar
Остановите процесс (Ctrl+C) после появления сообщения «Configuration file created».
6. Редактирование velocity.toml
Откройте конфиг:
nano ~/velocity/velocity.toml
Пример рабочей конфигурации:
config-version = "3.3.0"
[servers]
# Внутренние серверы (backend)
lobby = "127.0.0.1:25566"
survival = "127.0.0.1:25567"
[bind]
# Внешний адрес, куда подключаются игроки
address = "0.0.0.0:25565"
[global]
# Принудительная авторизация через Mojang (true для публичных серверов)
online-mode = true
# Секрет для пересылки UUID/IP (должен совпадать на бэкендах)
player-info-forwarding-mode = "MODERN"
forwarding-secret = "ваш_уникальный_секрет_минимум_16_символов"
# Максимальное количество игроков на прокси
max-players = 500
[advanced]
# Пул потоков для обработки соединений
compression-threshold = 256
login-ratelimit = 3000
Важно: forwarding-secret сгенерируйте командой:
openssl rand -base64 32
Сохраните его — понадобится на каждом бэкенде.
7. Настройка systemd для автозапуска Velocity
Выйдите из пользователя velocity (exit) и создайте сервис:
nano /etc/systemd/system/velocity.service
Содержимое:
[Unit]
Description=Velocity Proxy Server
After=network.target
[Service]
Type=simple
User=velocity
WorkingDirectory=/home/velocity/velocity
ExecStart=/usr/bin/java -Xms1G -Xmx1G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -jar velocity.jar
Restart=on-failure
RestartSec=10
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
Включите и запустите:
systemctl daemon-reload
systemctl enable velocity
systemctl start velocity
systemctl status velocity
Проверьте логи:
journalctl -u velocity -f
Установка и настройка бэкенд-серверов (Paper)
8. Установка Paper для backend1 (lobby)
su - velocity
cd ~/servers/backend1
wget https://api.papermc.io/v2/projects/paper/versions/1.21.1/builds/109/downloads/paper-1.21.1-109.jar -O paper.jar
Замените версию и билд на актуальные с papermc.io.
Примите EULA и запустите один раз:
echo "eula=true" > eula.txt
java -Xms1G -Xmx1G -jar paper.jar --nogui
Остановите (stop) после генерации файлов.
9. Настройка server.properties для backend1
nano ~/servers/backend1/server.properties
Ключевые параметры:
server-port=25566
server-ip=127.0.0.1
online-mode=false
enable-query=false
enable-rcon=false
max-players=200
view-distance=10
simulation-distance=10
network-compression-threshold=256
Важно: online-mode=false — авторизацию выполняет Velocity. Порт должен совпадать с velocity.toml.
10. Настройка velocity-forwarding (Paper/Spigot)
В Paper 1.18+ используется встроенная поддержка Modern Forwarding. Создайте/отредактируйте paper-global.yml:
nano ~/servers/backend1/config/paper-global.yml
Добавьте:
velocity:
enabled: true
online-mode: true
secret: "ваш_уникальный_секрет_минимум_16_символов"
Секрет должен в точности совпадать с forwarding-secret в velocity.toml.
11. Повторите для backend2 (survival)
cd ~/servers/backend2
wget https://api.papermc.io/v2/projects/paper/versions/1.21.1/builds/109/downloads/paper-1.21.1-109.jar -O paper.jar
echo "eula=true" > eula.txt
java -Xms2G -Xmx2G -jar paper.jar --nogui
# остановите после генерации
server.properties:
server-port=25567
server-ip=127.0.0.1
online-mode=false
max-players=200
config/paper-global.yml — тот же секрет.
12. Systemd сервисы для бэкендов
Выйдите из пользователя velocity (exit). Создайте сервис для lobby:
nano /etc/systemd/system/mc-backend1.service
[Unit]
Description=Minecraft Backend 1 (Lobby)
After=network.target velocity.service
Requires=velocity.service
[Service]
Type=simple
User=velocity
WorkingDirectory=/home/velocity/servers/backend1
ExecStart=/usr/bin/java -Xms2G -Xmx2G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -jar paper.jar --nogui
Restart=on-failure
RestartSec=10
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
Аналогично для backend2 (mc-backend2.service), измените WorkingDirectory и Description.
Запустите:
systemctl daemon-reload
systemctl enable mc-backend1 mc-backend2
systemctl start mc-backend1 mc-backend2
systemctl status mc-backend1 mc-backend2
Проверка подключения и базовая диагностика
13. Проверка портов
ss -tlnp | grep -E '25565|25566|25567'
Ожидаемый вывод:
LISTEN 0 100 0.0.0.0:25565 0.0.0.0:* users:(("java",pid=...,fd=...))
LISTEN 0 100 127.0.0.1:25566 0.0.0.0:* users:(("java",pid=...,fd=...))
LISTEN 0 100 127.0.0.1:25567 0.0.0.0:* users:(("java",pid=...,fd=...))
14. Тест подключения через Velocity
В клиенте Minecraft добавьте сервер:
- Адрес:
<IP_ВАШЕГО_СЕРВЕРА>:25565 - Версия: 1.21.1 (или ваша)
При успешном входе вы попадёте на lobby (первый сервер в списке servers в velocity.toml).
15. Команды переключения между серверами
В чате Velocity доступны команды:
/server lobby
/server survival
/servers
Если команды не работают — проверьте, что плагин velocity-api не конфликтует (в Paper он встроен).
Настройка домена и SRV-записи (опционально)
16. A-запись и SRV в DNS
В панели регистратора домена создайте:
- A-запись:
play→<IP_ВАШЕГО_СЕРВЕРА> - SRV-запись:
_minecraft._tcp.play→priority=0 weight=5 port=25565 target=play.вашдомен.ru
Тогда игроки подключаются просто по play.вашдомен.ru без порта.
Бэкапы и мониторинг
17. Простой скрипт бэкапа миров
nano /home/velocity/backup.sh
#!/bin/bash
DATE=$(date +%F_%H-%M)
BACKUP_DIR="/home/velocity/backups"
mkdir -p "$BACKUP_DIR"
for SERVER in backend1 backend2; do
tar -czf "$BACKUP_DIR/${SERVER}_${DATE}.tar.gz" -C /home/velocity/servers/$SERVER world world_nether world_the_end 2>/dev/null
done
# Хранить последние 7 дней
find "$BACKUP_DIR" -type f -mtime +7 -delete
Сделайте исполняемым и добавьте в cron:
chmod +x /home/velocity/backup.sh
crontab -u velocity -e
Добавьте строку (каждый день в 04:00):
0 4 * * * /home/velocity/backup.sh
18. Мониторинг через systemd и journalctl
Просмотр логов Velocity:
journalctl -u velocity -f --since "1 hour ago"
Просмотр логов бэкенда:
journalctl -u mc-backend1 -f
Возможные проблемы и решения
| Проблема | При
Комментарии (0)