BungeeCord ile Minecraft Network Kurulumu: Eksiksiz Rehber
BungeeCord proxy kurulumu, backend sunucu bağlama, lobby/hub yapılandırma, güvenlik ve performans ayarları.
# BungeeCord Nedir ve Neden Kullanılır?
BungeeCord, birden fazla Minecraft sunucusunu tek bir IP altında birleştiren bir proxy yazılımıdır. Oyuncular tek bir adrese bağlanır ve lobby, survival, skyblock gibi farklı sunucular arasında sorunsuz geçiş yapabilir. Network yapısı, büyük sunucuların yük dağılımını kolaylaştırır ve modüler bir mimari sunar.
# BungeeCord vs Velocity Karşılaştırması
Proxy seçimi yaparken iki ana alternatif vardır: BungeeCord (md_5 tarafından geliştirilen klasik çözüm) ve Velocity (PaperMC ekibinin modern alternatifi). Aşağıdaki tablo temel farkları özetler:
| Özellik | BungeeCord | Velocity |
|---|---|---|
| Geliştirici | md_5 / SpigotMC | PaperMC |
| Protokol Desteği | 1.8 - 1.21+ | 1.7.2 - 1.21+ |
| Modern Forwarding | Hayır (legacy IP forwarding) | Evet (modern forwarding) |
| Plugin API | BungeeCord API | Velocity API (event-driven) |
| Performans | İyi | Çok iyi (daha düşük bellek) |
| Plugin Ekosistemi | Çok geniş | Büyüyen, ancak daha küçük |
| Güvenlik | IPForwarding ile | Modern forwarding + secret key |
| Forge Desteği | Sınırlı | Daha iyi |
# Gereksinimler ve Ön Hazırlık
BungeeCord network kurmak için aşağıdaki minimum gereksinimlere ihtiyacınız vardır:
- Java 17+ — BungeeCord ve Paper 1.20+ için zorunlu
- En az 512 MB RAM — yalnızca proxy için (backend sunucular ayrı)
- Aynı makinede veya aynı ağda birden fazla Minecraft sunucusu
- Farklı portlar — her backend sunucu benzersiz bir portta çalışmalı
- Root/sudo erişimi — firewall ayarları için gerekli
# BungeeCord İndirme ve Kurulum
BungeeCord'u resmi Jenkins CI sayfasından indirebilirsiniz. Her zaman en güncel sürümü kullanmanız önerilir.
mkdir -p /opt/network/proxy && cd /opt/network/proxyProxy için dizin oluşturma
mkdir -p /opt/network/proxy && cd /opt/network/proxywget -O BungeeCord.jar https://ci.md-5.net/job/BungeeCord/lastSuccessfulBuild/artifact/bootstrap/target/BungeeCord.jarBungeeCord JAR dosyasını indir
wget -O BungeeCord.jar "https://ci.md-5.net/job/BungeeCord/lastSuccessfulBuild/artifact/bootstrap/target/BungeeCord.jar"İndirdikten sonra ilk çalıştırma ile config dosyalarını oluşturun:
java -Xms256M -Xmx512M -jar BungeeCord.jarBungeeCord'u başlat (config dosyaları oluşturulur)
java -Xms256M -Xmx512M -jar BungeeCord.jarİlk çalıştırmadan sonra config.yml, locations.yml ve modules klasörü oluşturulacaktır. Sunucuyu durdurmak için konsolda end yazın.
# config.yml Detaylı Yapılandırma
BungeeCord'un ana yapılandırma dosyası config.yml dosyasıdır. Her ayarı ayrıntılı olarak inceleyelim:
server_connect_timeout: 5000
remote_ping_cache: -1
forge_support: true
player_limit: -1
permissions:
default:
- bungeecord.command.server
- bungeecord.command.list
admin:
- bungeecord.command.alert
- bungeecord.command.end
- bungeecord.command.ip
- bungeecord.command.reload
timeout: 30000
log_commands: false
network_compression_threshold: 256
online_mode: true
disabled_commands:
- disabledcommandhere
listeners:
- query_port: 25577
motd: '&6KEYDAL Network &7- &aOnline'
tab_list: GLOBAL_PING
query_enabled: false
proxy_protocol: false
forced_hosts:
lobby.example.com: lobby
survival.example.com: survival
ping_passthrough: false
priorities:
- lobby
bind_local_address: true
host: 0.0.0.0:25565
max_players: 500
tab_size: 60
force_default_server: true
ip_forward: true
groups:
admin:
- egemen
servers:
lobby:
motd: '&aLobby Server'
address: 127.0.0.1:25566
restricted: false
survival:
motd: '&2Survival Server'
address: 127.0.0.1:25567
restricted: false
skyblock:
motd: '&bSkyblock Server'
address: 127.0.0.1:25568
restricted: false
# Önemli Ayarların Açıklaması
| Ayar | Varsayılan | Açıklama |
|---|---|---|
| online_mode | true | Mojang doğrulaması. Premium sunucu için true olmalı. |
| ip_forward | false | Backend sunuculara gerçek IP iletimi. Mutlaka true yapın. |
| player_limit | -1 | Maksimum oyuncu. -1 = sınırsız. |
| timeout | 30000 | Bağlantı zaman aşımı (ms). Yavaş bağlantılar için artırın. |
| network_compression_threshold | 256 | Paket sıkıştırma eşiği (byte). 256 optimal. |
| force_default_server | false | true yaparsanız oyuncular her zaman lobby'ye düşer. |
| forge_support | true | Forge istemci desteği. |
| tab_list | GLOBAL_PING | Tab listesi modu: GLOBAL, GLOBAL_PING, SERVER. |
| log_commands | false | Komut loglaması. Debug için true yapılabilir. |
# Backend Sunucu Ekleme ve IP Forwarding
Her backend sunucu (lobby, survival, skyblock vb.) ayrı bir Minecraft sunucusu olarak çalışır. Bu sunucuların BungeeCord ile doğru iletişim kurabilmesi için IP forwarding ayarı yapılmalıdır.
# spigot.yml Ayarı
Her backend sunucunun spigot.yml dosyasında şu ayarı yapın:
settings:
bungeecord: true
# server.properties Ayarı
Her backend sunucunun server.properties dosyasında:
online-mode=false
server-port=25566
# Forced Hosts ve Sunucu Mesajları
Forced hosts özelliği, farklı alan adlarını farklı sunuculara yönlendirmenizi sağlar. Örneğin lobby.sunucu.com adresine bağlanan oyuncu doğrudan lobby sunucusuna düşer.
forced_hosts:
lobby.sunucu.com: lobby
survival.sunucu.com: survival
skyblock.sunucu.com: skyblock
mc.sunucu.com: lobby
Bu özelliği kullanmak için DNS kayıtlarınızda her subdomain için proxy IP adresine yönlendirme (A kaydı veya SRV kaydı) eklemelisiniz.
# Güvenlik Ayarları
BungeeCord network güvenliği en kritik konulardan biridir. Backend sunuculara doğrudan erişimi engellemezseniz, oyuncular proxy'yi atlayarak sahte IP ile bağlanabilir.
# Firewall ile Port Kapatma
Backend sunucu portlarını (25566, 25567, 25568 vb.) yalnızca localhost'a açık bırakın:
iptables -A INPUT -p tcp --dport -s 127.0.0.1 -j ACCEPT Sadece localhost erişimine izin ver
iptables -A INPUT -p tcp --dport 25566 -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 25566 -j DROPUFW kullananlar için daha basit bir yöntem:
ufw deny Backend portlarını dışarıya kapat
ufw deny 25566
ufw deny 25567
ufw deny 25568
ufw allow 25565# IPWhitelist Eklentisi
Eğer backend sunucular farklı makinelerde çalışıyorsa, IPWhitelist veya BungeeGuard eklentisi kullanarak yalnızca proxy IP adresinden gelen bağlantılara izin verebilirsiniz.
# BungeeGuard config.yml (backend sunucuya kur)
enabled: true
allowed-tokens:
- 'BURAYA-RASTGELE-TOKEN-YAZIN'
# OnlyProxyJoin Kontrolü
Backend sunucularda spigot.yml içinde bungeecord: true ayarı, IP forwarding'i aktifleştirir ancak doğrudan bağlantıyı engellemez. Ek olarak firewall veya BungeeGuard kullanmanız zorunludur.
# Performans Optimizasyonu
BungeeCord proxy'nin performansı büyük ölçüde doğru yapılandırmaya bağlıdır. Aşağıdaki öneriler yüksek oyuncu sayısı için önemlidir:
- network_compression_threshold: 256 — Optimal sıkıştırma eşiği. Çok düşük değerler CPU kullanımını artırır.
- timeout: 30000 — Yavaş ağ bağlantıları için bu değeri 45000'e çıkarabilirsiniz.
- Java flagları:
-XX:+UseG1GC -XX:G1HeapRegionSize=4M -XX:+ParallelRefProcEnabled - remote_ping_cache: 10000 — Ping sonuçlarını 10 saniye önbelleğe alır, backend yükünü azaltır.
- connection_throttle: 4000 — Aynı IP'den art arda bağlantıları sınırlar.
#!/bin/bash
# BungeeCord başlatma scripti
java -Xms512M -Xmx512M \
-XX:+UseG1GC \
-XX:G1HeapRegionSize=4M \
-XX:+UnlockExperimentalVMOptions \
-XX:+ParallelRefProcEnabled \
-XX:MaxGCPauseMillis=200 \
-jar BungeeCord.jar
# Plugin Uyumluluğu
BungeeCord pluginleri, Spigot/Paper pluginlerinden farklıdır. Proxy tarafına kurulan eklentiler plugins/ klasörüne yerleştirilir ve tüm network genelinde çalışır.
| Plugin | Tür | Açıklama |
|---|---|---|
| LuckPerms | Proxy + Backend | Network genelinde yetki yönetimi |
| LiteBans | Proxy + Backend | Network genelinde ban/mute/kick |
| PremiumVanish | Proxy + Backend | Vanish modu, network genelinde gizlenme |
| Geyser | Proxy | Bedrock oyuncuların Java sunucuya bağlanması |
| BungeeTabListPlus | Proxy | Özelleştirilebilir tab listesi |
| ServerListPlus | Proxy | Dinamik MOTD ve sunucu listesi |
| BungeeGuard | Proxy + Backend | Güvenli bağlantı doğrulama |
plugins/ klasörüne koymayın. Her eklentinin proxy sürümünü kullanın.# Sık Karşılaşılan Hatalar
# If you wish to use IP forwarding hatası
Bu hata, backend sunucuda spigot.yml içinde bungeecord: true ayarı yapılmadığında ortaya çıkar. Tüm backend sunucularda bu ayarı kontrol edin.
# Connection throttled hatası
config.yml içinde connection_throttle değerini düşürün veya -1 yaparak devre dışı bırakın (DDoS riski taşır):
connection_throttle: 4000 # ms cinsinden, -1 = devre dışı
# Oyuncu sunucu değiştirirken kopuyor
Bu sorun genellikle backend sunuculardaki farklı Minecraft sürümlerinden kaynaklanır. Tüm backend sunucuların aynı sürümde olduğundan emin olun. Alternatif olarak ViaVersion eklentisini kullanarak çoklu sürüm desteği ekleyebilirsiniz.
BungeeCord network kurulumunuzu profesyonel ekibimize bırakın. Güvenlik, performans ve eklenti yapılandırması dahil. Teklif Alın