Minecraft Sunucu Kurulumu: Eksiksiz Başlangıç Rehberi
VPS seçimi, Java kurulumu, Paper/Purpur sunucu kurulumu, yapılandırma, firewall, screen/systemd, ilk optimizasyonlar — sıfırdan adım adım.
# Gereksinimler
Minecraft sunucusu kurmadan önce donanım ve yazılım gereksinimlerini doğru belirlemek, ileride yaşanacak performans sorunlarını önler. Aşağıdaki tablo, oyuncu sayısına göre önerilen minimum kaynakları gösterir:
| Oyuncu Sayısı | RAM | CPU | Disk | Bant Genişliği |
|---|---|---|---|---|
| 1-10 | 2 GB | 2 vCPU | 20 GB SSD | 100 Mbps |
| 10-30 | 4 GB | 2-4 vCPU | 40 GB SSD | 200 Mbps |
| 30-60 | 6-8 GB | 4 vCPU | 60 GB NVMe | 500 Mbps |
| 60-100 | 10-12 GB | 6 vCPU | 80 GB NVMe | 1 Gbps |
| 100+ | 16+ GB | 8+ vCPU | 120+ GB NVMe | 1 Gbps |
# İşletim Sistemi Seçimi
Minecraft sunucusu için Linux dağıtımları önerilir. Windows sunucu da çalışır ancak performans ve kaynak yönetimi açısından Linux tercih edilmelidir.
| Dağıtım | Sürüm | Not |
|---|---|---|
| Ubuntu | 22.04 / 24.04 LTS | En yaygın, geniş topluluk desteği |
| Debian | 12 (Bookworm) | Kararlı, minimal |
| Rocky Linux | 9 | RHEL tabanlı, kurumsal ortamlar için |
| AlmaLinux | 9 | CentOS alternatifi |
# VPS Seçimi
Minecraft sunucusu için paylaşımlı hosting yeterli değildir. En az bir VPS (Virtual Private Server) gerekir. VPS seçerken dikkat etmeniz gerekenler:
- CPU tek çekirdek performansı — Minecraft büyük ölçüde tek çekirdek kullanır, yüksek saat hızı önemlidir
- NVMe SSD — Chunk yükleme ve dünya kaydetme hızı için kritik
- DDoS koruması — Oyun sunucuları sık hedef alınır
- Konum — Oyuncularınıza yakın datacenter seçin (Türkiye için Avrupa)
- Anlık ölçeklendirme — İhtiyaç arttığında RAM/CPU yükseltebilmelisiniz
DDoS korumalı, NVMe SSD, Türkiye'ye yakın Avrupa lokasyonu. Minecraft sunucusu için optimize edilmiş VPS paketleri.
Önerimiz: 4 GB RAM / 4 vCPU plan ile başlayın. 30-50 oyuncu rahatlıkla taşınır, gerektiğinde yükseltilebilir.
# SSH Bağlantısı
VPS'inize SSH (Secure Shell) protokolü ile bağlanacaksınız. Bu, sunucu üzerinde komut çalıştırmanızı sağlayan uzak terminal erişimidir.
# Windows ile Bağlantı
Windows 10/11'de yerleşik OpenSSH istemcisi bulunur. Komut İstemi veya PowerShell açın:
Alternatif olarak PuTTY kullanabilirsiniz: Host Name alanına IP adresini yazın, Port 22 olsun ve Open'a tıklayın.
# Mac / Linux ile Bağlantı
Terminal'i açın ve doğrudan SSH komutu çalıştırın:
# SSH Anahtar Doğrulama (Önerilen)
Parola yerine SSH anahtar çifti kullanmak hem daha güvenli hem daha pratiktir:
# 1. Yerel bilgisayarınızda anahtar oluşturun
ssh-keygen -t ed25519 -C "minecraft-sunucu"
# 2. Anahtarı sunucuya kopyalayın
ssh-copy-id root@SUNUCU_IP_ADRESI
# 3. Artık parolasız bağlanabilirsiniz
ssh root@SUNUCU_IP_ADRESI
/etc/ssh/sshd_config dosyasında PasswordAuthentication no yapın ve systemctl restart sshd çalıştırın.# Java Kurulumu
Minecraft sunucusu Java ile çalışır. Hangi Java sürümünü kuracağınız, Minecraft sürümünüze bağlıdır:
| Minecraft Sürümü | Gereken Java | Paket Adı (Ubuntu/Debian) |
|---|---|---|
| 1.20.5 ve üzeri | Java 21 | openjdk-21-jre-headless |
| 1.17.1 – 1.20.4 | Java 17 | openjdk-17-jre-headless |
| 1.16.5 ve altı | Java 8-16 | openjdk-16-jre-headless |
# Ubuntu / Debian Kurulumu
# Paket listesini güncelle
sudo apt update && sudo apt upgrade -y
# Java 21 kur
sudo apt install openjdk-21-jre-headless -y
# Kurulumu doğrula
java -version
Beklenen çıktı: openjdk version "21.x.x" gibi bir satır görmelisiniz.
# Birden Fazla Java Sürümü
Sunucuda birden fazla Java sürümü varsa varsayılan sürümü seçebilirsiniz:
-jre-headless paketini kurun. Tam JDK veya GUI bileşenlerine sunucu ortamında ihtiyaç yoktur.# Kullanıcı Oluşturma
Minecraft sunucusunu root kullanıcısı ile çalıştırmak ciddi bir güvenlik riskidir. Sunucu yazılımında bir açık bulunması durumunda saldırgan sisteme tam erişim elde eder.
# minecraft adında yeni kullanıcı oluştur
sudo adduser minecraft
# Kullanıcıya geç
sudo su - minecraft
# Sunucu dizinini oluştur
mkdir -p ~/server && cd ~/server
Bundan sonraki tüm adımları minecraft kullanıcısı ile yapacağız. sudo gerektiren komutlar için kısaca root'a geçip geri dönebilirsiniz.
# Sunucu Yazılımı Seçimi
Minecraft sunucu yazılımları farklı amaçlara hizmet eder. Hangisini seçeceğiniz ihtiyaçlarınıza bağlıdır:
| Yazılım | Tür | Plugin Desteği | Performans | Açıklama |
|---|---|---|---|---|
| Vanilla | Resmi | Yok | Düşük | Mojang'ın resmi sunucusu, sade deneyim |
| CraftBukkit | Modifiye | Bukkit API | Orta | İlk plugin destekli sunucu, artık kullanılmıyor |
| Spigot | Modifiye | Bukkit + Spigot API | İyi | CraftBukkit'in optimize edilmiş hali |
| Paper | Modifiye | Bukkit + Spigot + Paper API | Çok İyi | Spigot fork'u, en yaygın tercih |
| Purpur | Modifiye | Tüm Paper API + ekstra | Çok İyi | Paper fork'u, ekstra yapılandırma seçenekleri |
| Fabric | Modlu | Fabric Mods | İyi | Hafif mod loader, teknik oyuncular için |
| Forge | Modlu | Forge Mods | Orta | Ağır modpack'ler için standart |
# Paper Kurulumu
Paper, PaperMC ekibi tarafından geliştirilen ve Spigot tabanlı, optimize edilmiş bir Minecraft sunucu yazılımıdır. Binlerce Bukkit/Spigot plugini ile uyumludur.
# Paper JAR İndirme
# minecraft kullanıcısına geç
sudo su - minecraft
cd ~/server
# Paper 1.21.4 son build'i indir
wget https://api.papermc.io/v2/projects/paper/versions/1.21.4/builds/latest/downloads/paper-1.21.4.jar
# EULA Onaylama
Minecraft sunucusu ilk kez başlatıldığında Mojang EULA (Son Kullanıcı Lisans Sözleşmesi) kabul edilmelidir:
# İlk başlatma — EULA dosyası ve yapılandırma dosyaları oluşur
java -Xms2G -Xmx2G -jar paper-1.21.4.jar nogui
# Sunucu EULA hatası vererek duracak
# eula.txt dosyasını düzenleyin
echo "eula=true" > eula.txt
eula=true yazarak Mojang EULA sözleşmesini kabul etmiş olursunuz. Ticari kullanım kurallarını mutlaka okuyun.# Dizin Yapısı
İlk başlatma sonrasında sunucu dizininde şu dosya ve klasörler oluşur:
~/server/
├── paper-1.21.4.jar # Sunucu JAR dosyası
├── eula.txt # EULA onay dosyası
├── server.properties # Ana yapılandırma
├── bukkit.yml # Bukkit ayarları
├── spigot.yml # Spigot ayarları
├── config/
│ ├── paper-global.yml # Paper genel ayarları
│ └── paper-world-defaults.yml # Dünya ayarları
├── plugins/ # Eklenti klasörü
├── world/ # Overworld dünyası
├── world_nether/ # Nether dünyası
├── world_the_end/ # End dünyası
├── logs/ # Sunucu logları
└── cache/ # Önbellek dosyaları
plugins/ klasörüne .jar uzantılı eklenti dosyalarını koyarsınız. Sunucu yeniden başlatıldığında otomatik yüklenir.# Başlatma Scripti
Sunucuyu her seferinde uzun Java komutunu yazmak yerine bir başlatma scripti oluşturun. Bu script Aikar's Flags ile optimize edilmiş JVM parametrelerini içerir:
#!/bin/bash
# start.sh — Minecraft Paper Sunucu Başlatma Scripti
JAR="paper-1.21.4.jar"
MIN_RAM="4G"
MAX_RAM="4G"
java -Xms${MIN_RAM} -Xmx${MAX_RAM} \
-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 ${JAR} --nogui
Scripti çalıştırılabilir yapın:
# screen vs systemd Karşılaştırması
Sunucuyu arka planda çalıştırmanın iki yaygın yolu vardır:
| Özellik | screen | systemd |
|---|---|---|
| Kurulum zorluğu | Kolay | Orta |
| Konsola erişim | screen -r minecraft | journalctl -u minecraft |
| Otomatik başlatma | Yok (crontab gerekir) | Yerleşik (enable) |
| Çökme sonrası yeniden başlatma | Yok | Restart=on-failure |
| Log yönetimi | Manuel | journald ile otomatik |
| Önerilen kullanım | Test / geliştirme | Production sunucular |
# screen ile Çalıştırma
# screen kur (kurulu değilse)
sudo apt install screen -y
# Yeni screen oturumu oluştur ve sunucuyu başlat
screen -S minecraft ./start.sh
# screen'den çıkmak için: Ctrl+A ardından D
# Geri dönmek için:
screen -r minecraft
# Aktif screen oturumlarını listele
screen -ls
screen hızlı test ve geliştirme için idealdir. Production sunucuda systemd kullanmanızı öneriyoruz.# systemd Service
systemd ile Minecraft sunucunuz sistem servisi olarak çalışır: otomatik başlatma, çökme sonrası yeniden başlatma ve merkezi log yönetimi sağlar.
# Service Dosyası Oluşturma
# /etc/systemd/system/minecraft.service
[Unit]
Description=Minecraft Paper Server
After=network.target
Wants=network-online.target
[Service]
User=minecraft
Group=minecraft
WorkingDirectory=/home/minecraft/server
ExecStart=/home/minecraft/server/start.sh
ExecStop=/usr/bin/screen -S minecraft -X stuff "stop\n"
Restart=on-failure
RestartSec=10
StandardInput=null
StandardOutput=journal
StandardError=journal
SyslogIdentifier=minecraft
[Install]
WantedBy=multi-user.target
Bu dosyayı oluşturmak için:
# Servisi Etkinleştirme ve Başlatma
# systemd'yi yeniden yükle
sudo systemctl daemon-reload
# Servisi etkinleştir (sistem başlangıcında otomatik çalışsın)
sudo systemctl enable minecraft
# Servisi başlat
sudo systemctl start minecraft
# Durumu kontrol et
sudo systemctl status minecraft
# Sık Kullanılan systemd Komutları
| Komut | Açıklama |
|---|---|
systemctl start minecraft | Sunucuyu başlat |
systemctl stop minecraft | Sunucuyu durdur |
systemctl restart minecraft | Yeniden başlat |
systemctl status minecraft | Durum bilgisi göster |
journalctl -u minecraft -f | Canlı log takibi |
journalctl -u minecraft --since '10 min ago' | Son 10 dakikanın logları |
User=minecraft satırını doğru yazdığınızdan emin olun. Yanlış kullanıcı ile çalıştırmak dosya izin sorunlarına neden olur.# server.properties Ayarları
server.properties dosyası Minecraft sunucusunun ana yapılandırma dosyasıdır. Aşağıda performans ve oyun deneyimi açısından en önemli ayarlar detaylı olarak açıklanmıştır:
| Ayar | Varsayılan | Önerilen | Açıklama |
|---|---|---|---|
server-port | 25565 | 25565 | Sunucunun dinleyeceği TCP/UDP portu |
max-players | 20 | 50 | Maksimum eşzamanlı oyuncu sayısı |
view-distance | 10 | 7 | Oyuncuya gönderilen chunk yarıçapı (düşük = daha az bant genişliği) |
simulation-distance | 10 | 5 | Aktif olarak işlenen chunk yarıçapı (düşük = daha az CPU) |
online-mode | true | true | Mojang hesap doğrulaması (false = cracked) |
motd | A Minecraft Server | Özelleştirin | Sunucu listesinde görünen açıklama |
difficulty | easy | normal | Oyun zorluğu (peaceful/easy/normal/hard) |
gamemode | survival | survival | Varsayılan oyun modu |
spawn-protection | 16 | 16 | Spawn noktası etrafında koruma yarıçapı (blok) |
enable-command-block | false | false | Command block kullanımı (gerekmedikçe kapalı) |
max-tick-time | 60000 | 60000 | Watchdog timeout (ms) — sunucu donma algılama |
network-compression-threshold | 256 | 256 | Paket sıkıştırma eşiği (byte) |
# Önerilen server.properties yapılandırması
server-port=25565
max-players=50
view-distance=7
simulation-distance=5
online-mode=true
difficulty=normal
gamemode=survival
motd=\u00a7b\u00a7lKEYDAL \u00a7fMinecraft Sunucusu
spawn-protection=16
enable-command-block=false
max-tick-time=60000
network-compression-threshold=256
white-list=false
enforce-whitelist=false
allow-flight=false
spawn-npcs=true
spawn-animals=true
spawn-monsters=true
pvp=true
online-mode=false ayarı, korsan (cracked) hesapların bağlanmasına izin verir. Bu durumda UUID spoofing riski oluşur — mutlaka bir auth eklentisi (AuthMe vb.) kurun.# Firewall Ayarları
Sunucunuzun güvenliği için yalnızca gerekli portları dışarıya açmalısınız. UFW (Uncomplicated Firewall) ile basit ve etkili bir firewall yapılandırması:
# UFW kur (kurulu değilse)
sudo apt install ufw -y
# SSH erişimi (bunu MUTLAKA önce açın!)
sudo ufw allow 22/tcp
# Minecraft sunucu portu
sudo ufw allow 25565/tcp
# Firewall'u etkinleştir
sudo ufw enable
# Durumu kontrol et
sudo ufw status verbose
# RCON Portu (İsteğe Bağlı)
RCON, sunucu konsoluna uzaktan erişim sağlar. Kullanacaksanız:
# RCON portunu aç (sadece belirli IP'den)
sudo ufw allow from YEREL_IP_ADRESINIZ to any port 25575 proto tcp
# server.properties'te RCON ayarları:
# enable-rcon=true
# rcon.port=25575
# rcon.password=GUCLU_BIR_PAROLA
# Port Özeti
| Port | Protokol | Hizmet | Durum |
|---|---|---|---|
| 22 | TCP | SSH | Açık (zorunlu) |
| 25565 | TCP/UDP | Minecraft | Açık (zorunlu) |
| 25575 | TCP | RCON | İsteğe bağlı (kısıtlı) |
| Diğer tüm portlar | — | — | Kapalı (varsayılan) |
# İlk Bağlantı Testi
Sunucu çalışıyor ve firewall ayarlandıysa, artık bağlanma zamanı:
- Minecraft Java Edition'ı açın
- Multiplayer > Add Server tıklayın
- Server Address alanına
SUNUCU_IP_ADRESI:25565yazın (port 25565 ise:25565kısmı opsiyoneldir) - Done ve ardından Join Server tıklayın
# Bağlantı Sorunları ve Çözümleri
| Sorun | Olası Neden | Çözüm |
|---|---|---|
| Connection timed out | Firewall portu kapalı | ufw status ile 25565 portunu kontrol edin |
| Connection refused | Sunucu çalışmıyor | systemctl status minecraft kontrol edin |
| io.netty.channel... hata | Sürüm uyumsuzluğu | Minecraft istemci sürümünüz sunucu sürümüyle aynı olmalı |
| Authentication failed | online-mode sorunu | Orijinal Minecraft hesabıyla giriş yapın |
| java.net.UnknownHostException | DNS çözümlenemedi | IP adresi yerine doğrudan sayısal IP deneyin |
| Internal Exception | Bozuk paket / eklenti hatası | Sunucu loglarını (logs/latest.log) inceleyin |
curl ifconfig.me ile dış IP adresini doğrulayın, ardından sudo ufw status ile portların açık olduğunu kontrol edin.# Sunucu Konsolundan Kontrol
Bağlantı başarılıysa sunucu konsolunda oyuncu giriş mesajını göreceksiniz. Temel konsol komutları:
# Oyuncuya OP yetkisi ver
op OyuncuAdi
# Beyaz liste yönetimi
whitelist add OyuncuAdi
whitelist on
# Sunucuyu güvenle durdur
stop
# Sonraki Adımlar
Sunucunuz çalışıyor — tebrikler! Şimdi sıra optimizasyon ve eklenti kurulumunda. Aşağıdaki rehberlerle devam edin:
JVM flags, server.properties, Paper/Spigot config dosyaları, Spark profiling — TPS'inizi 20.0'da tutun.
EssentialsX, LuckPerms, WorldEdit, WorldGuard, CoreProtect — her sunucuda olması gereken eklentiler.
Birden fazla sunucuyu tek IP altında birleştirin: lobby, survival, skyblock.
KEYDAL oyun sunucusu hizmeti ile kurulum, optimizasyon ve yönetimi bize bırakın. Profesyonel ekibimiz sunucunuzu sıfırdan kurar, optimize eder ve 7/24 destek sağlar. Teklif alın →