Bu rehber, Ubuntu 24.04 çalışan bir VDS'te resmi Minecraft Java Edition sunucusunu kurup sürekli çalışan, kendini yeniden başlatan ve yedeklenen bir servise dönüştürüyor. Komutları test VDS'imizde sırayla çalıştırdık; aşağıdaki çıktılar o oturumdan. Ev bilgisayarında açılan sunucudan farkı, sizi kapatmadan ve modeme port yönlendirmeden yirmi dört saat açık kalmasıdır.
Neye ihtiyacınız var?
- Sunucu: Kök erişimli bir Linux VDS. Minecraft'ın oyun döngüsü saniyede 20 kez sabit işlemci zamanı ister; işlemcinin başka müşterilerle paylaşıldığı bir sunucuda bu, oyuncuya "takılma" olarak yansır. Farkın nasıl ölçüldüğünü VDS ve VPS yazımızda anlattık.
- Bellek: Az oyunculu, eklentisiz bir sunucu için 2 GB alt sınırdır; testimiz bu boyutta yapıldı. Oyuncu ve eklenti arttıkça 4 GB ve üzerini planlayın.
- Oyuncularınıza yakın bir konum: Oyuncularınız Türkiye'deyse sunucunun da Türkiye'de olması gecikmeyi doğrudan düşürür.
Java Edition mı, Bedrock mu?
Minecraft'ın iki ayrı sürümü ve iki ayrı sunucu yazılımı vardır; oyuncularınızın hangisini oynadığına göre seçersiniz:
| Java Edition | Bedrock Edition | |
|---|---|---|
| Oyuncu platformu | Bilgisayar (Windows, macOS, Linux) | Mobil, konsol, Windows |
| Sunucu yazılımı | Java ile çalışan server.jar | Bedrock Dedicated Server (Linux ve Windows için ayrı paket) |
| Varsayılan port | TCP 25565 | UDP 19132 |
| Eklenti ve mod | Çok geniş ekosistem | Daha sınırlı |
Bu rehber Java Edition sunucusunu anlatıyor. Bedrock sunucusunda kurulum mantığı (ayrı kullanıcı, systemd servisi, güvenlik duvarı, yedek) aynıdır; yalnız açılacak port UDP 19132 olur.
1. Doğru Java sürümünü kurun
Her Minecraft sürümü belirli bir Java sürümü ister ve bu sürümler arasında değişir. Hangisinin gerektiğini tahmin etmek yerine Mojang'ın yayımladığı sürüm manifestine bakabilirsiniz. Test ettiğimiz tarihte en son kararlı sürüm 26.3 idi ve Java 25 istiyordu:
$ curl -s https://piston-meta.mojang.com/mc/game/version_manifest_v2.json \
| python3 -c 'import json,sys; print(json.load(sys.stdin)["latest"])'
{'release': '26.3', 'snapshot': '26.4-snapshot-4'}
Sürümün kendi JSON dosyasındaki javaVersion.majorVersion alanı gereken Java'yı, downloads.server alanı ise indirme adresini ve SHA-1 özetini verir. Ubuntu 24.04 deposunda Java 25 bulunuyor:
apt update
apt install -y openjdk-25-jre-headless
java -version
openjdk version "25.0.4.1" 2026-08-18
2. Ayrı bir kullanıcı ve dizin açın
Sunucuyu root olarak çalıştırmayın. Oyun sunucusundaki bir açık, ele geçireni sunucunuzun tamamına değil yalnız bu kullanıcının dizinine götürmelidir.
adduser --system --group --home /opt/minecraft --shell /usr/sbin/nologin minecraft
cd /opt/minecraft
3. Sunucu dosyasını indirin ve doğrulayın
İndirme adresini ve özeti sürüm JSON'undan alın; üçüncü taraf sitelerden "hazır sunucu" indirmeyin. Aşağıdaki adres ve özet test ettiğimiz 26.3 sürümüne aittir; siz kurarken güncel sürümünkini kullanın.
sudo -u minecraft curl -sSLo server.jar \
https://piston-data.mojang.com/v1/objects/33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c/server.jar
echo "33680f5f2ac32864d6d7cf5e56a705fdb3e05f4c server.jar" | sha1sum -c
server.jar: OK
4. İlk çalıştırma ve EULA
İlk çalıştırmada sunucu gerekli dosyaları üretir ve EULA'yı kabul etmediğiniz için durur. Günlükte server.properties bulunamadı uyarısı görmeniz normaldir; dosya bu çalıştırmada oluşturulur.
sudo -u minecraft java -Xms1G -Xmx1G -jar server.jar --nogui
[ServerMain/WARN]: Failed to load eula.txt
[ServerMain/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
eula.txt içindeki bağlantıdan Minecraft son kullanıcı sözleşmesini okuyun; kabul ediyorsanız değeri true yapın:
sed -i 's/^eula=false/eula=true/' eula.txt
5. server.properties: önemli birkaç ayar
| Ayar | Ne yapar | Öneri |
|---|---|---|
online-mode | Oyuncuların Mojang hesabını doğrular | true bırakın; kapatmak başkasının adıyla girmeye izin verir |
white-list | Yalnız listedeki oyuncular girebilir | Özel sunucu için açık. Test ettiğimiz sürümde varsayılan olarak true geldi |
max-players | En fazla eşzamanlı oyuncu | Belleğinize göre |
view-distance | Oyuncu çevresinde yüklenen alan | 8-10; yükseldikçe işlemci ve bellek ihtiyacı hızla artar |
server-port | Dinlenen port | 25565 (varsayılan) |
motd | Sunucu listesinde görünen açıklama | Serbest |
sed -i -e 's/^motd=.*/motd=Sunucumuz/' \
-e 's/^max-players=.*/max-players=10/' \
-e 's/^view-distance=.*/view-distance=8/' server.properties
Bellek ayarı nasıl seçilir? Java'ya verdiğiniz bellek (-Xmx) sunucunun toplam belleğinden en az 512 MB ile 1 GB eksik olmalıdır; kalan pay işletim sistemine, dosya önbelleğine ve Java'nın yığın dışı kullanımına gider. Fazla bellek her zaman daha iyi değildir: çöp toplayıcı büyük bir yığını temizlerken kısa duraklamalar yapabilir. Sunucunuz takılıyorsa önce günlükteki "Can't keep up" satırlarına ve işlemci kullanımına bakın; çoğu zaman sorun bellek değil, işlemci ya da görüş mesafesidir.
6. systemd servisi: açılışta başlasın, çökerse kalksın
Sunucuyu bir screen oturumunda bırakmak yerine systemd servisi yapın. Aşağıdaki kurguda bir de konsol borusu var: systemd, sunucunun standart girdisine bağlı bir FIFO dosyası açar; o dosyaya yazdığınız her satır sunucu konsoluna komut olarak gider. Böylece sunucuyu durdurmadan ve RCON açmadan whitelist, say ya da save-all gönderebilirsiniz.
/etc/systemd/system/minecraft.socket:
[Unit]
Description=Minecraft konsol girdisi
PartOf=minecraft.service
[Socket]
ListenFIFO=/run/minecraft.stdin
SocketUser=minecraft
SocketMode=0600
RemoveOnStop=true
/etc/systemd/system/minecraft.service:
[Unit]
Description=Minecraft sunucusu
After=network-online.target
Wants=network-online.target
[Service]
Sockets=minecraft.socket
StandardInput=socket
StandardOutput=journal
StandardError=journal
User=minecraft
Group=minecraft
WorkingDirectory=/opt/minecraft
ExecStart=/usr/bin/java -Xms1G -Xmx1536M -jar server.jar --nogui
Restart=on-failure
RestartSec=10
NoNewPrivileges=true
ProtectSystem=full
ProtectHome=true
PrivateTmp=true
[Install]
WantedBy=multi-user.target
-Xmx Java'nın kullanabileceği en fazla bellektir; 2 GB'lık test sunucusunda 1,5 GB verdik ve işletim sistemine pay bıraktık. Servisi etkinleştirip başlatın, portu açın:
systemctl daemon-reload
systemctl enable --now minecraft
ufw allow 25565/tcp
$ grep -E "Starting minecraft server version|Done \(" /opt/minecraft/logs/latest.log
[Server thread/INFO]: Starting minecraft server version 26.3
[Server thread/INFO]: Done (6.429s)! For help, type "help"
$ ss -ltnp | grep 25565
LISTEN 0 4096 *:25565 *:* users:(("java",pid=9481,fd=65))
UFW'yi henüz açmadıysanız önce SSH'e izin verin; ayrıntılar Ubuntu Nginx rehberindeki güvenlik duvarı adımında.
7. Konsol komutu göndermek ve oyuncu eklemek
Komutları sunucunun "Done" satırını yazdıktan sonra gönderin; açılış sürerken gönderilen komutlar hata verir. Çıktıyı günlükten okuyun:
echo "whitelist add OyuncuAdi" > /run/minecraft.stdin
echo "list" > /run/minecraft.stdin
tail -3 /opt/minecraft/logs/latest.log
[Server thread/INFO]: System chat: Added Notch to the whitelist
[Server thread/INFO]: System chat: There are 0 of a max of 10 players online:
Kendinize yönetici yetkisi vermek için op OyuncuAdi, sunucuyu güvenle kapatmak için systemctl stop minecraft kullanın; systemd sunucuya kapanma sinyali gönderir ve dünya kaydedilir.
8. Dünyayı tutarlı yedekleyin
Sunucu çalışırken dünya dosyaları sürekli yazılır; o anda alınan kopya bozuk olabilir. Doğru sıra: otomatik kaydı durdur, bekleyen her şeyi diske yaz, kopyala, otomatik kaydı geri aç.
#!/bin/sh
# /usr/local/bin/mc-yedek — günde bir kez cron ile
set -e
echo "save-off" > /run/minecraft.stdin
echo "save-all flush" > /run/minecraft.stdin
sleep 10
tar -czf /var/backups/minecraft-$(date +%F).tar.gz -C /opt/minecraft world
echo "save-on" > /run/minecraft.stdin
find /var/backups -name 'minecraft-*.tar.gz' -mtime +7 -delete
Bu kopya hâlâ aynı sunucunun diskinde durur. Disk ya da sunucu kaybına karşı arşivi başka bir yere de gönderin; kuralın gerekçesi 3-2-1 yedekleme yazımızda.
Resmi sunucu mu, Paper gibi bir alternatif mi?
Bu rehberde Mojang'ın resmi sunucusunu kurduk: her yeni sürüm ilk gün çıkar ve oyun mekaniği birebir aynıdır. Topluluk sunucularının çoğu ise Paper gibi resmi sunucunun üzerine kurulmuş, eklenti destekleyen ve performans iyileştirmeleri yapılmış alternatifleri kullanır. Seçerken şuna bakın:
- Eklenti istiyorsanız (koruma alanları, ekonomi, ışınlanma, oyuncu izinleri): Paper ya da benzeri. Kurulum yine aynı
java -jarmantığıdır; yalnız indirdiğiniz dosya değişir. - Mod paketi istiyorsanız (yeni bloklar, boyutlar): Fabric ya da NeoForge gibi mod yükleyicileri; oyuncuların da aynı modları kurması gerekir.
- Saf oyun ve yeni sürümler hemen istiyorsanız: resmi sunucu. Alternatif yazılımlar yeni sürüme birkaç gün ya da hafta sonra geçer.
Oyuncular bağlanamıyorsa: kontrol listesi
- Servis çalışıyor mu?
systemctl is-active minecraftve günlükte "Done" satırı. - Port dinleniyor mu?
ss -ltnp | grep 25565. Çıktı yoksa sunucu açılırken hata vermiştir;journalctl -u minecraft -n 50. - Güvenlik duvarı açık mı?
ufw statusçıktısında 25565/tcp görünmeli. - Dışarıdan erişilebiliyor mu? Kendi bilgisayarınızdan
nc -zv sunucu-ip 25565(Windows'taTest-NetConnection sunucu-ip -Port 25565). - Sürüm uyuşuyor mu? İstemci ile sunucu sürümü farklıysa oyun "Outdated server" ya da "Outdated client" der.
- Beyaz liste: "You are not white-listed on this server" mesajı, oyuncuyu
whitelist addile eklemediğiniz anlamına gelir.
9. Güvenlik ve performans için son notlar
- Yalnız gerekli portu açın. RCON'u açacaksanız (
enable-rcon) portunu güvenlik duvarında dışarıya açmayın; RCON parolası düz metin gider. - DDoS: Popüler oyun sunucuları saldırı hedefidir. Sağlayıcınızın ağ katmanında koruma olup olmadığını sorun; hazırlık için DDoS saldırılarına hazırlık yazımız.
- Tick süresini izleyin: Günlükte "Can't keep up! Is the server overloaded?" satırları görüyorsanız sunucu saniyede 20 tick'i yetiştiremiyor demektir. Önce
view-distance'ı düşürün; yetmiyorsa işlemci gücü artırın. - Güncellemeden önce yedek: Sürüm yükseltmeleri dünyayı dönüştürür ve geri dönüşü yoktur.
Başka bir oyun mu kuracaksınız? Metin2 için kaynak planlamasını Metin2 sunucusu için VDS yazımızda bulabilirsiniz.
Sık sorulan sorular
Minecraft sunucusu için kaç GB RAM gerekir?
Test sunucumuzda 2 GB belleğe sahip bir VDS'te, Java'ya 1,5 GB vererek boş bir dünyayı açtık; az oyunculu, modsuz bir sunucu için bu alt sınırdır. Oyuncu sayısı, görüş mesafesi ve eklentiler arttıkça bellek ihtiyacı büyür; mod paketleri çoğu zaman 6-8 GB ve üzerini ister. Java'ya sunucunun tüm belleğini vermeyin; işletim sistemine pay bırakın.
Minecraft sunucusu hangi portu kullanır?
Java Edition varsayılan olarak TCP 25565 portunu kullanır. Port server.properties içindeki server-port satırıyla değiştirilir; değiştirirseniz güvenlik duvarında da yeni portu açın ve oyunculara adresi ip:port biçiminde verin.
Bedava Minecraft sunucusu kurulabilir mi?
Sunucu yazılımı ücretsizdir; kendi bilgisayarınızda da çalıştırabilirsiniz. Sorun bilgisayarın sürekli açık kalması, ev internetinde sabit IP ve port yönlendirme gerekmesi ve ev bağlantısının saldırıya açık olmasıdır. Arkadaşlarınızla ara sıra oynamak için yeterli; sürekli açık bir topluluk sunucusu için bir VDS daha uygundur.
Sunucuyu güncellemek için ne yapmalıyım?
Önce dünyanın yedeğini alın, sonra servisi durdurun, yeni sürümün server.jar dosyasını eskisinin yerine koyun ve servisi başlatın. Yeni sürüm farklı bir Java sürümü istiyorsa sürümün manifest dosyasındaki javaVersion değerine bakın; bu rehberdeki 26.3 sürümü Java 25 istiyordu.
- #minecraft
- #oyun sunucusu
- #vds kurulum
- #systemd
Oyun sunucusu sabit işlemci ister. VDS paketlerimizde çekirdek ve bellek size ayrılır, standart DDoS koruması her pakette; veri merkezimiz İstanbul'da.
VDS paketlerine bakın