BungeeCord ile Minecraft Network Kurulumu: Eksiksiz Rehber

BungeeCord proxy kurulumu, backend sunucu bağlama, lobby/hub yapılandırma, güvenlik ve performans ayarları.

30 dk okuma

# 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 yalnızca Spigot/Paper tabanlı backend sunucularla çalışır. Vanilla veya Forge sunucuları doğrudan desteklenmez.

# 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:

ÖzellikBungeeCordVelocity
Geliştiricimd_5 / SpigotMCPaperMC
Protokol Desteği1.8 - 1.21+1.7.2 - 1.21+
Modern ForwardingHayır (legacy IP forwarding)Evet (modern forwarding)
Plugin APIBungeeCord APIVelocity API (event-driven)
PerformansİyiÇok iyi (daha düşük bellek)
Plugin EkosistemiÇok genişBüyüyen, ancak daha küçük
GüvenlikIPForwarding ileModern forwarding + secret key
Forge DesteğiSınırlıDaha iyi
Yeni bir network kuruyorsanız Velocity modern forwarding ile daha güvenli bir yapı sunar. Ancak mevcut eklenti uyumluluğu için BungeeCord hâlâ popüler bir seçimdir.

# 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 ve backend sunucuların aynı Java sürümünü kullanması önerilir. Farklı sürümler beklenmeyen hatalara neden olabilir.

# 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/proxy

Proxy için dizin oluşturma

Örnek: mkdir -p /opt/network/proxy && cd /opt/network/proxy
wget -O BungeeCord.jar https://ci.md-5.net/job/BungeeCord/lastSuccessfulBuild/artifact/bootstrap/target/BungeeCord.jar

BungeeCord JAR dosyasını indir

Örnek: 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.jar

BungeeCord'u başlat (config dosyaları oluşturulur)

Örnek: 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:

yaml
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ı

AyarVarsayılanAçıklama
online_modetrueMojang doğrulaması. Premium sunucu için true olmalı.
ip_forwardfalseBackend sunuculara gerçek IP iletimi. Mutlaka true yapın.
player_limit-1Maksimum oyuncu. -1 = sınırsız.
timeout30000Bağlantı zaman aşımı (ms). Yavaş bağlantılar için artırın.
network_compression_threshold256Paket sıkıştırma eşiği (byte). 256 optimal.
force_default_serverfalsetrue yaparsanız oyuncular her zaman lobby'ye düşer.
forge_supporttrueForge istemci desteği.
tab_listGLOBAL_PINGTab listesi modu: GLOBAL, GLOBAL_PING, SERVER.
log_commandsfalseKomut 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:

yaml
settings:
  bungeecord: true

# server.properties Ayarı

Her backend sunucunun server.properties dosyasında:

properties
online-mode=false
server-port=25566
online-mode=false yalnızca BungeeCord arkasındaki sunucular için geçerlidir. BungeeCord kendisi zaten Mojang doğrulaması yapar. Ancak backend portlarını dışarıya kapatmazsanız crack oyuncular doğrudan bağlanabilir!

# 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.

yaml
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

Örnek: iptables -A INPUT -p tcp --dport 25566 -s 127.0.0.1 -j ACCEPT iptables -A INPUT -p tcp --dport 25566 -j DROP

UFW kullananlar için daha basit bir yöntem:

ufw deny

Backend portlarını dışarıya kapat

Örnek: 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.

yaml
# BungeeGuard config.yml (backend sunucuya kur)
enabled: true
allowed-tokens:
  - 'BURAYA-RASTGELE-TOKEN-YAZIN'
BungeeGuard, BungeeCord ve Velocity ile uyumludur. Her backend sunucuya aynı token ile kurun ve proxy tarafına da aynı token'ı ekleyin.

# 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.
bash
#!/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.

PluginTürAçıklama
LuckPermsProxy + BackendNetwork genelinde yetki yönetimi
LiteBansProxy + BackendNetwork genelinde ban/mute/kick
PremiumVanishProxy + BackendVanish modu, network genelinde gizlenme
GeyserProxyBedrock oyuncuların Java sunucuya bağlanması
BungeeTabListPlusProxyÖzelleştirilebilir tab listesi
ServerListPlusProxyDinamik MOTD ve sunucu listesi
BungeeGuardProxy + BackendGüvenli bağlantı doğrulama
Spigot/Paper pluginlerini BungeeCord 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):

yaml
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.

Profesyonel Network Kurulumu

BungeeCord network kurulumunuzu profesyonel ekibimize bırakın. Güvenlik, performans ve eklenti yapılandırması dahil. Teklif Alın