Rehber Minecraft sunucusu nasıl açılır? - Linux özel

Herkese merhaba arkadaşlar, bugün geçen gün açtığım rehberin devamındayız. Size Linux sunucularda FTP nasıl kurulur, MC sunucusu nasıl açılır, VDS sunucular için önerdiğim Minecraft sunucusu ayarları nelerdir, ondan bahsedeceğim. Öncelikle bugün kullanacaklarımızdan bahsedeyim:



Bir tane VDS sunucusu. Tercihen Ryzen işlemcili ve Ubuntu 22.04 kurulu bir makine. 1.12+ sürümlerde Xeon E5 makineler kasma sorunu yaratabiliyor. Bugün bir deneysel çalışma yapacağım ve Intel Xeon Platinum serisi bir işlemci kullanacağım.



FileZilla uygulaması. Bu opsiyonel bir seçenek. Herhangi bir FTP client kullanmanız yeterli. Hatta FTP client bile kullanmayabilirsiniz. Ben arayüzünü sevdiğim ve kolay gördüğüm için bunu kullanıyorum.

PuTTY uygulaması. PuTTY kullanıp kullanmamak tamamen opsiyonel bir tercih. Ben alışkanlığımdan dolayı kullanıyorum. Halihazırda Windows kullanan arkadaşlarımız PowerShell üzerinden bağlanabilir. Linux kullananlar için bir şey demiyorum; onlar zaten yolunu bulacaktır.

PaperMC server.jar dosyası. Bugün ayrıca PaperMC ile kurulum yapacağım. Şimdi bazı arkadaşlar neden Spigot/Bukkit kullanmadın diye sorabilir; ben tercih etmiyorum. En iyi performansı PaperMC ile alabildiğim için onu tercih ediyorum. Ayrıca start.bat dosyasına koyacağım flaglar ile genelde stabil şekilde çalışıyor.

Java. Ben bugün Java 21 kullanacağım. Bu kuracağınız sürüme göre değişecektir. 1.21+ için şu anlık Java 21 kullanılıyor. Yine naçizane tavsiyem, sisteminizde iki tane Java’yı aynı anda barındırmayın; çakışmalar yapabiliyor.
1.7 – 1.11 Java 8

1.12 – 1.16.5 Java 8

1.17 Java 16

1.18 – 1.20.4 Java 17

1.20.5+ Java 21

Rehberimize, sunucumuza PuTTY ile bağlanarak ve vsftpd kurulumuyla başlayalım:

vsftpd, sunucunuza kurmanız gereken bir FTP sunucu servisi diyebiliriz. Aslında zorunlu değil, ancak Minecraft sunucularını FTP aracılığıyla arayüz üzerinden yönetmek işleri oldukça kolaylaştırıyor. Özellikle dünya dosyaları veya config dosyalarında düzenleme yapmak hızlı oluyor. Ayrıca bilgisayarınıza dosya indirip karşı tarafa yüklemek de kolaylaşıyor. Sunucu zaten 1Gbit hıza sahip olduğu için, internetiniz kötü değilse transferler hızlı gerçekleşiyor.

Kod:
sudo apt update
sudo apt install vsftpd -y

sudo apt update komutuyla kitaplıklarımızı güncelliyoruz diyebiliriz. install komutu ile servisi kurmaya başlıyoruz. -y eki, komutu çalıştırırken karşısına çıkacak tüm onayları otomatik olarak kabul etmesi anlamına gelir; y/n sormak yerine böyle yapmanız daha kolay olur.

Kod:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd

Bu kodlarımız ise servisi başlatmamız için.

Kod:
sudo systemctl status vsftpd

Bu kodu girerek servisin anlık durumunu öğrenebilirsiniz. Eğer yanında yeşil bir “active” işareti varsa servisiniz kurulmuş demektir. Şimdi gelelim bu servisimizin ayarlarını yapmaya.

Kod:
sudo nano /etc/vsftpd.conf

nano ile .conf dosyasını açıyoruz ve içine giriyoruz. Bu dosya üzerinden bazı config ayarlarını yapmamız gerekiyor; yoksa klasöre erişim sağlayamayız.

Kod:
# --- Temel Ayarlar ---
listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES

# --- Yazma İzinleri ---
write_enable=YES
local_umask=022

# --- Güvenlik ve Klasör Kilitleme ---
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
allow_writeable_chroot=YES

# --- SSL (Keyfe keder, şart değil.) ---
ssl_enable=NO

Bu ayarları config dosyası içinde bulup bu hâle getiriyorsunuz. Bazılarının başında # işareti olabilir; kaldırmanız gerekli. Bunları basitçe açıklamak gerekirse, listen_ipv4 kısmı IPv4’ü açıyor, listen_ipv6 ise bunun IPv6 hâli. Biz IPv4 kullanacağımız için diğerini kapatıyoruz. Aynı anda açarsanız hata verecektir. write_enable isminden anlaşılacağı gibi yazma iznini veriyor. Onun dışında açılması gereken diğer ayarlar var. Eğer sunucuyu aldığınız yere güveniyorsanız SFTP kullanmanıza gerek yok. Bu yüzden SSL kapalı. Dileyen açabilir ama ben hiç açmadım, bunca zamandır sıkıntı yaşamadım. Ayarları bitirdikten sonra sudo systemctl restart vsftpd komutu ile sistemi yeniden başlatmanız gerekiyor.

Kod:
sudo ufw allow 21/tcp
sudo ufw reload

Güvenlik duvarını 21 portu üzerinden TCP için açmamız gerekiyor. Aksi hâlde bağlantıda sıkıntılar yaşanabilir.

Şimdi ise gelelim en önemli kısma: Sunucuya nasıl bağlanacağız. Öncelikle bir kullanıcı oluşturmamız gerekiyor. Root kullanıcısı vsftpd’de varsayılan olarak kapalıdır; kesinlikle açmanızı önermiyorum. Root kullanıcısını FTP’ye açmak büyük bir güvenlik zafiyeti doğurur. Ayrıca yanlışlıkla rm -rf gibi bir komutla tüm sunucunuzu silme ihtimaliniz de vardır.

Bilinçli olarak ftpuser kullanıcısını adeta bir kafese kapatacağız diyebiliriz. Kendi bahçesinde oynayacak, üst dizinlere karışamayacak. Böylece herhangi bir olumsuz durumda sunucunuz zarar görmez ve verileriniz güvende kalır. Benim görüşüm bu şekilde; en güvenli yöntemlerden biri.

Kod:
sudo adduser ftpuser

ftpuser yerine isterseniz kendi belirleyeceğiniz bir kullanıcı adını kullanabilirsiniz. Ben düz olarak ftpuser yazmayı tercih ettim. Bu komut, yeni bir kullanıcı oluşturmanızı sağlar; şifreyi girmeniz gereken kısımda istediğiniz şifreyi belirleyip, diğer seçenekleri Enter ile geçebilirsiniz.

Kod:
sudo mkdir -p /home/ftpuser/ftp

mkdir komutu ile ftpuser kullanıcısı için bir klasör oluşturacağız. Sadece bu klasöre erişim vereceğiz; FTP şifreniz açığa çıksa bile yalnızca bu klasör etkilenir, sistemin geri kalanına erişim sağlanamaz.

Kod:
sudo chown -R ftpuser:ftpuser /home/ftpuser

chown komutu ile erişim iznini kullanıcıya veriyoruz.

Kod:
sudo usermod -d /home/ftpuser/ftp ftpuser

Bu komut ile birlikte oluşturduğumuz FTP klasörüne tıkayacağız; ftpuser kullanıcısını. Kafese koyulan bir maymun gibi düşünebilirsiniz. Başka herhangi bir klasöre erişimi olmayacak. Biz de sunucuyu bu klasörün içine kuracağız.

Kod:
sudo systemctl restart vsftpd

Servisi yeniden başlatıyoruz. Şimdi FileZilla ile giriş yapmaya geçelim:



Sunucu kısmına IP’mizi yazıyoruz. Kullanıcı adı olarak oluşturduğumuz ftpuser kullanıcısını yazıyoruz. Şifre olarak ise ne belirlediyseniz onu giriyorsunuz. Port, yani bağlantı noktası kısmına ise 21 olarak girmeniz gerekiyor. TCP erişimini 21 portu üzerinden açmıştık. Ek bilgi: 22 portu genelde SFTP erişimi için kullanılır.



Başarıyla bağlandık. Şimdi bilgisayarımızdaki PaperMC dosyasının ismini server.jar yapıp klasörümüze atıyoruz. İsmini bilerek kısaltıyorum; start.sh dosyası oluştururken daha kolay oluyor.



Bu arada soranlar için söyleyeyim: Sansürlediğim yerlerde kişisel bilgilerim ve sunucu IP’si gözüküyor. İşsiz birine denk gelir de DDoS atar diye şimdi uğraşmayalım . Bir tane server adında alt klasör oluşturup dosyayı onun içine attım.

Kod:
sudo apt install openjdk-21-jdk -y

Java 21 kurarak başlayalım öncelikle. Java olmadan sunucu dosyasını açamayız. Java’yı kurduktan sonra verdiğim link üzerinden bir adet start.sh dosyası oluşturacağız.



Bu start.sh dosyası, önceki rehberimdeki start.bat dosyasının Linux hâlidir. Bu sefer Aikar’s flags seçmenizi tavsiye ederim. Sunucu performansını artırıyor; daha doğrusu Minecraft sunucusunu daha stabil hâle getiriyor. Ben .sh dosyasını indirip FTP ile attım, size de öyle öneririm.

Kod:
cd /home/ftpuser/ftp/server/

Kodu ile ftpuser’in home klasörüne, yani sunucu dosyalarını attığımız yere erişiyoruz. Şimdi tek yapmamız gereken, bir komut ile start.sh komudunu başlatmak ve kuruluma devam etmek. Gece 4’te bu rehberi yazıyorum; kendim Java’yı kurmayı unutmuşum. 3-4 defa bu kısımda “Neden sh dosyasını açamıyorum?” diye sorguladım. Siz siz olun, rehberleri sabah yazın. Neyse, şimdi konumuza devam edelim.

Kod:
java -jar server/server.jar



Bir defalık, önceki rehberde yaptığım gibi jar dosyasını Java ile açıyoruz. EULA hatası vermesi gerekiyor; bu normal bir durumdur. Vermezse bir sıkıntı vardır.

Kod:
nano eula.txt

nano komutuyla "eula.txt" dosyasını açıp true yapıyoruz.



Sonrasında sh start.sh komutuyla sunucumuzu açıyoruz. Gördüğünüz üzere açıldı, ancak işimiz hâlâ bitmedi. stop ile sunucumuzu kapatıyoruz. Şimdi nano komutuyla server.properties dosyasını açacağız. nano komutunu tekrar yazmayacağım; aşağı yukarı kullanımını anlamışsınızdır. Burada ben şimdilik sadece server-ip kısmına IP yazacağım. Diğer ayarların açıklamasını aşağıya bırakıyorum. İsteyen istediği şekilde yapabilir.


difficulty: Oyunun zorluk seviyesidir. Easy, normal, hard şeklinde ayarlanır.
gamemode: Sunucuya ilk defa giren oyuncuların hangi gamemode ile gireceğini belirler.
hardcore: Dünyanın hardcore olup olmadığını belirler. Hardcore ise öldüğünüz zaman dünyaya devam edemezsiniz. Ayrıca mobların hasarları ciddi şekilde artırılmıştır. İskeletlerin isabet oranı adeta
Legolas ile yarışır diyebilirim.
max-player: Dünyaya girebilecek insan sayısını belirler. Genelde 20’de kalması yeterlidir. Hamachi kullanıyorsanız zaten 5 sınırına takılacaksınız. Bu daha çok port açıp public sunucu kurmak için gereken bir ayardır.
motd: Server açıklaması kısmıdır. Buraya istediğinizi yazabilirsiniz. Önemli olan Türkçe karakter kullanmamanız.
online-mode: Korsan oynayan kişileri ilgilendiren bir bölümdür. Eğer korsan bir launcher kullanıyorsanız sunucuya girebilmeniz için bunu false yapmanız gerekmektedir.
server-ip: Server’ın IP’sinin yazılacağı yerdir. Hamachi IP’sini tam olarak buraya yazacağız. Eğer port açarsanız statik IP’nizi buraya yazacaksınız.
server-port: Varsayılan olarak 25565’tir. Port açarken zaten bu portu açacağınız için dokunmanıza gerek yok. Hamachi kullananların hiç dokunmasına gerek yok.
white-list: Orijinal Minecraft kullanıyorsanız kimin sunucuya girebileceğini seçmenizi sağlar. Whitelist açık olduğu zaman listedeki oyuncular hariç kimse sunucuya giremez. Korsan oynuyorsanız bu ayara dokunmayın, korsanla düzgün çalışmıyor. UUID yani oyuncu kimliği korsan oyuncularda düzgün çalışmıyor. Bu sistem UUID tabanlı çalışıyor. Korsan için çözüm, AuthMe tarzı giriş yaparken /login komutunu kullanmanızı sağlayan bir plugin indirmektir. Gerçi arkadaşlarınız arasında oynuyorsanız buna ihtiyacınız yok. Zaten Hamachi kullanıyorsanız ağ dışındaki kişiler giriş yapamaz.


Ayarları yaptıktan sonra sunucumuzu tekrar açıyoruz ve “Done” yazısını görüyoruz:



Önemli Not: Sunucuyu her zaman stop komutu ile kapatın. Bu pencereyi kapatırsanız sunucu kapanır ve task kill şeklinde bu işlemi yaptığı için dünyayı kayıt etmeyebilir. Sunucunun son autosave aldığı zamana geri atar. Sunucuyu açarken ise her zaman sh start.sh komutunu kullanın. Rehberin devamında, pencereyi kapatmanıza rağmen sunucunun nasıl açık bırakılacağını göstereceğim.

Sunucuyu nasıl 7/24 açık bırakacağız?​


Şu an sunucu PuTTY penceresi üzerinden çalışıyor. Biz bunu arka planda çalıştıracağız. Bunu yapmak için elinizde iki yaygın yöntem var: screen ve tmux. Ben alıştığım ve daha basit olduğunu düşündüğüm screen üzerinden göstereceğim. İkisi de aynı mantıkla çalışıyor. Hangisini kullanacağınız sizin tercihinize kalmış.

Kod:
sudo apt install screen -y

komutu ile sunucumuza screen servisini kuruyoruz. Sunucuyu her zamanki gibi başlatmak için önce cd /home/ftpuser/ftp/server/ komutu ile sunucu dosyalarının bulunduğu dizine geçiyoruz. Doğru dizinde olduğunuzu ls komutu ile anlayabilirsiniz; terminalde bulunduğunuz dizindeki dosyaları gösterecektir. Kısacası, aşağı yukarı buna benzer bir çıktı görmeniz gerekiyor:



Kod:
screen -S minecraft

Bu kodu girdiğiniz anda terminaliniz temizlenecek ve yeni bir sanal terminale geçiş yapacaksınız. Bu terminalin içinde sunucumuzu çalıştıracağız. sh start.sh kodu ile birlikte sunucumuzu açıyoruz. Sunucu açıldıktan sonra CTRL + A’ya basıp ardından D tuşuna basıyoruz. Bu işlem sizi screen içinden detach eder ve sunucu arkada çalışmaya devam eder.



Bu yazıyı gördükten sonra PuTTY’yi rahatlıkla kapatabilirsiniz. Sunucunuz artık sürekli olarak arka planda çalışacaktır. Anlık performans takibi için htop ile kontrol edebilirsiniz. Terminale htop yazmanız yeterlidir.



Kod:
screen -ls

Komutu ile birlikte açık olan screen session’larınızı görebilirsiniz. Geri bağlanmak için ise screen -r minecraft yazmanız yeterlidir. Sizi, daha önce verdiğiniz isme sahip session’a yeniden bağlayacaktır. Çıkmak için yine aynı şekilde CTRL + A sonrasında D tuşuna basmanız yeterlidir.

Bir rehberimizin daha sonuna geldik. @xapder üyemizin isteği üzerine Ubuntu, yani Linux ile bir VDS üzerine nasıl kurulum yaparsınız, onu gösterdim. Yapma planım zaten vardı; sadece süreci hızlandırdı. Devamında isterseniz genel olarak bilinen eklentiler ve bunların sunuculara nasıl eklendiği hakkında bir rehber yapabilirim. Ya da modlu sunucu paketlerinin nasıl kurulduğu ve Forge/Fabric/NeoForge hakkında bilgilendirici bir rehber hazırlayabilirim. Güçlü yanları nelerdir, hangisi tercih edilmeli, neden tercih edilmeli şeklinde ele alabilirim. İsteklerinizi bu rehber altında belirtirseniz, istekleriniz doğrultusunda ilerleyebiliriz. Mutlu yıllar herkese, iyi sosyaller dilerim!

 
Son düzenleme:
Bunu neden 1 ay önce yazmadım be adam? 6 saat boyunca ecel teri döktüm yok masaüstü oluşturacağım da yok uzak masaüstü bağlantısı kuracağım da... Eline sağlık güzel rehber olmuş.
 
Hocam sizce Windows olarak mı açmak mantıklı Linux olarak mı?
 
CGNAT'ı nasıl çözüyorsunuz? Önceki sefer kurduğumda CGNAT yüzünden arkadaşlarım girmemişti.
 
Hocam sizce Windows olarak mı açmak mantıklı Linux olarak mı?

Windows Server ya da Ubuntu 22.04 arasında devasa bir performans farkı yok; ancak Linux tercih edilirse daha iyi olur.

Kesinlikle linux çünkü minecraft sunucu yazılımları (örn. paper) linux'a göre daha optimize yapılar tercih ediyor.
Paper her yerde daha optimize. Bukkit zaten geliştirilmiyor artık; Spigot ise daha temel bir yapı olarak değerlendirilebilir. Paper, Spigot tabanlı geliştirilmiş bir sürüm ve topluluğu oldukça aktif. NeoForge ile benzer.

"Paper, Spigot üzerinde neredeyse 1600 ek yama uygular ve 130.000’den fazla satır kod içerir."

"Paper applies nearly 1600 additional patches with more than 130,000 lines of code over Spigot."

Bunu neden 1 ay önce yazmadım be adam? 6 saat boyunca ecel teri döktüm yok masaüstü oluşturacağım da yok uzak masaüstü bağlantısı kuracağım da... Eline sağlık güzel rehber olmuş.

Masaüstü oluşturmak zaman ve alan kaybı. FTP erişimi gayet yeterli.
 
Son düzenleme:
Masaüstü oluşturmak zaman ve alan kaybı. FTP erişimi gayet yeterli.
Ben özelleştirmesi kolay olsun diye tercih ediyorum.
Yapmak istediklerimi terminalden yapmaya kalkan bir dünya kod yazmam gerekecek. Yeterli, yeterli olmuyor bana maalesef.
 
İşte FTP ile özelleştirmesi çok kolay. Kendi bilgisayarınızda yapıp sadece dosyayı değiştiriyorsunuz.

Hee pardon. Rehberi tam okumaya üşendim kusura bakmayın. FTP'yi kendi bilgisayarımdan data pack atarken kullanmıştım ama komple FTP ile yönetmek aklıma gelmedi ne yalan söyleyeyim.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…