Velocity Proxy ile Network Kurulumu: Eksiksiz Rehber

Velocity kurulumu, velocity.toml yapılandırma, backend sunucu ekleme, modern forwarding, forced hosts, güvenlik, LuckPerms network setup.

40 dk okuma

# Velocity Nedir?

Velocity, PaperMC ekibi tarafından geliştirilen modern bir Minecraft proxy yazılımıdır. Birden fazla Minecraft sunucusunu tek bir IP altında birleştirerek oyuncuların sunucular arasında sorunsuz geçiş yapmasını sağlar. BungeeCord'un modern, güvenli ve performanslı alternatifidir.

Velocity bir proxy'dir, Minecraft sunucusu değildir. Oyun mantığı çalıştırmaz — sadece oyuncuları backend sunuculara yönlendirir. Her backend sunucu (lobby, survival, skyblock vb.) ayrı bir Paper/Purpur instance'ıdır.

# BungeeCord vs Velocity Karşılaştırması

ÖzellikBungeeCordVelocity
GeliştiriciSpigotMC (md_5)PaperMC
PerformansOrta — eski mimarisi nedeniyle daha fazla CPU/RAM kullanırYüksek — %50'ye kadar daha az kaynak tüketimi
ForwardingBungeeGuard veya legacy IP forwardingModern forwarding (HMAC tabanlı, güvenli)
GüvenlikIP spoofing açığı (ek eklenti gerektirir)Yerleşik güvenlik, UUID spoofing koruması
Plugin APIEski, callback tabanlıModern, event-driven, CompletableFuture desteği
Backend DesteğiSpigot, PaperPaper, Purpur, Fabric, Forge
DDoS KorumasıYok (eklenti gerekir)Yerleşik rate limiting
1.21+ UyumlulukVarVar — öncelikli destek
Aktif GeliştirmeYavaşÇok aktif
ToplulukGeniş (eski)Büyüyen (modern)
2026 itibarıyla yeni network kurulumlarında Velocity kesinlikle önerilir. BungeeCord sadece legacy uyumluluk gerektiren durumlarda kullanılmalıdır.

# Velocity Kurulumu

Velocity için ayrı bir kullanıcı ve dizin oluşturun. Proxy, backend sunuculardan bağımsız çalışır.

# Gereksinimler

  • Java 17 veya üzeri
  • Minimum 512 MB RAM (proxy için)
  • Ayrı port (varsayılan: 25577)
  • Backend sunucular için ek RAM ve portlar

# İndirme ve İlk Başlatma

İlk başlatmadan sonra aşağıdaki dosyalar oluşur:

# Dizin Yapısı

text
~/velocity/
├── velocity-3.4.0.jar        # Ana proxy dosyası
├── velocity.toml              # Ana yapılandırma
├── forwarding.secret          # Modern forwarding anahtarı
├── server-icon.png            # Sunucu listesi ikonu (64x64)
├── plugins/                   # Velocity eklentileri
└── logs/                      # Log dosyaları

# velocity.toml Yapılandırması

velocity.toml, proxy'nin tüm davranışını belirleyen ana config dosyasıdır. Her ayarı detaylı inceliyoruz:

# Genel Ayarlar

AyarVarsayılanÖnerilenAçıklama
bind0.0.0.0:255770.0.0.0:25577Proxy'nin dinleyeceği IP ve port
motdA Velocity ServerÖzel MOTDSunucu listesinde görünen açıklama (renk kodu destekler)
show-max-players500500Sunucu listesinde gösterilen maks oyuncu
online-modetruetrueMojang doğrulaması (premium kontrol)
force-key-presencetruetrueChat imzalama anahtarı zorunluluğu (1.19.1+)
player-info-forwarding-modeNONEmodernIP/UUID iletim modu (modern = en güvenli)
announce-forgefalsefalseForge istemcilerine mod listesi gönder
toml
# velocity.toml — Genel ayarlar
bind = "0.0.0.0:25577"
motd = "&b&lKEYDAL &fNetwork &7| &aSunucumuza hoş geldiniz!"
show-max-players = 500
online-mode = true
force-key-presence = true
player-info-forwarding-mode = "modern"

# Sunucu Tanımları

[servers] bölümünde backend sunucuları tanımlarsınız. Her sunucu bir isim ve IP:port çiftinden oluşur.

toml
[servers]
lobby = "127.0.0.1:25565"
survival = "127.0.0.1:25566"
skyblock = "127.0.0.1:25567"
creative = "127.0.0.1:25568"

# Oyuncu ilk bağlandığında sırayla denenecek sunucular
try = ["lobby"]
try listesi sıralıdır. İlk sunucu dolu veya kapalıysa ikincisine geçer. Genellikle sadece lobby yeterlidir.

# Forced Hosts

Farklı alan adları ile farklı sunuculara doğrudan yönlendirme yapabilirsiniz:

toml
[forced-hosts]
"play.example.com" = ["lobby"]
"survival.example.com" = ["survival"]
"skyblock.example.com" = ["skyblock"]
"creative.example.com" = ["creative"]

Tüm alan adları DNS'te aynı sunucu IP'sine ve Velocity portuna (25577) yönlenmelidir. Velocity, gelen hostname'e göre doğru backend'e yönlendirir.

text
# DNS A kayıtları (hepsi aynı IP'ye)
play.example.com       A    185.x.x.x
survival.example.com   A    185.x.x.x
skyblock.example.com   A    185.x.x.x

# SRV kaydı (port 25577 ise gerekli)
_minecraft._tcp.play.example.com  SRV  0 0 25577 play.example.com

# Gelişmiş Ayarlar

AyarVarsayılanAçıklama
login-ratelimit3000Login denemeleri arası minimum süre (ms)
connection-timeout5000Backend bağlantı zaman aşımı (ms)
read-timeout30000Veri okuma zaman aşımı (ms)
haproxy-protocolfalseHAProxy PROXY protocol desteği (TCPShield için)
ping-passthroughDISABLEDPing bilgisini backend'den al (ALL, MODS, DESCRIPTION, DISABLED)
toml
[advanced]
compression-threshold = 256
compression-level = -1
login-ratelimit = 3000
connection-timeout = 5000
read-timeout = 30000
haproxy-protocol = false
tcp-fast-open = false
bungee-plugin-message-channel = true
show-ping-requests = false
failover-on-unexpected-server-disconnect = true
announce-proxy-commands = true
log-command-executions = false
log-player-connections = true

# Backend Sunucu Ekleme

Her backend sunucu bağımsız bir Paper/Purpur instance'ıdır. Farklı portlarda çalışır ve kendi config dosyaları vardır.

# Backend Dizin Yapısı

text
~/servers/
├── lobby/                 # Port 25565
│   ├── paper.jar
│   ├── server.properties
│   └── config/paper-global.yml
├── survival/              # Port 25566
│   ├── paper.jar
│   ├── server.properties
│   └── config/paper-global.yml
└── skyblock/              # Port 25567
    ├── paper.jar
    ├── server.properties
    └── config/paper-global.yml

# server.properties Ayarları

Her backend sunucunun server.properties dosyasında şu ayarlar kritiktir:

AyarDeğerAçıklama
server-port25565/25566/25567Her sunucu farklı port
server-ip127.0.0.1Sadece localhost'tan bağlantı kabul et
online-modefalseDoğrulama Velocity'de yapılıyor
prevent-proxy-connectionsfalseProxy bağlantılarını engelleme
Backend sunucularda online-mode=false zorunludur. Doğrulama Velocity üzerinden yapılır. Ancak server-ip=127.0.0.1 ile dışarıdan doğrudan erişimi mutlaka kapatın!

# Modern Forwarding Yapılandırması

Modern forwarding, Velocity'nin HMAC tabanlı güvenli IP/UUID iletim sistemidir. Backend sunucular oyuncunun gerçek IP'sini, UUID'sini ve skin bilgilerini güvenli şekilde alır.

# Adım 1: Velocity Tarafı

toml
# velocity.toml
player-info-forwarding-mode = "modern"

Bu ayar zaten varsayılan olarak mevcuttur. forwarding.secret dosyası ilk başlatmada otomatik oluşur.

# Adım 2: Secret'ı Kopyalama

Bu anahtarı her backend sunucuya kopyalamanız gerekir.

# Adım 3: Paper Backend Yapılandırması

Her backend sunucuda config/paper-global.yml dosyasını düzenleyin:

yaml
# config/paper-global.yml
proxies:
  velocity:
    enabled: true
    online-mode: true
    secret: "aB3dEf7GhI9jKlMnOpQrStUvWxYz12"   # forwarding.secret ile birebir aynı
Secret değeri tüm backend sunucularda aynı olmalıdır. Farklı secret = bağlantı reddedilir. Kopyalarken boşluk/satır sonu eklenmediğinden emin olun.

# Forwarding Modları Karşılaştırması

ModGüvenlikAçıklama
noneYokIP/UUID iletimi yok — backend gerçek bilgileri alamaz
legacyDüşükBungeeCord uyumlu — IP spoofing'e açık
bungeeguardOrtaBungeeGuard token ile korumalı legacy
modernYüksekHMAC tabanlı — sadece Velocity destekler, Paper/Purpur gerektirir

# Sunucular Arası Geçiş

Oyuncuların sunucular arasında geçiş yapması için Velocity yerleşik komutlar sunar:

KomutAçıklamaYetki
/server lobbyBelirtilen sunucuya geçvelocity.command.server
/serverSunucu listesini göstervelocity.command.server
/glistTüm sunuculardaki oyuncuları listelevelocity.command.glist
/send Oyuncu survivalOyuncuyu belirtilen sunucuya göndervelocity.command.send
/send all lobbyTüm oyuncuları lobby'ye göndervelocity.command.send
/velocity pluginsYüklü Velocity eklentilerini listelevelocity.command.plugins
/velocity reloadvelocity.toml'u yeniden yüklevelocity.command.reload

Sunucu seçim menüsü (GUI) için LobbyAPI, HubCommand veya ServerSelectorX gibi eklentiler kullanabilirsiniz.

# Güvenlik

Network kurulumunda güvenlik kritiktir. Yanlış yapılandırma UUID spoofing, unauthorized erişim ve DDoS saldırılarına kapı açar.

# Firewall: Sadece Proxy Portunu Aç

Kural: Dışarıya sadece Velocity portu (25577) ve SSH (22) açık olmalı. Backend portları (25565-25567) dışarıdan erişilemez olmalı.

PortDurumAçıklama
22/tcpALLOWSSH erişimi
25577/tcpALLOWVelocity proxy — oyuncuların bağlandığı port
25565/tcpDENYLobby backend — sadece localhost
25566/tcpDENYSurvival backend — sadece localhost
25567/tcpDENYSkyblock backend — sadece localhost

# Backend 25565 Kapat

Backend sunucuların server.properties dosyasında server-ip=127.0.0.1 ayarı ile sadece localhost'tan bağlantı kabul etmelerini sağlayın:

properties
# Her backend sunucunun server.properties dosyasında:
server-ip=127.0.0.1
online-mode=false

# IPWhitelist

Backend sunucularda sadece Velocity'nin IP'sinden gelen bağlantıları kabul etmek için IPWhitelist eklentisi kullanabilirsiniz:

  • Backend sunuculara IPWhitelist eklentisini kurun
  • Config'de sadece 127.0.0.1 (veya Velocity'nin IP'si) izin verin
  • Doğrudan bağlanan herkes reddedilir
Modern forwarding + server-ip=127.0.0.1 + firewall kombinasyonu zaten çok güvenlidir. IPWhitelist ek bir katman olarak düşünülmelidir.

# DDoS Koruması

  • TCPShield — Ücretsiz Minecraft DDoS koruması, reverse proxy
  • Cloudflare Spectrum — Ücretli, enterprise düzey TCP proxy
  • OVH Game DDoS Protection — OVH sunucularda yerleşik
  • Velocity yerleşik rate limitinglogin-ratelimit: 3000 ayarı ile brute force engeli

# LuckPerms Network Kurulumu

Network'te yetki yönetimi için LuckPerms'ü tüm sunuculara kurmanız ve ortak bir veritabanı kullanmanız gerekir. Böylece yetkiler tüm sunucularda senkron çalışır.

# MySQL Veritabanı Kurulumu

# LuckPerms Config (Her Sunucuda)

Velocity, lobby, survival ve tüm backend sunuculardaki LuckPerms config.yml dosyasında:

yaml
# plugins/LuckPerms/config.yml (tüm sunucularda aynı)
storage-method: mysql

data:
  address: localhost:3306
  database: luckperms
  username: luckperms
  password: 'guclu_sifre_buraya'
  pool-settings:
    maximum-pool-size: 10

# Sunucular arası anlık senkronizasyon
messaging-service: sql
messaging-service: sql ayarı ile bir sunucuda yapılan yetki değişikliği anında diğer sunuculara yansır. Redis kullanmak isterseniz messaging-service: redis yapabilirsiniz.

# Network Bazlı Yetkiler (Context)

LuckPerms context sistemi ile belirli sunuculara özel yetkiler atayabilirsiniz:

text
# Sadece survival sunucusunda fly yetkisi
lp user Oyuncu permission set essentials.fly true server=survival

# Sadece creative sunucusunda gamemode yetkisi
lp group vip permission set essentials.gamemode true server=creative

# Tüm sunucularda geçerli yetki (context belirtilmezse)
lp group default permission set essentials.home true

# Başlatma Scripti

Tüm sunucuları tek komutla başlatmak için bir bash script oluşturun:

bash
#!/bin/bash
# start-network.sh

echo "=== KEYDAL Network Başlatılıyor ==="

# Backend sunucuları screen ile başlat
echo "[1/4] Lobby başlatılıyor..."
screen -dmS lobby bash -c 'cd ~/servers/lobby && java -Xms1G -Xmx1G -XX:+UseG1GC -jar paper.jar --nogui'
sleep 8

echo "[2/4] Survival başlatılıyor..."
screen -dmS survival bash -c 'cd ~/servers/survival && java -Xms4G -Xmx4G -XX:+UseG1GC -jar paper.jar --nogui'
sleep 8

echo "[3/4] Skyblock başlatılıyor..."
screen -dmS skyblock bash -c 'cd ~/servers/skyblock && java -Xms2G -Xmx2G -XX:+UseG1GC -jar paper.jar --nogui'
sleep 8

# Velocity proxy'yi en son başlat
echo "[4/4] Velocity başlatılıyor..."
screen -dmS velocity bash -c 'cd ~/velocity && java -Xms512M -Xmx512M -XX:+UseG1GC -jar velocity.jar'

echo ""
echo "=== Tüm sunucular başlatıldı! ==="
echo "Bağlanmak için: screen -r <isim>"
echo "  screen -r lobby"
echo "  screen -r survival"
echo "  screen -r skyblock"
echo "  screen -r velocity"

# Systemd Service

Sunucu yeniden başladığında Velocity'nin otomatik açılması için systemd service oluşturun:

ini
# /etc/systemd/system/velocity.service
[Unit]
Description=Velocity Minecraft Proxy
After=network.target

[Service]
User=minecraft
Group=minecraft
WorkingDirectory=/home/minecraft/velocity
ExecStart=/usr/bin/java -Xms512M -Xmx512M -XX:+UseG1GC -jar velocity.jar
Restart=on-failure
RestartSec=10
StandardOutput=journal
StandardError=journal
SyslogIdentifier=velocity

[Install]
WantedBy=multi-user.target

Her backend sunucu için de ayrı bir systemd service oluşturabilirsiniz. After=velocity.service ile Velocity'den sonra başlamalarını sağlayabilirsiniz.

# Sık Yapılan Hatalar ve Çözümleri

SorunNedenÇözüm
Oyuncu bağlanamıyorFirewall 25577 portunu engelliyorufw allow 25577/tcp kontrol et
"Unable to connect to server" hatasıBackend sunucu kapalı veya port yanlışBackend'in çalıştığını ve doğru portta olduğunu kontrol et
"If you wish to use IP forwarding" hatasıModern forwarding yapılandırılmamışpaper-global.yml'de velocity secret'ı gir
Skin'ler görünmüyorForwarding modu yanlışplayer-info-forwarding-mode = "modern" kontrol et
UUID farklı sunucularda değişiyorBackend'lerde online-mode tutarsızTüm backend'lerde online-mode=false ve paper-global'de online-mode: true
LuckPerms yetkileri senkron değilFarklı storage veya messaging-service eksikTüm sunucularda aynı MySQL bağlantısı ve messaging-service: sql
Oyuncu sunucu değiştirirken bağlantı kopuyorBackend timeout veya network sorunuconnection-timeout ve read-timeout değerlerini artır
velocity.toml değişiklikleri uygulanmıyorConfig yeniden yüklenmemiş/velocity reload veya proxy'yi yeniden başlat
Forced hosts çalışmıyorDNS kayıtları yanlış veya port uyumsuzTüm subdomain'lerin aynı IP:25577'ye yönlendiğini kontrol et
Backend'e doğrudan bağlanılabiliyorserver-ip=127.0.0.1 ayarlanmamış veya firewall eksikserver.properties + firewall birlikte kontrol et

# Önerilen Velocity Eklentileri

EklentiİşlevZorunlu mu?
LuckPerms (Velocity)Network genelinde yetki yönetimiEvet
SignedVelocityChat mesaj imzalama desteği (1.19.1+)Önerilir
MiniMOTDÖzelleştirilebilir MOTD, sunucu ikonu, oyuncu sayısıİsteğe bağlı
Geyser (Velocity)Bedrock oyuncularının Java sunucuya bağlanmasıİsteğe bağlı
ViaVersion (Velocity)Farklı MC sürümlerinden bağlanma desteğiÖnerilir
LimboFilterBot saldırılarına karşı antibot filtreÖnerilir
VelocityToolsMaintenance mode, MOTD yönetimiİsteğe bağlı
NanoLimboUltra hafif limbo sunucu (queue/maintenance)İsteğe bağlı

# Faydalı Kaynaklar

Velocity Resmi Dokümantasyon

PaperMC'nin resmi Velocity belgeleri — yapılandırma, API ve eklenti geliştirme.

LuckPerms Yetki Rehberi

Network genelinde yetki yönetimi ve MySQL kurulumu.

Minecraft Sunucu Kurulumu

Backend sunucu kurulumu ve temel yapılandırma.

Sunucu Optimizasyon Rehberi

Backend sunucuların performans ayarları.

Network kurulumunu bize bırakın

Velocity proxy, backend sunucular, modern forwarding, LuckPerms network setup, firewall ve DDoS koruması dahil profesyonel Minecraft network kurulumu için KEYDAL ekibine ulaşın. Teklif alın →