BungeeCord ve Velocity kurulumu, birden fazla Minecraft sunucusunu tek bir IP adresi ve tek bir port altında birleştirmenizi sağlar. Oyuncu ornekagi.com adresine bağlanır, proxy onu karşılar ve arkadaki lobi sunucusuna aktarır; oradan /server survival yazarak oyun sunucusuna, oradan minigame sunucusuna geçer. Oyuncu hiçbir zaman yeniden bağlanmaz, istemci ekranında “Disconnected” görmez.
Bu sayfada iki proxy yazılımını da baştan sona kuruyoruz: Velocity’yi güncel kararlı hattıyla, BungeeCord’u ise eski eklenti bağımlılığı olan ağlar için. Ardından asıl kritik kısma geçiyoruz: IP forwarding’i doğru kurmak ve arka uç sunucuları dış dünyaya kapatmak. Bu iki adımı atlayan ağlarda herkes istediği kullanıcı adıyla, hatta operatör yetkisiyle içeri girebilir.
Anlatım işletim sisteminden bağımsız ilerliyor; Java kurulumu, servisleştirme ve güvenlik duvarı gibi işletim sistemine özel adımlar için ilgili bölümlerde Windows ve Linux kurulum rehberlerine yönlendirme yapıyoruz.
Sunucu Ağı Nedir, Proxy Tam Olarak Ne Yapar?#
Tek bir Minecraft sunucusu tek bir dünya, tek bir oyun modu ve tek bir tick döngüsü demektir. 200 oyuncuyu tek bir Paper sunucusunda tutmaya çalıştığınızda TPS düşer, çünkü ana tick döngüsü tek çekirdekte çalışır ve yükü bölemezsiniz. Sunucu ağı bu sorunu yatay olarak çözer: her oyun modunu ayrı bir Java sürecine alırsınız, her sürecin kendi tick döngüsü ve kendi çekirdeği olur.
Proxy bu süreçlerin önünde duran bir trafik yönlendiricidir. Şu işleri yapar:
- 25565 portunu tek başına dinler, oyuncunun Mojang oturumunu doğrular.
- Oyuncunun gerçek IP’sini ve UUID’sini arka uç sunucuya iletir (IP forwarding).
- Oyuncuyu sunucular arasında bağlantı kopmadan taşır.
- Bir arka uç sunucu çökerse oyuncuyu otomatik olarak yedek sunucuya (genelde lobiye) atar.
- Sunucu listesindeki MOTD, oyuncu sayısı ve ikon bilgisini merkezî olarak yönetir.
BungeeCord ve Velocity Karşılaştırması#
İki yazılım da aynı işi yapar, ama mimarileri farklıdır. Velocity sıfırdan yazılmış, çoklu iş parçacığına uygun modern bir proxy; BungeeCord ise 2012’den beri geliştirilen, ekosistemi çok geniş ama tasarımı eskimiş bir yazılımdır.
| Özellik | Velocity | BungeeCord |
|---|---|---|
| Kararlı hat | 4.0.0 | Jenkins derlemeleri (build #2086 ve üzeri) |
| IP forwarding | Modern (imzalı, güvenli) | Legacy (imzasız) |
| CPU verimliliği | Yüksek | Orta |
| Eklenti ekosistemi | Orta, hızla büyüyor | Çok geniş, eski |
| Yapılandırma dosyası | velocity.toml | config.yml |
| Forge / modlu arka uç | Sınırlı | Sınırlı |
| Yeni kurulum için öneri | Evet | Yalnızca zorunluysa |
Ağ Mimarisi ve Donanım Planı#
Ağ kurmadan önce kaç arka uç sunucu çalıştıracağınıza ve her birine ne kadar heap ayıracağınıza karar verin. Proxy’nin kendisi çok az kaynak tüketir; asıl planlama arka uç sunucular içindir.
| Rol | Ayrılan RAM | Java heap | Not |
|---|---|---|---|
| Velocity / BungeeCord proxy | 8 GB | -Xms6G -Xmx6G | Yük bellekte değil ağ katmanında |
| Lobi (2-10 oyuncu görünür alan) | 8 GB | -Xms6G -Xmx6G | Küçük harita, çoğu blok dondurulmuş |
| Survival (10-30 oyuncu) | 10-12 GB | -Xms10G -Xmx10G | En çok chunk I/O üreten sunucu |
| Minigame / çok dünyalı (30-60 oyuncu) | 16 GB | -Xms14G -Xmx14G | Sık dünya yükleme/boşaltma |
| Modpack arka ucu | 16 GB (büyük modpackte 24-32 GB) | -Xms14G -Xmx14G | Forge/Fabric, modern forwarding sorunlu |
| Tüm ağ tek makinede, 60+ oyuncu | 32 GB ve üzeri | Süreç başına bölünür | Ryzen 9 7900X / 7950X, NVMe SSD |
İşlemci seçiminde çekirdek sayısına değil saat hızına bakın. Her arka uç sunucunun ana tick döngüsü tek çekirdekte döner; 3,0 GHz’de 32 çekirdek yerine 4,7 GHz’de 12 çekirdek çok daha iyi TPS verir. Bu yüzden ağ sunucularında AMD Ryzen 9 7900X veya 7950X öneriyoruz, alt sınır Ryzen 9 3900X. Disk mutlaka NVMe SSD olmalı, en az 100 GB; birden fazla dünya klasörünün eşzamanlı chunk yazması SATA diskte anında lag üretir. Oyuncu sayısına göre daha ayrıntılı hesap için Minecraft sunucusu kaç GB RAM ister sayfasına bakabilirsiniz.
İndirmeniz Gerekenler#
-
Velocity ProxyÖnerilenİndir
-
BungeeCordEski ekosistemİndir
-
Eclipse Temurin JDK 25LTSİndir
-
Paper 26.2 (arka uç sunucular için)İndir
-
LuckPerms (Velocity / BungeeCord yapısı)İndir
-
ViaVersion (çoklu istemci sürümü desteği)İndir
Bağlantılar resmî kaynaklara gider. Üçüncü taraf sitelerden jar indirmeyin.
Velocity Kurulumu Adım Adım#
-
Proxy için ayrı bir klasör açın#
Proxy’yi hiçbir zaman arka uç sunucunun klasörüne koymayın. Windows’ta
C:\minecraft\proxy, Linux’ta/opt/minecraft/proxygibi ayrı bir dizin oluşturun vevelocity.jardosyasını buraya kopyalayın. -
İlk çalıştırmayı yapın ve dosyaların oluşmasını bekleyin#
Proxy ilk açılışta
velocity.toml,forwarding.secretvepluginsklasörünü üretir. Dosyalar oluştuktan sonra konsolaendyazıp kapatın.java -Xms6G -Xmx6G -XX:+UseG1GC -jar velocity.jar -
velocity.toml dosyasını düzenleyin#
Sunucularınızı, dinlenecek adresi ve forwarding modunu burada tanımlarsınız. Aşağıdaki örnekte proxy 25565’i dinliyor, arka uç sunucular yalnızca 127.0.0.1 üzerinde iç portlarda duruyor.
bind = "0.0.0.0:25565" motd = "Batihost Network - Survival, Skyblock, Minigames" show-max-players = 500 online-mode = true force-key-authentication = true prevent-client-proxy-connections = false player-info-forwarding-mode = "modern" forwarding-secret-file = "forwarding.secret" announce-forge = false kick-existing-players = false ping-passthrough = "DISABLED" enable-player-address-logging = true [servers] lobi = "127.0.0.1:25566" survival = "127.0.0.1:25567" skyblock = "127.0.0.1:25568" try = ["lobi"] [forced-hosts] "survival.ornekagi.com" = ["survival"] "skyblock.ornekagi.com" = ["skyblock"] [advanced] compression-threshold = 256 compression-level = -1 login-ratelimit = 3000 connection-timeout = 5000 read-timeout = 30000 failover-on-unexpected-server-disconnect = true announce-proxy-commands = true log-command-executions = false [query] enabled = false port = 25577trylistesi oyuncunun ilk gireceği sunucuyu belirler.forced-hostsise alt alan adına göre doğrudan yönlendirme yapar; bunun çalışması için DNS tarafında da kayıt açmanız gerekir, ayrıntısı Minecraft sunucusuna domain bağlama ve SRV kaydı sayfasında. -
forwarding.secret değerini üretin#
Velocity dosyayı boş veya rastgele bir değerle oluşturur. Kendi anahtarınızı üretmek isterseniz Windows’ta PowerShell, Linux’ta OpenSSL yeterlidir. Değeri hiç kimseyle paylaşmayın, ekran görüntüsünde göstermeyin.
-join ((48..57)+(65..90)+(97..122) | Get-Random -Count 32 | ForEach-Object {[char]$_})openssl rand -base64 24 -
Proxy’yi kalıcı olarak çalışır hâle getirin#
Konsol penceresi kapanınca proxy de kapanır. Windows’ta NSSM ile servis yapın, Linux’ta systemd birimi yazın; her iki yöntem de kendi sayfalarında adım adım anlatılıyor.
Paper Arka Uç Sunucularda Modern Forwarding Ayarı#
Velocity’nin modern forwarding’i, oyuncunun UUID’si ve IP’sini imzalı bir paketle arka uca gönderir. Bu yüzden arka uç sunucunun hem forwarding’i açması hem de aynı gizli anahtarı bilmesi gerekir. Her arka uç Paper sunucusunda üç dosyaya dokunacaksınız.
1. server.properties#
server-ip=127.0.0.1
server-port=25566
online-mode=false
network-compression-threshold=-1
enforce-secure-profile=false
max-players=100
view-distance=8
simulation-distance=6
server-ip=127.0.0.1 satırı sunucuyu yalnızca yerel arayüze bağlar; proxy ile aynı makinedeyseniz bu tek satır, dışarıdan doğrudan bağlanma girişimlerini kökünden keser. network-compression-threshold=-1 yerel ağda sıkıştırmayı kapatarak gereksiz CPU harcamasını önler; proxy ile arka uç farklı makinelerdeyse bu değeri varsayılan 256’da bırakın. Diğer satırların tam listesi için server.properties ayarları sayfasına bakabilirsiniz.
2. config/paper-global.yml#
proxies:
bungee-cord:
online-mode: true
velocity:
enabled: true
online-mode: true
secret: 'velocity-klasorundeki-forwarding-secret-degerinin-aynisi'
proxy-protocol: false
secret alanına yazdığınız değer forwarding.secret dosyasındaki ile karakter karakter aynı olmalıdır. Kopyalarken sondaki boşluk veya satır sonu karakterine dikkat edin; en sık görülen “Your server did not send a forwarding request” hatasının sebebi budur.3. spigot.yml (yalnızca BungeeCord kullanıyorsanız)#
Modern forwarding kullanıyorsanız bu ayara dokunmayın. BungeeCord’un legacy forwarding’ini kullanacaksanız spigot.yml içinde şu satırı açmanız gerekir:
settings:
bungeecord: true
settings.bungeecord: true hem proxies.velocity.enabled: true açık olmasın. İkisi farklı forwarding protokolüdür; ikisi birden açıkken sunucu hangi paketi bekleyeceğini bilemez ve oyuncular bağlanamaz.BungeeCord Kurulumu ve Legacy Forwarding#
Ağınız Velocity sürümü olmayan bir eklentiye bağımlıysa BungeeCord kurabilirsiniz. Kurulum mantığı aynıdır: ayrı klasör, ilk çalıştırma, dosya düzenleme.
java -Xms6G -Xmx6G -jar BungeeCord.jar
İlk çalıştırmadan sonra oluşan config.yml dosyasında düzenlemeniz gereken alanlar şunlar:
ip_forward: true
online_mode: true
prevent_proxy_connections: false
player_limit: -1
timeout: 30000
listeners:
- host: 0.0.0.0:25565
motd: '&bBatihost Network'
max_players: 500
force_default_server: true
priorities:
- lobi
query_enabled: false
ping_passthrough: false
servers:
lobi:
address: 127.0.0.1:25566
motd: 'Lobi'
restricted: false
survival:
address: 127.0.0.1:25567
motd: 'Survival'
restricted: false
ip_forward: true olmadan arka uç sunucular tüm oyuncuları proxy’nin IP’sinden geliyor gibi görür; IP tabanlı ban ve anticheat eklentileri çalışmaz. force_default_server: true ise oyuncu hangi alt alan adından gelirse gelsin önce lobiye düşmesini sağlar.
Arka Uç Sunucuları Dışarıya Kapatma#
Sunucu ağı kurulumunda en sık yapılan ve en pahalıya mal olan hata budur: proxy 25565’i açar, arka uç sunucuların 25566-25568 portları da açık kalır. Bu durumda saldırgan proxy’yi tamamen atlayıp doğrudan arka uca bağlanır ve online-mode=false olduğu için istediği isimle, örneğin sunucu sahibinin adıyla girer.
Korunma yolu iki katmanlıdır:
-
Arka uçları yalnızca yerel arayüze bağlayın#
Her arka uç sunucunun
server.propertiesdosyasındaserver-ip=127.0.0.1satırını kullanın. Proxy ayrı bir makinedeyse bu satıra özel ağ IP’sini yazın, asla genel IP’yi yazmayın. -
Güvenlik duvarında yalnızca 25565’i açın#
Dışarıya açılacak tek port proxy’nin portudur. Arka uç portları için hiçbir gelen kural oluşturmayın; varsa silin. Windows tarafında gelen kural oluşturmayı Windows sunucu kurulumu rehberinde, Linux tarafındaki karşılığını Linux kurulum rehberinde bulabilirsiniz.
-
Proxy tarafında bağlantı sınırı koyun#
Velocity’de
login-ratelimit, BungeeCord’daconnection_throttledeğeri aynı IP’den saniyeler içinde gelen tekrarlı giriş denemelerini keser. Bu, botnet tabanlı giriş taşmalarına karşı ilk savunma hattıdır.
Ağ katmanındaki hacimsel saldırılar için proxy yapılandırması yetmez; oyun sunucusu önünde filtreleme gerekir. Konunun tamamı Minecraft sunucusu için DDoS koruması ve Minecraft sunucu güvenliği rehberi sayfalarında. Batihost’un tüm oyun sunucusu ve yüksek frekanslı Ryzen VDS paketlerinde ücretsiz DDoS koruması standart olarak gelir.
Eklentiler: Neyi Proxy’ye, Neyi Arka Uca Kurmalı?#
Proxy’nin dünyası yoktur, blok yoktur, envanter yoktur. Bu yüzden oyun mekaniğiyle ilgili her eklenti arka uca kurulur. Proxy’ye yalnızca ağ genelinde ortak çalışması gereken eklentiler girer.
| Eklenti türü | Kurulacağı yer | Örnek |
|---|---|---|
| İzin ve rütbe sistemi | Her ikisi (ortak veritabanı) | LuckPerms |
| Çoklu istemci sürümü desteği | Proxy | ViaVersion, ViaBackwards |
| Sunucu seçici / lobi menüsü | Arka uç (lobi) | Sunucu seçici eklentileri |
| Bölge koruma, arazi | Arka uç | WorldGuard |
| Ekonomi ve mağaza | Arka uç | EssentialsX + Vault |
| Anticheat | Arka uç | Oyun içi hareket kontrolü gerekir |
| Performans profilleyici | Her ikisi | spark |
| Bedrock istemci köprüsü | Proxy | Geyser + Floodgate |
LuckPerms özel bir durumdur: hem proxy hem arka uç yapısını kurup ikisini de aynı MySQL veritabanına bağlarsınız. Böylece bir oyuncuya lobide verdiğiniz rütbe survival sunucusunda da geçerli olur. Kurulum ayrıntıları LuckPerms ile yetki sistemi kurma sayfasında.
Sık Karşılaşılan Sorunlar ve Çözümleri#
“Your server did not send a forwarding request”#
Velocity modern forwarding açık ama arka uç sunucuda ya proxies.velocity.enabled kapalı ya da secret değeri farklı. Paper’ı yeniden başlatmadan yaptığınız yaml değişikliği geçerli olmaz; dosyayı kaydettikten sonra arka ucu tamamen kapatıp açın.
“If you wish to use IP forwarding, please enable it in your BungeeCord config as well”#
Arka uçta settings.bungeecord: true açık, ama BungeeCord tarafında ip_forward: true değil. İki tarafı da açın. Velocity kullanıyorsanız bu hatayı görüyorsanız, arka uçta yanlışlıkla BungeeCord modunu açık bırakmışsınız demektir.
Oyuncular “Outdated server” hatası alıyor#
Proxy sürümünüz istemcinin protokolünü tanımıyor. Minecraft 26.2 protokol 776, 26.1 protokol 775 kullanır. Proxy jar’ını güncelleyin; eski istemcileri de kabul etmek istiyorsanız proxy’ye ViaVersion, çok eski sürümler için ViaBackwards ekleyin.
Proxy açılmıyor, port kullanımda diyor#
25565 portunu başka bir Java süreci tutuyordur; genelde proxy kurulumundan önce çalışan tek sunucu kapatılmamıştır. Arka uç sunucuların portlarını 25566’dan başlatın ve eski süreçleri sonlandırın. Ayrıntılı teşhis için “Failed to bind to port” hatası çözümü sayfasına bakın.
Sunucular arası geçişte envanter kayboluyor#
Bu bir proxy sorunu değildir. Her arka uç sunucunun kendi world/playerdata klasörü vardır; oyuncu geçince yeni sunucunun kaydını yükler. Ortak envanter istiyorsanız oyuncu verisini MySQL’de tutan bir senkronizasyon eklentisi kurmanız gerekir.
TPS proxy yüzünden düşüyor sanılıyor#
Proxy TPS üretmez, dolayısıyla TPS düşüşünün kaynağı olamaz. Yavaşlık hissi neredeyse her zaman arka uç sunucudan gelir. spark ile hangi arka ucun tick’i uzattığını ölçün; yöntem Minecraft sunucu optimizasyonu rehberinde anlatılıyor.
Ağı Büyütürken Dikkat Edilecekler#
Ağ üç sunucuyla başlar, altı ay sonra sekiz sunucu olur. Baştan kurarsanız sonradan taşınmak zorunda kalmazsınız:
- Port planı yapın. 25566’dan başlayarak her role sabit bir port verin ve bir metin dosyasında tutun. Rastgele port dağıtımı, altıncı sunucudan sonra kaosa dönüşür.
- Ortak MySQL kurun. İzinler, ekonomi ve ban kayıtları tek veritabanında dursun. Her sunucunun ayrı SQLite dosyası, ağ büyüdükçe senkronizasyon kâbusuna dönüşür.
- Lobiyi hafif tutun. Lobide
view-distance=4,simulation-distance=4ve dondurulmuş bir harita yeterlidir. Lobi oyuncunun ilk izlenimidir; orada yaşanan lag tüm ağı yavaş gösterir. - Yedeklemeyi süreç başına ayırın. Her arka uç sunucunun dünya klasörü ayrı yedeklenmeli; tek büyük arşiv geri dönüşü zorlaştırır.
- Minigame sunucularını ayrı süreçte tutun. Sık dünya yükleyip boşaltan minigame mantığı survival sunucusunun tick’ini bozar; her oyun modu kendi Java sürecinde dursun.
Arka uç sunucuların temel kurulumunu henüz yapmadıysanız önce Paper sunucu kurulumu ve yapılandırma sayfasını tamamlayın; proxy en son kurulacak katmandır.
Özetle#
Sunucu ağı kurmanın özü üç karardan ibarettir. Birincisi proxy seçimi: yeni ağlarda Velocity, yalnızca eski eklenti bağımlılığı varsa BungeeCord. İkincisi forwarding: Velocity’de modern mod ve ortak forwarding.secret, BungeeCord’da ip_forward: true, her iki durumda da arka uçta online-mode=false. Üçüncüsü güvenlik: dışarıya yalnızca 25565 açık kalacak, arka uç sunucular server-ip=127.0.0.1 ile yerel arayüze kilitlenecek.
Donanım tarafında ağın tamamını tek makinede toplayacaksanız 32 GB RAM, yüksek saat hızlı AMD Ryzen 9 işlemci ve en az 100 GB NVMe SSD planlayın. Hazır bir altyapıyla başlamak isterseniz Batihost’un Minecraft sunucu paketleri ve DDoS korumalı Türkiye lokasyonlu VDS seçenekleri, proxy’li ağ kurulumuna uygun kaynak profilleriyle sunulur.