Datafex LogoDatafex
Tüm rehberler

Metin2 sunucusu nasıl kurulur? Süreç mimarisi ve kaynak hesabı

Yazan: Yayın: Güncelleme: 3 dk okuma

Metin2 private server kurmak tek bir uygulamayı başlatmak değildir. Birlikte çalışan bir süreç kümesi kurarsınız ve bu kümenin yapısını anlamadan ne doğru donanımı seçebilir ne de çökme sebeplerini bulabilirsiniz.

Süreç mimarisi

Dört parça var ve başlatma sırası zorunludur:

SüreçİşiTipik port
MariaDB / MySQLaccount, player, common veritabanları3306 (yerel)
dbVeritabanı önbelleği — oyun çekirdekleri buna bağlanır15000
authGiriş doğrulaması11002
game çekirdekleriKanal başına birden fazla süreç13000+

db ayakta olmadan game çekirdekleri bağlanamaz. Sıra bozulduğunda konsolda anlamlı bir hata görmezsiniz; süreç sessizce kapanır.

32-bit tuzağı

Metin2 ikililerinin büyük bölümü hâlâ 32-bit derlenmiştir ve çoğu modern dağıtım 32-bit kütüphaneleri varsayılan olarak kurmaz. Bu adım atlandığında süreçler hata mesajı bile vermeden başlamaz ve sorun neredeyse her zaman yapılandırma hatası sanılır.

Kontrol etmenin en hızlı yolu:

file ./game
ldd ./game

ELF 32-bit görüyorsanız 32-bit uyumluluk paketleri gerekiyor. ldd çıktısında not found yazan her satır eksik bir kütüphanedir.

Kaynak hesabı

Metin2'de belirleyici olan oyuncu sayısından çok kanal ve çekirdek sayısıdır:

  • Her game çekirdeği: 400-700 MB
  • db süreci: 500 MB - 1,5 GB
  • auth: 200-400 MB
  • MySQL: veritabanı boyutuna göre 2-6 GB

Tipik bir 2 kanal × 4 çekirdek kurulum, MySQL dahil 8 GB'ı doldurur. 4 kanala çıkarken 16 GB pakete geçmek gerekir. Kanal sayısını büyütürken RAM ve vCPU'yu tek tek seçip aylık tutarı sunucu yapılandırıcıda görebilirsiniz.

CPU tarafında her çekirdek kendi iş parçacığında çalışır, yani vCPU sayısı gerçek bir kaldıraçtır. Ama tek bir çekirdeğin içindeki oyun döngüsü tek iş parçacıklıdır; yoğun kanalda saat hızı da önemlidir. Hesabın genel mantığını ayrıca yazdık: kaç vCPU ve kaç GB RAM gerekir?

Kurulum sırası

  1. Dosyalarınızın hangi sistem için derlendiğini önce belirleyin. Metin2 sunucu dosyaları geçmişte FreeBSD üzerine derlenirdi; FreeBSD bir Linux dağıtımı değildir ve o ikililer Ubuntu ya da Debian üzerinde çalışmaz. Bugün dolaşan dosya setlerinin çoğu Linux derlemesidir ama bunu varsaymayın: file ./game çıktısında GNU/Linux görüyorsanız aşağıdaki adımlar geçerlidir, FreeBSD görüyorsanız işletim sistemi seçiminiz de FreeBSD olmak zorundadır. Bu rehberin geri kalanı Linux derlemesini varsayar; dağıtım olarak Ubuntu 22.04 LTS veya Debian 12 seçin — hazır kurulu bir şablon isterseniz Ubuntu VDS sayfası bu seçimi anlatıyor.
  2. 32-bit uyumluluk kütüphanelerini kurun.
  3. MariaDB'yi kurup üç veritabanını içe aktarın.
  4. CONFIG dosyalarındaki IP, port ve kanal numaralarını sunucunuzun gerçek değerleriyle eşitleyin.
  5. Sırayla başlatın: MySQL → db → auth → game çekirdekleri.
  6. Yalnızca dışarıya açılması gerekenleri açın. 15000 (db) portunu dışarıya AÇMAYIN — o port veritabanı önbelleğine doğrudan erişimdir.

MySQL'i ne zaman ayırmalı?

Ayırmadan önce yapılacak iş var: yavaş sorgu logunu açıp indeks eksiklerini kapatmak, donanım almadan düzeltilebilen tek darboğazdır (MySQL performans ayarları). Onu da yaptıysanız pratik eşik 700-800 eşzamanlı oyuncu veya 4 kanal. Bu noktadan sonra MySQL ile kanal çekirdekleri aynı belleği ve aynı diski paylaştığı için tepe saatlerde ikisi birlikte yavaşlar. Aynı lokasyonda ikinci bir sanal sunucu alıp özel ağ üzerinden bağlamak, tek makinede kaynak büyütmekten daha iyi sonuç verir.

Saldırı tarafı

Metin2 private server'ları yoğun bağlantı taşması ve UDP saldırılarına maruz kalır — rekabet sert ve saldırı ucuz. Bunu uygulama seviyesinde çözmek mümkün değil; ağ seviyesinde filtreleme gerekiyor. Konuyu ayrıca yazdık: DDoS koruması nedir?

Sonraki adım

Kanal sayısına göre hangi paketin yeterli olduğunu ve Metin2'ye özgü soruları tek sayfada topladık: Metin2 sunucu paketleri.

Bu rehberdeki bilgiyle ilerlemek isterseniz:

Metin2 için önerilen paketleri görün

İlgili rehberler