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.

35 dk okuma

# 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ıRAMCPUDiskBant Genişliği
1-102 GB2 vCPU20 GB SSD100 Mbps
10-304 GB2-4 vCPU40 GB SSD200 Mbps
30-606-8 GB4 vCPU60 GB NVMe500 Mbps
60-10010-12 GB6 vCPU80 GB NVMe1 Gbps
100+16+ GB8+ vCPU120+ GB NVMe1 Gbps
Bu değerler Vanilla/Paper sunucu içindir. Modlu sunucular (Forge/Fabric + ağır modpack) %30-50 daha fazla RAM gerektirebilir.

# İş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ımSürümNot
Ubuntu22.04 / 24.04 LTSEn yaygın, geniş topluluk desteği
Debian12 (Bookworm)Kararlı, minimal
Rocky Linux9RHEL tabanlı, kurumsal ortamlar için
AlmaLinux9CentOS alternatifi
Yeni başlıyorsanız Ubuntu 22.04 LTS en güvenli tercihtir — rehberlerin büyük çoğunluğu bu dağıtım üzerinden yazılmıştır.

# 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
KEYDAL VPS Planları

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:

bash
# 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
SSH anahtarınızı oluşturduktan sonra sunucuda parola ile girişi kapatmanız önerilir. /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 JavaPaket Adı (Ubuntu/Debian)
1.20.5 ve üzeriJava 21openjdk-21-jre-headless
1.17.1 – 1.20.4Java 17openjdk-17-jre-headless
1.16.5 ve altıJava 8-16openjdk-16-jre-headless
Bu rehberde Minecraft 1.21.4 (güncel sürüm) kullanacağız, bu nedenle Java 21 kuruyoruz.

# Ubuntu / Debian Kurulumu

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

Sadece -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 sunucusunu asla root olarak çalıştırmayın! Ayrı bir kullanıcı oluşturun ve tüm sunucu işlemlerini bu kullanıcı üzerinden yapın.
bash
# 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ımTürPlugin DesteğiPerformansAçıklama
VanillaResmiYokDüşükMojang'ın resmi sunucusu, sade deneyim
CraftBukkitModifiyeBukkit APIOrtaİlk plugin destekli sunucu, artık kullanılmıyor
SpigotModifiyeBukkit + Spigot APIİyiCraftBukkit'in optimize edilmiş hali
PaperModifiyeBukkit + Spigot + Paper APIÇok İyiSpigot fork'u, en yaygın tercih
PurpurModifiyeTüm Paper API + ekstraÇok İyiPaper fork'u, ekstra yapılandırma seçenekleri
FabricModluFabric ModsİyiHafif mod loader, teknik oyuncular için
ForgeModluForge ModsOrtaAğır modpack'ler için standart
Yeni sunucu kuruyorsanız Paper ile başlayın. Plugin ekosistemi en geniş, performansı en iyi seçenektir. Ekstra özelleştirme istiyorsanız Purpur'a geçiş kolaydır.

# 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

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

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

text
~/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:

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

Aikar's Flags, Minecraft sunucuları için altın standarttır. G1 garbage collector'ı Minecraft'ın bellek kullanım desenine göre optimize eder, GC duraklamalarını minimize eder.

# screen vs systemd Karşılaştırması

Sunucuyu arka planda çalıştırmanın iki yaygın yolu vardır:

Özellikscreensystemd
Kurulum zorluğuKolayOrta
Konsola erişimscreen -r minecraftjournalctl -u minecraft
Otomatik başlatmaYok (crontab gerekir)Yerleşik (enable)
Çökme sonrası yeniden başlatmaYokRestart=on-failure
Log yönetimiManueljournald ile otomatik
Önerilen kullanımTest / geliştirmeProduction sunucular

# screen ile Çalıştırma

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

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

bash
# 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ı

KomutAçıklama
systemctl start minecraftSunucuyu başlat
systemctl stop minecraftSunucuyu durdur
systemctl restart minecraftYeniden başlat
systemctl status minecraftDurum bilgisi göster
journalctl -u minecraft -fCanlı log takibi
journalctl -u minecraft --since '10 min ago'Son 10 dakikanın logları
Service dosyasında 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:

AyarVarsayılanÖnerilenAçıklama
server-port2556525565Sunucunun dinleyeceği TCP/UDP portu
max-players2050Maksimum eşzamanlı oyuncu sayısı
view-distance107Oyuncuya gönderilen chunk yarıçapı (düşük = daha az bant genişliği)
simulation-distance105Aktif olarak işlenen chunk yarıçapı (düşük = daha az CPU)
online-modetruetrueMojang hesap doğrulaması (false = cracked)
motdA Minecraft ServerÖzelleştirinSunucu listesinde görünen açıklama
difficultyeasynormalOyun zorluğu (peaceful/easy/normal/hard)
gamemodesurvivalsurvivalVarsayılan oyun modu
spawn-protection1616Spawn noktası etrafında koruma yarıçapı (blok)
enable-command-blockfalsefalseCommand block kullanımı (gerekmedikçe kapalı)
max-tick-time6000060000Watchdog timeout (ms) — sunucu donma algılama
network-compression-threshold256256Paket sıkıştırma eşiği (byte)
properties
# Ö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ı:

bash
# 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
Firewall'u etkinleştirmeden önce mutlaka SSH portunu (22) açın! Aksi halde sunucuya bağlantınız kesilir ve erişiminizi kaybedersiniz.

# RCON Portu (İsteğe Bağlı)

RCON, sunucu konsoluna uzaktan erişim sağlar. Kullanacaksanız:

bash
# 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
RCON parolasını güçlü tutun ve RCON portunu herkese açmayın. Sadece güvendiğiniz IP adreslerinden erişime izin verin.

# Port Özeti

PortProtokolHizmetDurum
22TCPSSHAçık (zorunlu)
25565TCP/UDPMinecraftAçık (zorunlu)
25575TCPRCONİsteğe bağlı (kısıtlı)
Diğer tüm portlarKapalı (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:25565 yazın (port 25565 ise :25565 kısmı opsiyoneldir)
  • Done ve ardından Join Server tıklayın

# Bağlantı Sorunları ve Çözümleri

SorunOlası NedenÇözüm
Connection timed outFirewall portu kapalıufw status ile 25565 portunu kontrol edin
Connection refusedSunucu çalışmıyorsystemctl status minecraft kontrol edin
io.netty.channel... hataSürüm uyumsuzluğuMinecraft istemci sürümünüz sunucu sürümüyle aynı olmalı
Authentication failedonline-mode sorunuOrijinal Minecraft hesabıyla giriş yapın
java.net.UnknownHostExceptionDNS çözümlenemediIP adresi yerine doğrudan sayısal IP deneyin
Internal ExceptionBozuk paket / eklenti hatasıSunucu loglarını (logs/latest.log) inceleyin
Bağlanamıyorsanız önce sunucu üzerinden 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ı:

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

Minecraft Sunucu Optimizasyonu

JVM flags, server.properties, Paper/Spigot config dosyaları, Spark profiling — TPS'inizi 20.0'da tutun.

Temel Plugin Kurulum Rehberi

EssentialsX, LuckPerms, WorldEdit, WorldGuard, CoreProtect — her sunucuda olması gereken eklentiler.

Velocity Proxy ile Network Kurulumu

Birden fazla sunucuyu tek IP altında birleştirin: lobby, survival, skyblock.

Kendiniz uğraşmak istemiyor musunuz?

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 →