· 5 dk okuma

Minecraft Sunucusu Kurulumu (Paper) ve DDoS Koruması Rehberi

Minecraft Java sunucusu kurmanın en pratik yolu, Ubuntu çalışan bir VDS'e Paper'ı kurup systemd ile servis haline getirmektir. DDoS'a karşı korunmak için ise sunucu içi ayarlar yetmez. Saldırı trafiğinin sunucunuza ulaşmadan önce temizlendiği, DDoS korumalı bir IP ile çalışmanız gerekir.

Bu rehberde Ubuntu 24.04 üzerinde Java 21, Paper, RAM ayarı, systemd servisi, güvenlik duvarı ve koruma seçimini sırayla ele alıyoruz.

1. Doğru VDS'i seçmek

Minecraft'ın ana oyun döngüsü büyük ölçüde tek çekirdeğe yaslanır. Çok çekirdekli ama düşük saat hızlı bir sunucu, birkaç yüksek frekanslı çekirdekten daha kötü performans verebilir. Seçerken şunlara bakın:

Eşzamanlı oyuncu Önerilen heap (Xmx) Toplam VDS RAM
1-10 3-4 GB 4-6 GB
10-40 6-8 GB 8-10 GB
40+ (eklentili) 10 GB+ 12 GB+

İşletim sistemi, disk önbelleği ve Java'nın heap dışı belleği için heap'in üstünde en az 1-2 GB pay bırakın.

2. Kullanıcı ve Java kurulumu

Minecraft 1.20.5 ve sonrası Java 21 ister. Sunucuyu root ile değil, ayrı bir kullanıcıyla çalıştırın:

sudo apt update && sudo apt install -y openjdk-21-jre-headless curl screen
sudo useradd -r -m -d /opt/minecraft -s /usr/sbin/nologin minecraft
java -version

java -version çıktısında 21 sürümünü görmelisiniz.

3. Paper'ı indirmek

Paper, Spigot tabanlı ve performans odaklı bir sunucu yazılımıdır. İndirme bağlantısını resmi sayfadan alın: papermc.io/downloads/paper. Sürüm numaraları sık değiştiği için aşağıdaki adresi kendi seçtiğiniz sürümle değiştirin:

sudo -u minecraft -s /bin/bash
cd /opt/minecraft
wget -O paper.jar "PAPERMC_SAYFASINDAN_KOPYALADIGINIZ_JAR_LINKI"
echo "eula=true" > eula.txt
exit

eula=true yazmak Mojang EULA'sını kabul ettiğiniz anlamına gelir. Önce metni okuyun: aka.ms/MinecraftEULA.

4. RAM ve JVM ayarları

Paper topluluğunda yaygın kullanılan Aikar bayrakları, G1 çöp toplayıcıyı Minecraft yüküne göre ayarlar. 12 GB altı heap için aşağıdaki set kullanılır. -Xms ile -Xmx değerini eşit tutmak, heap yeniden boyutlandırma kaynaklı takılmaları önler:

java -Xms4G -Xmx4G -XX:+UseG1GC -XX:+ParallelRefProcEnabled \
 -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions \
 -XX:+DisableExplicitGC -XX:+AlwaysPreTouch \
 -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 \
 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 \
 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 \
 -XX:InitiatingHeapOccupancyPercent=15 \
 -XX:G1MixedGCLiveThresholdPercent=90 \
 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 \
 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 \
 -jar paper.jar --nogui

Çok yüksek -Xmx vermek iyi fikir değildir. Heap büyüdükçe GC duraklamaları uzayabilir ve işletim sistemi için bellek kalmazsa OOM killer devreye girer.

Oyun tarafında asıl kazancı server.properties içindeki şu değerler sağlar:

view-distance=8
simulation-distance=6
online-mode=true
enable-rcon=false
network-compression-threshold=256

Oyuncu sayısı arttıkça simulation-distance değerini düşürmek, RAM eklemekten genellikle daha etkilidir. Haritayı önceden üretmek için Chunky eklentisi de CPU yükünü dağıtır.

5. systemd servisi

Sunucuyu screen içinde elle başlatmak yeniden başlatmalarda sorun çıkarır. systemd ile otomatik başlatma ve çökme sonrası yeniden başlatma elde edersiniz. Konsola komut gönderebilmek için bir socket birimi kullanıyoruz.

/etc/systemd/system/minecraft.socket:

[Unit]
Description=Minecraft konsol soketi
PartOf=minecraft.service

[Socket]
ListenFIFO=%t/minecraft.stdin
SocketUser=minecraft
SocketMode=0600
RemoveOnStop=true

/etc/systemd/system/minecraft.service:

[Unit]
Description=Minecraft Paper Sunucusu
After=network-online.target
Wants=network-online.target
Requires=minecraft.socket

[Service]
User=minecraft
WorkingDirectory=/opt/minecraft
Sockets=minecraft.socket
StandardInput=socket
StandardOutput=journal
StandardError=journal
ExecStart=/usr/bin/java -Xms4G -Xmx4G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -jar paper.jar --nogui
Restart=on-failure
RestartSec=10
TimeoutStopSec=120
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

Etkinleştirip başlatın:

sudo systemctl daemon-reload
sudo systemctl enable --now minecraft.socket minecraft.service
sudo journalctl -u minecraft -f
echo "say Merhaba" | sudo tee /run/minecraft.stdin

Durdurduğunuzda systemd, Java sürecine SIGTERM gönderir. Paper bunu yakalayıp dünyayı kaydederek kapanır. Bu yüzden TimeoutStopSec değerini çok düşük tutmayın.

6. Güvenlik duvarı ve sunucu içi önlemler

Yalnızca gerekli portları açın:

sudo ufw allow 22/tcp
sudo ufw allow 25565/tcp
sudo ufw enable

Geyser ile Bedrock oyuncusu kabul ediyorsanız ayrıca 19132/udp gerekir. SSH için anahtar tabanlı giriş kullanın ve mümkünse 22. portu yalnızca kendi IP'nize açın.

Aynı IP'den aşırı bağlantı açan basit botları yavaşlatmak için iptables connlimit kullanılabilir:

sudo iptables -A INPUT -p tcp --dport 25565 \
  -m connlimit --connlimit-above 10 --connlimit-mask 32 -j REJECT --reject-with tcp-reset

bukkit.yml içindeki connection-throttle değeri de aynı IP'den gelen hızlı giriş denemelerini sınırlar. Bu önlemler uygulama katmanındaki küçük botlara karşı faydalıdır. Ancak tek başlarına gerçek bir DDoS'a karşı koruma sağlamazlar.

Arkada BungeeCord/Velocity kullanıyorsanız, alt sunucuların portunu yalnızca proxy IP'sine açın. Aksi halde saldırgan proxy'yi atlayıp doğrudan alt sunucuya bağlanabilir.

7. DDoS korumalı IP neden şart?

Minecraft sunucularına yönelik saldırılar genelde iki biçimde gelir:

İlk grup için trafiğin sunucuya ulaşmadan altyapı seviyesinde filtrelenmesi gerekir. Bu nedenle VDS seçerken IP'nin DDoS koruması kapsamında olup olmadığını netleştirin. Kontrol edeceğiniz noktalar:

  1. Koruma, TCP (Java) ve gerekirse UDP (Bedrock) trafiğini kapsıyor mu?
  2. Saldırı sırasında sunucu IP'si null route'a alınıyor mu, yoksa trafik temizlenerek mi iletiliyor?
  3. Oyuncular için gerçek IP bilgisi ve düşük gecikme korunuyor mu?
  4. Saldırı geçmişini ve trafik grafiklerini görebiliyor musunuz?

Nixcon'un BGP destekli VDS sunucuları VMware vSphere tabanlıdır ve Türkiye (İzmir) lokasyonunda çalışır. Altyapı seviyesindeki filtreleme ve firewall seçenekleri için DDoS koruma ve firewall sayfasına bakabilirsiniz. Kendi ASN'iniz ve IP bloğunuz varsa, korumalı BGP anonsu seçeneği de mevcuttur.

Yaygın hatalar ve çözümleri

Sonuç

Sağlam bir Minecraft sunucusu için sıra şöyledir: tek çekirdek performansı yüksek bir VDS, Java 21, doğru boyutlandırılmış heap, systemd ile yönetilen bir servis ve altyapı seviyesinde DDoS koruması. Bu bileşenlerden biri eksikse, oyuncu sayınız arttığında ya da ilk saldırı geldiğinde sorun çıkar.

Sık sorulan sorular

Minecraft Paper sunucusu için kaç GB RAM gerekir?

10 kişiye kadar küçük bir sunucu için 3-4 GB heap genellikle yeterlidir. 10-40 oyuncuda 6-8 GB düşünülebilir. Heap'in üzerine işletim sistemi için en az 1-2 GB pay bırakın ve aşırı yüksek Xmx vermeyin.

Minecraft sunucusu için hangi Java sürümü gerekir?

Minecraft 1.20.5 ve sonrası Java 21 gerektirir. Ubuntu 24.04 üzerinde openjdk-21-jre-headless paketi yeterlidir. Yanlış sürüm UnsupportedClassVersionError hatası verir.

Sunucu içi ayarlar DDoS saldırısını durdurur mu?

Hayır. connlimit ve connection-throttle gibi ayarlar küçük botlara karşı işe yarar, ancak hattı dolduran hacimsel saldırılar sunucuya ulaşmadan altyapı seviyesinde filtrelenmelidir. Bu yüzden DDoS korumalı bir IP gerekir.

Minecraft sunucusunu systemd ile çalıştırırken konsola nasıl komut gönderirim?

Bir systemd socket birimi (ListenFIFO) ve serviste StandardInput=socket kullanın. Ardından echo "say Merhaba" | sudo tee /run/minecraft.stdin gibi komutlarla konsola yazabilirsiniz. Günlükleri journalctl -u minecraft -f ile izleyin.

DDoS korumalı Minecraft VDS'inizi Nixcon'da hemen kurun.İncele