Minecraft'ta nasıl sunucu kurulur
Kendi sunucunuz, dünya ve oyun kuralları üzerinde tam kontrol sağlar. Aylık abonelik ücreti ödemeden arkadaşlarınızla oynama, istediğiniz…
Kendi sunucunuz, dünya ve oyun kuralları üzerinde tam kontrol sağlar. Aylık abonelik ücreti ödemeden arkadaşlarınızla oynama, istediğiniz modifikasyonları kurma, mini oyunlar veya teknik paketler oluşturma imkânıdır. Sunucu, bilgisayarda ayrı bir program olarak çalışır: oyun mantığını işler, oyuncuların istemcileri ise ona bağlanır. Oluşturma süreci; çekirdek seçimi, temel yapılandırma dosyalarının ayarlanması ve ağ erişiminin açılmasından oluşur.
Sunucu çekirdeğinin seçimi
Çekirdek türü, sunucunun işlevselliğini belirler. Forge modlarını Paper'a veya eklentileri Vanilla'ya kurmak imkânsızdır.
Çekirdek türü | Destek | Ne için uygun |
Vanilla | Yalnızca datapack'ler | Saf hayatta kalma, speedrun'lar. En kötü optimizasyon. |
Paper | Eklentiler (Bukkit/Spigot/Paper) | Herkese açık sunucular, arkadaşlarla hayatta kalma, mini oyunlar. Mükemmel optimizasyon. |
Purpur | Eklentiler (Paper) + kendi yapılandırması | Paper gibi, ancak mekaniklerin ince ayarlarıyla (örneğin, arılara binmeye izin verme). |
Fabric | Modlar (Fabric) | Teknik sunucular (Carpet mod), vanilla+ paketler, optimizasyon (Lithium). |
NeoForge / Forge | Modlar (Forge/NeoForge) | Yeni boyutlar, mekanizmalar, büyü içeren ağır modpack'ler. |
Büyük küresel modlar olmadan özel sunucuların %90'ı için Paper en uygun seçimdir. Oyuncuların istemcilerine mod kurulmasını gerektirmez (her şey vanilla istemciden çalışır), bölge koruması için eklentileri destekler ve resmi çekirdekten daha hızlı çalışır.
⚠️ Önemli: Hem modları hem de eklentileri aynı anda destekleyen hibrit çekirdekler (Arclight, Mohist), genellikle mod mekaniklerini bozar ve kararsızlığa neden olur. Tek bir şey seçin: ya eklentiler ya da modlar.
Sistem gereksinimleri ve hazırlık
Sunucu, RAM (operatif bellek) ve işlemci kaynağı tüketir. Ekran kartının sunucu için bir önemi yoktur — dünya üretimi yalnızca CPU'da gerçekleşir.
2–5 oyuncu için (Paper):
RAM: 2–3 GB ayrılmış bellek.
CPU: 4 çekirdekten itibaren herhangi bir modern işlemci.
10+ oyuncu veya ağır modpack'ler için (NeoForge):
RAM: 6–8 GB ayrılmış bellek.
CPU: çekirdek başına yüksek performans.
Java kurulumu
Minecraft 1.21+ Java 21 gerektirir (26.1+ sürümler için Java 26 gerekir). Sunucu, istemciye gömülü Java'yı kullanmaz, sisteme ayrıca kurulması gerekir.
JDK 21'i (veya JDK 26'yı) Oracle'ın resmi sitesinden indirin.
Kurun ve kurulum sihirbazında “Add to PATH” seçeneğini mutlaka etkinleştirin.
Terminalde kontrol edin: java -version. 21.0.x sürümünü göstermelidir.
Temel kurulum ve başlatma
Paper çekirdeği için kurulum örneği:
Adım 1. Çekirdeğin indirilmesi
Resmi siteye gidin papermc.io, oyun sürümünü seçin (örneğin, 26.1) ve dosyayı indirin. Sunucu için boş bir klasör oluşturun ve dosyayı oraya taşıyın. Kolaylık olması için adını server.jar olarak değiştirin.
Adım 2. Başlatma dosyasının oluşturulması
Sunucu çift tıklamayla başlamaz. Ona bir betik aracılığıyla bellek ayırmanız gerekir.
Sunucu klasöründe start.txt adında bir metin belgesi oluşturun,
açın ve kodu yapıştırın:
DOS
java -Xmx4G -Xms4G -jar server.jar nogui
pause
-Xmx4G parametresi, maksimum RAM sınırını (4 GB) belirler. -Xms4G ise başlangıç miktarıdır. Dosyayı kaydedin ve uzantısını .txt'den .bat'a değiştirin (Windows için).
Linux/macOS'te start.sh oluşturun ve #!/bin/bash satırını ilk satır olarak ekleyin.
Adım 3. EULA'nın kabul edilmesi
start.bat'ı çalıştırın. Konsol birkaç saniye açılıp kapanır. Yeni eula.txt dosyasını açın. eula=false satırını eula=true olarak değiştirin. Bu, geliştiricilerin lisans sözleşmesinin resmi onayıdır.
Adım 4. Tam başlatma
start.bat'ı tekrar çalıştırın. Sunucu, dünyayı ve yapılandırma dosyalarını oluşturur. Konsolda Done! mesajı belirir. Sunucuyu yalnızca konsoldaki stop komutuyla durdurun, aksi takdirde dünya zarar görebilir.
Yapılandırma: server.properties
Dosya server.properties sunucunun temel ayarlarını içerir. Açmak için dosyaya sağ tıklayın ve “Birlikte aç…” seçeneğini, ardından “Not Defteri” veya başka herhangi bir metin düzenleyiciyi seçin.\
Aşağıda, varsayılan ayarları içeren bir tablo bulunmaktadır: server.properties ve her parametrenin açıklaması:
Parametre | Değer | Açıklama |
accepts-transfers | FALSE | Bu sunucunun, diğer sunuculardan gelen oyuncu yönlendirmelerini (transferlerini) kabul edip etmediğini belirler. |
allow-flight | FALSE | Hayatta kalma modunda sunucuda uçmaya izin verir veya yasaklar (oyuncu üçüncü taraf modifikasyonlar kullanıyorsa). false olduğunda sunucu bu tür oyuncuları atar. |
broadcast-console-to-ops | TRUE | Etkinleştirilirse, konsol komutlarının yürütme sonuçları sohbette sunucunun tüm operatörlerine (yöneticilerine) gönderilir. |
broadcast-rcon-to-ops | TRUE | Bir öncekiyle aynı, ancak uzaktan erişim (RCON) üzerinden gönderilen komutlar için. |
bug-report-link | (boş) | Bir hata veya çökme nedeniyle sunucudan bağlantı kesildiğinde oyunculara ekranda gösterilecek bağlantı. |
debug | FALSE | Hataların genişletilmiş kaydı için hata ayıklama modunu (debug mode) etkinleştirir. |
difficulty | easy | Sunucudaki zorluk seviyesi (peaceful — barışçıl, easy — kolay, normal — normal, hard — zor). |
enable-code-of-conduct | FALSE | Oyunculardan bağlanırken Microsoft'un davranış kurallarını (Code of Conduct) kabul etmelerinin istenip istenmeyeceği. |
enable-jmx-monitoring | FALSE | Sunucu performansının izlenmesi için JMX (Java Management Extensions) kullanımına izin verir. |
enable-query | FALSE | Üçüncü taraf izleme sitelerinin sunucu hakkında bilgi (çevrimiçi oyuncular, eklentiler) almasına olanak tanıyan GameSpy4 (Query) protokolünü etkinleştirir. |
enable-rcon | FALSE | Makinenin terminaline doğrudan erişim olmadan yönetim için sunucu konsoluna uzaktan erişimi (RCON) etkinleştirir. |
enable-status | TRUE | Sunucunun, oyun istemcisinin sunucu listesinde «çevrimiçi» olarak görünmesine olanak tanır. |
enforce-secure-profile | TRUE | Oyuncuların imzalı Mojang profili genel anahtarlarına sahip olmasını gerektirir (sohbetteki mesajların sahteciliğine karşı koruma). |
enforce-whitelist | FALSE | true ise, bu liste etkinleştirildiğinde sunucu, «beyaz listede» (whitelist) olmayan oyuncuları zorla atar. |
entity-broadcast-range-percentage | 100 | Sunucunun, varlıklar (moblar, diğer oyuncular, eşyalar) hakkındaki verileri istemciye gönderdiği mesafeyi (yüzde olarak) kontrol eder. |
force-gamemode | FALSE | Oyunculara, sunucuya her bağlandıklarında varsayılan oyun modunu zorla atar. |
function-permission-level | 2 | Datapack'ler aracılığıyla yürütülen işlevler için erişim yetki seviyesi (1'den 4'e kadar). |
gamemode | survival | Varsayılan oyun modu (survival, creative, adventure, spectator). |
generate-structures | TRUE | Dünyada yapıların oluşturulup oluşturulmayacağını belirler (köyler, zindanlar, tapınaklar vb.). |
generator-settings | {} | Dünya üreteci için özel ayarlar (genellikle özel dünyalar için kullanılır). |
hardcore | FALSE | «Hardcore» modu. true ise, ölümden sonra oyuncu sonsuza dek izleyici moduna geçer. |
hide-online-players | FALSE | true ise, çok oyunculu oyun menüsünde aktif oyuncuların takma adlarının listesini gizler. |
initial-disabled-packs | (boş) | Yeni bir dünya oluşturulurken devre dışı bırakılacak datapack'lerin listesi. |
initial-enabled-packs | vanilla | Varsayılan olarak etkinleştirilmiş datapack'lerin listesi (temel oyun «vanilla»). |
level-name | world | Dünyanızın dosyalarının saklandığı klasörün adı. |
level-seed | (boş) | Dünya üretimi için seed (sayısal tohum). Boş ise, rastgele bir tane üretilir. |
level-type | minecraft\:normal | Dünya üretiminin türü (normal — normal, flat — düz, large_biomes — büyük biyomlar, amplified — dağlık). |
log-ips | TRUE | Oyuncuların IP adreslerinin sunucunun günlük dosyalarına yazılıp yazılmayacağını belirler. |
management-server-* | (çeşitli) | Harici sunucu yönetim araçları için parametre grubu (portlar, anahtarlar, ayarlar) (nadiren kullanılır). |
max-chained-neighbor-updates | 1000000 | Sunucunun donmasını önlemek için zincirleme blok güncellemeleri sınırı (örneğin, bir TNT patlaması veya karmaşık redstone şemaları sırasında). |
max-players | 20 | Sunucuda aynı anda bulunabilecek maksimum oyuncu sayısı. |
max-tick-time | 60000 | Bir «tick»in yürütülmesi için maksimum süre (milisaniye cinsinden). Sunucu bu süreden daha uzun süre «düşünürse», otomatik olarak kapanır («ölü» bir donmaya karşı koruma). |
max-world-size | 29999984 | Dünya sınırının maksimum yarıçapı (blok cinsinden). |
motd | A Minecraft Server | Message Of The Day. Oyuncuların sunucu listesinde gördüğü sunucu açıklaması/adı. |
network-compression-threshold | 256 | Sunucunun, internet trafiğinden tasarruf etmek için sıkıştırmaya başlayacağı minimum paket boyutu (bayt cinsinden). |
online-mode | TRUE | Çok önemli bir parametre. true ise — yalnızca lisanslı oyuna sahip oyuncuları kabul eder. false ise — «korsan» başlatıcıları olan oyuncuların girmesine izin verir. |
op-permission-level | 4 | Operatörlerin varsayılan yetki seviyesi (1-4, burada 4, stop dahil tüm komutlara erişim sağlar). |
pause-when-empty-seconds | -1 | Oyuncu yoksa sunucunun dünyayı «duraklattığı» boşta kalma süresi (saniye cinsinden) (-1 devre dışı anlamına gelir). |
player-idle-timeout | 0 | Aktif olmayan (AFK) bir oyuncunun otomatik olarak atıldığı süre (dakika cinsinden). 0 — devre dışı. |
prevent-proxy-connections | FALSE | VPN veya proxy kullanan oyuncuların bağlanmasını yasaklar (Mojang kimlik doğrulama sistemiyle birlikte çalışır). |
query.port | 25565 | Query protokolü için port (enable-query parametresiyle etkinleştirilmişse). |
rate-limit | 0 | İstemciden sunucuya gelen maksimum paket sayısı. Paket spamına karşı koruma için kullanılır (0 — devre dışı). |
rcon.password | (boş) | Sunucu konsoluna uzaktan erişim için parola (enable-rcon=true ise doldurulması gerekir). |
rcon.port | 25575 | RCON bağlantısı için port. |
region-file-compression | deflate | Dünya dosyalarının (bölgelerin) sıkıştırma algoritması. deflate standart ve en yaygın olanıdır. |
require-resource-pack | FALSE | true ise, oyuncu sunucunun kaynak paketini indirmeyi kabul etmeden sunucuya giremez. |
resource-pack | (boş) | Oyunculara sunulacak sunucunun kaynak paketinin .zip arşivine doğrudan bağlantı (URL). |
resource-pack-id | (boş) | Kaynak paketinin benzersiz tanımlayıcısı (UUID). |
resource-pack-prompt | (boş) | Oyuncuya kaynak paketini indirmesi önerildiğinde göreceği mesaj (örneğin: «Lütfen daha iyi bir oyun deneyimi için paketi indirin»). |
resource-pack-sha1 | (boş) | Kaynak paketi arşivinin SHA-1 karması. İstemcinin, değişmemişse paketi yeniden indirmemesi için gereklidir. |
server-ip | (boş) | Sunucuyu «bağlamak» için IP adresi. Genellikle, sunucunun makinenin tüm ağ arayüzlerinde çalışması için boş bırakılır. |
server-port | 25565 | Oyuncuların bağlanacağı ana sunucu portu. |
simulation-distance | 10 | Oyuncunun çevresinde dünyanın simüle edildiği yarıçap (chunk cinsinden) (bitkiler büyür, moblar yürür, mekanizmalar çalışır). |
spawn-protection | 16 | Spawn bölgesinin koruma yarıçapı (blok cinsinden). Bu bölgede sıradan oyuncular blok kıramaz veya yerleştiremez. |
status-heartbeat-interval | 0 | Sunucu durumu hakkında genişletilmiş veri gönderme aralığı (genellikle kullanılmaz). |
sync-chunk-writes | TRUE | Chunk'ların diske kaydedilmesini senkron hale getirir (çökmelerde dünya verisi kaybını önlemek için daha güvenilirdir, ancak sunucuyu biraz yavaşlatabilir). |
text-filtering-config | (boş) | Sohbette küfürlü kelimeleri filtreleyen üçüncü taraf sistemin ayarı. |
text-filtering-version | 0 | Metin filtreleme sistemi için API sürümü. |
use-native-transport | TRUE | Sunucunun, sistemin optimize edilmiş ağ kitaplıklarını (örneğin, Linux için epoll) kullanmasına olanak tanır, bu da ağ performansını artırır. |
view-distance | 10 | Sunucunun istemciye gönderdiği çizim mesafesi (chunk cinsinden) (oyuncunun görüş mesafesinin dayandığı değer). |
white-list | FALSE | «Beyaz listenin» etkinleştirilmesi. true ise, sunucuya yalnızca takma adları bu listeye eklenmiş oyuncular girebilir (/whitelist add <takma ad> komutuyla). |
⚠️ Önemli: online-mode=false ayarlarsanız, herhangi bir oyuncu yöneticinin takma adıyla girebilir. Koruma için mutlaka bir yetkilendirme eklentisi (örneğin, AuthMe Reloaded) kurun.
Eklentiler nasıl kurulur
Eklentiler, oyunculara mod kurma gereği olmadan sunucunun olanaklarını genişletir. Yalnızca Paper, Purpur ve Spigot'ta çalışır.
Eklentiyi .jar formatında indirin.
Dosyayı sunucunun içindeki plugins klasörüne koyun.
Sunucuyu yeniden başlatın (stop -> start.bat).
plugins klasöründe, ayarlarının düzenlendiği eklenti yapılandırmalarını içeren bir klasör belirir (genellikle config.yml dosyasında).
Modlar nasıl kurulur
Modlarla oynamak için Fabric veya NeoForge çekirdeği gerekir. Tüm oyuncuların istemcilerinde aynı mod setine sahip olması gerekir.
Fabric için:
Kurulum sihirbazını şuradan indirin: fabricmc.net.
Çalıştırın, «Server» sekmesini seçin, oyun sürümünü ve boş bir klasörü belirtin. «Install»'a tıklayın.
İndirilen fabric-server-launch.jar'ı start.bat aracılığıyla çalıştırın.
Modları oluşturulan mods klasörüne atın. Fabric için Fabric API modu mutlaka gereklidir.
NeoForge için:
Kurulum sihirbazını şuradan indirin: neoforged.net.
Çalıştırın, «Install server» seçeneğini seçin ve klasörü belirtin.
Kurulumdan sonra run.bat dosyasını çalıştırın (kurulum sihirbazı onu kendisi oluşturur).
Sunucu modlarını mods klasörüne yerleştirin.
İstemci modlarını (mini haritalar, shader'lar, Sodium gibi görüntü optimizasyonu) sunucuya kurmak yasaktır — başlatma sırasında çekirdeğin çökmesine neden olurlar.
Oyuncuların sunucuya nasıl alınacağı
Yöntem 1: Port Forwarding
En düşük ping'e sahip en iyi yöntem. Yönlendiriciye erişim gerektirir.
Yönlendiricinin ayarlar paneline girin (tarayıcıda 192.168.1.1).
«Port Forwarding» veya «NAT» bölümünü bulun.
Bir kural oluşturun: port 25565, protokol TCP/UDP, yerel IP — bilgisayarınızın adresi (ipconfig ile öğrenin).
Oyuncular, harici IP adresiniz üzerinden bağlanır (site 2ip.ua).
Yöntem 2: Tüneller (Playit.gg)
Sağlayıcı portları engelliyorsa.
Programı şuradan indirin: playit.gg.
Sunucuyla birlikte çalıştırın. Tarayıcıda bir sayfa açacaktır.
Kaydolun, hizmet herkese açık bir adres verecektir (örneğin, auto-bridge.playit.gg).
Oyuncular bu adresi oyuna girer.
Yöntem 3: Radmin VPN
Tüm bilgisayarlara Radmin VPN kurun.
Bir ağ oluşturun ve arkadaşlarınıza adını verin.
Onlar ağa katılır.
Oyuncular, Radmin VPN'de belirtilen PC'nizin IP adresi üzerinden bağlanır.
Teknik ayrıntılar / İçeride nasıl çalışır
Minecraft sunucusu tek iş parçacıklı bir uygulamadır. Mob hareketini, fiziği ve mekanizmaları işleyen ana oyun döngüsü (tick loop), yalnızca işlemcinin tek bir çekirdeğinde yürütülür.
Oyun, saniyede 20 tick (TPS — Ticks Per Second) yürütmeye çalışır. Bir tick'e 50 milisaniye ayrılır. Hesaplamalar daha uzun sürerse, TPS düşer ve oyuncular gecikmeleri hisseder. İşte bu yüzden sunucu için tek bir çekirdeğin saat frekansı, toplam çekirdek sayısından daha önemlidir.
Paper gibi çekirdeklerde çoklu iş parçacığı yalnızca chunk'ların diskten asenkron yüklenmesi ve ağ işlemleri için kullanılır, ancak oyun mantığının kendisi tek bir iş parçacığında kalır.
Temel yönetici komutları
Sunucu konsoluna girilir (/ olmadan).
Eylem | Komut |
Operatör yetkisi verme | op [takma ad] |
Yetkiyi alma | deop [takma ad] |
Beyaz listeyi etkinleştirme | whitelist on |
Beyaz listeye ekleme | whitelist add [takma ad] |
Bir oyuncuyu atma | kick [takma ad] [sebep] |
Bir oyuncuyu yasaklama | ban [takma ad] [sebep] |
Dünyayı manuel kaydetme | save-all |
Alternatif olarak hosting
Ev bilgisayarı zayıfsa, sunucu kiralanabilir.
Tür | Temsilciler | Avantajlar | Kısıtlamalar |
Ücretsiz | Aternos, FalixNodes | Ödeme yapmaya gerek yok | Başlatma kuyrukları, yük altında lag'ler, sunucu oyuncusuz kapanır. |
Ücretli bütçe dostu | PebbleHost, Bloom.host | GB başına 1$'dan itibaren, 24/7 çalışma | Aylık ödeme yapmak gerekir. |
VDS/VPS | Hetzner, Oracle | Makine üzerinde tam kontrol | Linux yönetimi becerileri gerektirir. |
Sık yapılan hatalar ve bunlardan kaçınma yolları
Hata 1: FAILED TO BIND TO PORT. Sunucu başlamıyor çünkü 25565 portu zaten kullanımda. Genellikle iki start.bat başlatıldığında olur. Görev yöneticisini açın ve tüm Java(TM) Platform SE binary işlemlerini kapatın.
Hata 2: UnsupportedClassVersionError. Java sürümü eski. 1.20.5+ için Java 21, 1.16.5 için ise — Java 11 gerekir.
Hata 3: Hızlı uçuş sırasında lag'ler. Sunucu yeni chunk'ları üretmeye yetişemiyor. Chunky eklentisini kurun ve dünyayı önceden 5000 blokluk bir yarıçapta üretin.
Hata 4: Başlatma sırasında Fabric/Forge sunucusunun çökmesi. mods klasörüne bir istemci modu (mini harita, Sodium) girmiş. Sunucunun grafik arayüzü yoktur ve bunları yüklemeye çalışırken çöker.
Hata 5: Bağlanırken Invalid session hatası. Oyuncu, online-mode=true etkinken korsan bir başlatıcı kullanıyor. server.properties'te değeri false olarak değiştirin.
Sonuç
Paper tabanlı kendi sunucunuz, arkadaşlarla özel hayatta kalma için en uygun seçimdir, çünkü mükemmel performans sağlar ve oyun istemcisini değiştirmeden eklenti eklemeye olanak tanır. Yeni mekanikler içeren büyük paketler için, sunucu ile oyuncular arasında modların senkronizasyonunu gerektiren Fabric veya NeoForge'u kullanmanız gerekecektir. Ev sunucusunu kurmadaki temel zorluk, portların doğru açılmasıdır, ancak Playit.gg gibi hizmetlerin kullanılması, sağlayıcının engellediği portlar sorununu çözer. Ev PC'sinin performansı yeterli değilse, uygun fiyatlı ücretli bir hosting'e geçiş, 24/7 kararlı erişimi garanti eder.
Henüz yorum yok. Düşüncelerini paylaşan ilk kişi ol.