Metin2 "Socket Bind Failed" Hatası Çözümü
Metin2 PVP sunucularına start verdiğinizde kanallar (CH) açılmıyor, oyuna girişler kapalı kalıyor ve çekirdek dizinlerindeki syserr.txt dosyalarında "SocketBindBind: bind: Address already in use" veya "SYSTEM_CMD: socket_bind: Fail" uyarıları görüyorsanız, sunucunuz bir port çakışması yaşıyor demektir. Bu rehberde, bu sorunun nedenlerini ve kesin çözüm yollarını öğreneceksiniz.
1. Sorunun Temel Nedeni Nedir?
Her oyun kanalı (Auth, CH1, CH2, Game99 vb.) dışarıdan gelen oyuncu bağlantılarını kabul edebilmek için FreeBSD işletim sistemi üzerinde belirli bir port numarasını (Örn: 13000, 13001) işgal eder. Eğer oyun dosyalarınız, sistemde **zaten açık olan ve kullanılan** bir portu tekrar açmaya çalışırsa "Socket Bind Failed" (Adres zaten kullanımda) hatası verir ve o kanal kendini kapatır.
2. Yöntem: Arka Planda Kalan MySQL veya Game Süreçlerini Kapatma
Bu hatanın en sık karşılaşılan sebebi, sunucuya tam olarak kapatılmadan üst üste start verilmesidir. Arka planda çalışan eski oyun süreçleri portları kapatmadığı için yeni start komutu hata verir. Çözüm için:
- Putty terminaline bağlanın ve arka planda aktif olan tüm oyun süreçlerini listelemek için şu komutu yazın:
ps ax | grep game - Eğer listede halen çalışan oyun kanalları görüyorsanız, bunları tek bir komutla tamamen sonlandırın:
killall -9 gameveyakillall -9 db - Süreçlerin tamamen kapandığından emin olduktan sonra oyuna tekrar start vermeyi deneyin.
3. Yöntem: CONFIG Dosyalarındaki Port Çakışmalarını Düzeltme
Eğer sunucuya temiz bir reboot attıktan sonra bile ilk startta bu hatayı alıyorsanız, files dosyalarınızdaki port numaraları birbiriyle çakışıyor demektir:
- Filezilla ile sunucunuza bağlanıp
/usr/game/cores/dizinine gidin. - Sırasıyla
auth,channel1,channel2vegame99klasörlerinin içerisindeki CONFIG dosyalarını tek tek açın. - Her dosyadaki PORT değerini kontrol edin. Örneğin; Auth portu 13000 ise, Channel1 portu 13010, Channel2 portu 13020 olmalıdır.
- İki farklı klasördeki CONFIG dosyasında **aynı port numarasının** yazılmadığından emin olun. Eğer aynıysa, benzersiz bir port numarası verip dosyayı kaydedin.
4. Yöntem: Çakışan Limiti ve Portu Kullanan Uygulamayı Tespit Etme
Oyun dosyalarınız dışında sunucuya kurduğunuz harici bir script, web paneli veya koruma yazılımı (Guard) oyun portunuzu işgal ediyor olabilir. Portu hangi uygulamanın kullandığını bulmak için:
- Putty terminalinde şu komutu çalıştırarak aktif portları ve servisleri listeleyin:
sockstat -4 -l - Çıkan listede oyununuzun açılmayan port numarasını bulun ve sol tarafındaki uygulamanın adını (Process ID / Name) inceleyin. Çakışan harici servisi durdurarak sorunu çözebilirsiniz.
Bu makale PvPSunucusu için özel olarak hazırlanmıştır.