Ekran Kartlı Sunucu Satışları Başladı. İncele
Minecraft Hata Çözümleri

Minecraft “Failed to Bind to Port” Hatası Çözümü

Port zaten kullanımda hatası: çakışan süreci bulma (netstat, lsof), farklı port atama ve server-port ayarını doğru yapılandırma.

  • 6 dk okuma
  • Güncelleme:
  • Yayın:
  • Batihost Teknik Ekibi

Kısaca Özet

  • “FAILED TO BIND TO PORT!” hatası, sunucunun istediği portu açamadığı anlamına gelir. Neredeyse her zaman o port başka bir süreç tarafından kullanılıyordur.
  • En sık neden: önceki Minecraft sunucusu tam kapanmadı ve arka planda çalışmaya devam ediyor. İkinci neden: aynı makinede iki sunucu aynı portu istiyor.
  • Çözüm sırası: portu tutan süreci bulun (netstat / ss) → süreci sonlandırın → gerekirse server-port değerini değiştirin.
  • Linux’ta 1024 altındaki portlar için root yetkisi gerekir; 25565 gibi yüksek portlar bu kısıtlamaya girmez.

Minecraft “FAILED TO BIND TO PORT!” hatası, sunucunun dinlemek istediği portu işletim sisteminden alamadığını gösterir. Vakaların büyük bölümünde neden tek ve basittir: o port zaten başka bir süreç tarafından kullanılıyordur. Genellikle de o süreç, düzgün kapanmamış bir önceki Minecraft sunucusudur.

Bu sayfada hatanın tam metnini, portu tutan süreci Windows ve Linux üzerinde bulma yöntemlerini, süreci sonlandırma adımlarını ve aynı makinede birden fazla sunucu çalıştırırken port planlamasını bulacaksınız.

Hatanın Birebir Metni#

[16:03:22] [Server thread/WARN]: **** FAILED TO BIND TO PORT!
[16:03:22] [Server thread/WARN]: The exception was: java.net.BindException: Address already in use: bind
[16:03:22] [Server thread/WARN]: Perhaps a server is already running on that port?
[16:03:22] [Server thread/ERROR]: Encountered an unexpected exception
java.lang.IllegalStateException: Failed to initialize server

Linux üzerinde mesajın alt satırı biraz farklıdır:

The exception was: java.net.BindException: Address already in use
The exception was: java.net.BindException: Cannot assign requested address
Bilgiİki farklı mesajı karıştırmayın. Address already in use port doludur demektir. Cannot assign requested address ise server-ip satırına makinede bulunmayan bir IP yazıldığını gösterir; o satırı boşaltmak sorunu çözer.

Neden Olur? Belirti, Neden ve Çözüm Tablosu#

BelirtiOlası nedenÇözüm
Address already in usePort başka bir süreçteSüreci bulun ve sonlandırın
Cannot assign requested addressserver-ip makinede olmayan bir adresserver-ip= satırını boşaltın
Permission denied1024 altı port, yetki yok25565 gibi yüksek bir port kullanın
Sunucu kapattıktan hemen sonra hataJava süreci hâlâ ayakta ya da TIME_WAITSüreci sonlandırın, bir dakika bekleyin
İki sunucu aynı klasörden başlatılıyorAynı port iki kez isteniyorİkinci sunucuya 25566 verin
Query veya RCON portu çakışıyorquery.port / rcon.port doluÜç portu da farklılaştırın
Panelde bind hatasıAllocation portu ile server-port uyuşmuyorPanelin verdiği portu kullanın
Bind hatasında belirtiye göre teşhis

Adım Adım Çözüm#

  1. Portu tutan süreci bulun#

    Windows tarafında komut isteminde:

    netstat -ano | findstr :25565
    # TCP    0.0.0.0:25565    0.0.0.0:0    LISTENING    8124
    
    Get-Process -Id 8124 | Select-Object Id,ProcessName,Path

    Linux tarafında:

    sudo ss -tulpn | grep 25565
    # tcp LISTEN 0 128 *:25565 *:*  users:(("java",pid=3241,fd=42))
    
    sudo lsof -i :25565
    ps -fp 3241

    Çıktıdaki süreç kimliği (PID) ve program adı, kimin portu tuttuğunu net biçimde gösterir.

  2. Süreci sonlandırın#

    Süreç eski bir Minecraft sunucusuysa önce düzgün kapatmayı deneyin. Konsola erişiminiz varsa stop komutu her zaman ilk tercihtir; dünya verisi güvenli biçimde kaydedilir.

    Stop-Process -Id 8124
    taskkill /PID 8124 /F
    kill 3241
    # yanıt vermezse
    kill -9 3241
    Uyarıkill -9 ve taskkill /F süreci anında öldürür; kaydedilmemiş chunk verileri kaybolur ve bölge dosyaları bozulabilir. Bu yöntemi yalnızca sunucu stop komutuna cevap vermiyorsa kullanın ve öncesinde yedek alın.
  3. Sunucuyu doğru yöntemle kapatma alışkanlığı edinin#

    Konsol penceresinin çarpısına basmak Java sürecini her zaman sonlandırmaz. Doğru yol konsola stop yazmaktır. Sunucu bir servis olarak çalışıyorsa:

    sudo systemctl stop minecraft
    sudo systemctl status minecraft --no-pager
    Stop-Service -Name "MinecraftServer"
    Get-Service -Name "MinecraftServer"

    Servis kurulumu için systemd servisi oluşturma ve Windows servisi olarak çalıştırma sayfalarına bakın.

  4. Gerekirse farklı bir port atayın#

    Portu tutan süreç kapatılamıyorsa ya da başka bir sunucu kalıcı olarak orayı kullanıyorsa sunucunuza yeni bir port verin:

    server-port=25566
    query.port=25566
    enable-query=false
    enable-rcon=false

    Yeni portu güvenlik duvarında da açmayı unutmayın:

    sudo ufw allow 25566/tcp
    sudo ufw reload
    New-NetFirewallRule -DisplayName "Minecraft 25566 TCP" -Direction Inbound `
      -Protocol TCP -LocalPort 25566 -Action Allow
  5. Sunucunun gerçekten dinlemeye başladığını doğrulayın#

    [16:07:41] [Server thread/INFO]: Starting Minecraft server on *:25566
    [16:07:43] [Server thread/INFO]: Done (11.204s)! For help, type "help"

    Bu iki satır arka arkaya basıldıysa bind işlemi başarılıdır. Oyuncular artık adres:25566 biçiminde bağlanacaktır.

Standart Olmayan Port Kullanırken Dikkat Edilecekler#

25565 dışında bir port kullanmaya karar verdiyseniz oyuncuların adresi sunucu.com:25566 biçiminde yazması gerekir. Bunu gizlemenin yolu SRV kaydıdır:

Tip:      SRV
İsim:     _minecraft._tcp.sunucu.com
Öncelik:  0
Ağırlık:  5
Port:     25566
Hedef:    mc.sunucu.com

SRV kaydı sayesinde oyuncular yalnızca sunucu.com yazarak bağlanır. DNS yapılandırma adımları domain bağlama ve SRV kaydı sayfasında anlatıldı.

Aynı Makinede Birden Fazla Sunucu#

Bir sunucu ağı kuruyorsanız port planlaması baştan yapılmalıdır. Örnek bir düzen:

SunucuPortDışa açık mı?Not
Velocity proxy25565/TCPEvetOyuncular yalnızca buraya bağlanır
Lobby25566/TCPHayırGüvenlik duvarında kapalı
Survival25567/TCPHayırGüvenlik duvarında kapalı
Skyblock25568/TCPHayırGüvenlik duvarında kapalı
Bedrock (Geyser)19132/UDPEvetÇapraz platform için
Sunucu ağı için örnek port planı
DikkatAlt sunucuların portlarını dışarıya açmayın. Proxy arkasında online-mode=false ile çalışan bir alt sunucunun portu açıksa herkes istediği isimle o sunucuya girebilir. Alt sunucuları yalnızca 127.0.0.1 üzerinden erişilebilir kılmak en güvenli yaklaşımdır. Kurulum ayrıntıları proxy kurulum sayfasındadır.

Alt sunucuları yalnızca yerel arayüze bağlamak için:

server-ip=127.0.0.1
server-port=25566

Bu, tek sunucu senaryosunda yapılmaması gereken bir ayardır; ancak proxy arkasındaki alt sunucular için doğrudur ve güvenliği artırır.

Port Çakışmasının Diğer Kaynakları#

Minecraft dışındaki yazılımlar da 25565 portunu kullanabilir. Nadir ama görülen durumlar:

  • Panel daemon’ı: Pterodactyl Wings ya da Crafty Controller kendi yönettiği sunucuları arka planda başlatmış olabilir.
  • Docker konteyneri: Durdurulduğu sanılan bir konteyner hâlâ port eşlemesini tutuyor olabilir. docker ps -a ile kontrol edin.
  • Windows Görev Zamanlayıcı: Açılışta çalışan bir start.bat görevi sunucuyu siz farkında olmadan başlatmış olabilir.
  • Hyper-V dinamik port aralığı: Windows Server üzerinde bazı sanallaştırma bileşenleri geniş port aralıklarını rezerve eder.

Windows’ta rezerve edilmiş port aralıklarını görmek için:

netsh interface ipv4 show excludedportrange protocol=tcp

25565 bu listedeki bir aralığın içine düşüyorsa port işletim sistemi tarafından ayrılmıştır ve kullanılamaz; farklı bir port seçmeniz gerekir.

Gerekirse İndirilecekler#

İndirmeniz gerekenler
  • Paper 26.2 sunucu jar Her platform.jarÜcretsiz
    İndir
  • NSSM (Windows servis yöneticisi)Windows Windows.zipÜcretsiz
    İndir
  • Velocity ProxyKararlı: 4.0.0 Her platform.jar
    İndir

Bağlantılar resmî kaynaklara gider. Üçüncü taraf sitelerden jar indirmeyin.

Tekrarını Önlemek#

Bind hatası genellikle bir alışkanlık sorunudur. Şu üç düzenleme tekrar yaşanmasını büyük ölçüde engeller:

Servis kullanın
Sunucuyu systemd veya Windows servisi olarak çalıştırın; çift başlatma engellenir, kapatma güvenilir olur.
Başlatma betiğine kontrol ekleyin
Port doluysa betiği durdurun. Linux için: ss -tln | grep -q :25565 && { echo "Port dolu"; exit 1; }
Her sunucuya sabit port verin
Ağınızdaki tüm sunucuların port listesini bir dosyada tutun; yeni sunucu eklerken çakışma olmaz.

Sunucunuzu 7/24 kesintisiz çalıştırmak istiyorsanız ev makinesi yerine yönetimli bir altyapı çok daha az sorun çıkarır. Türkiye lokasyonlu Minecraft sunucu paketlerinde port yönetimi panel üzerinden yapılır ve çakışma riski ortadan kalkar.

İlgili Hata Sayfaları#

Özetle#

FAILED TO BIND TO PORT hatası, istenen portun alınamadığını söyler ve teşhisi hızlıdır. Önce netstat veya ss ile portu tutan süreci bulun; genelde düzgün kapanmamış bir önceki Minecraft sunucusudur. Süreci sonlandırın, mümkünse stop komutuyla düzgün kapatın. Port kalıcı olarak başka bir yazılımdaysa server-port değerini değiştirip güvenlik duvarında yeni portu açın. Birden fazla sunucu çalıştırıyorsanız baştan bir port planı yapın ve alt sunucu portlarını dışarıya kapatın.

Sıkça Sorulan Sorular#

FAILED TO BIND TO PORT hatası ne demek?

Minecraft sunucusu server-port değerinde belirtilen portu dinlemeye çalıştı ama işletim sistemi izin vermedi. Bunun en yaygın sebebi portun zaten başka bir süreç tarafından kullanılmasıdır. Hata mesajının hemen altındaki Address already in use satırı bunu açıkça söyler ve sunucu başlatma işlemi durur.

Portu hangi programın kullandığını nasıl bulurum?

Windows’ta netstat -ano | findstr :25565 komutu son sütunda süreç kimliğini verir; bu kimliği Görev Yöneticisi’nin Ayrıntılar sekmesinde arayarak programı bulursunuz. Linux’ta sudo ss -tulpn | grep 25565 ya da sudo lsof -i :25565 komutları süreç adını doğrudan gösterir.

Sunucuyu kapattım ama port hâlâ dolu görünüyor, neden?

Java süreci düzgün kapanmamış olabilir; konsol penceresini kapatmak sunucuyu her zaman sonlandırmaz. Ayrıca TCP bağlantıları kapandıktan sonra kısa bir süre TIME_WAIT durumunda kalır. Süreç listesinde java görünmüyorsa bir dakika bekleyip tekrar deneyin; görünüyorsa süreci açıkça sonlandırın.

Aynı makinede iki Minecraft sunucusu çalıştırabilir miyim?

Evet, tek koşul her sunucunun farklı bir port kullanmasıdır. İkinci sunucunun server.properties dosyasında server-port=25566 yazın ve güvenlik duvarında o portu da açın. Sunucu ağı kuruyorsanız oyuncuları tek adresten karşılamak için Velocity veya BungeeCord kullanmak daha temiz bir çözümdür.

query.port ve rcon.port da bu hataya sebep olur mu?

Evet. Sunucu yalnızca oyun portunu değil, etkinleştirilmişse sorgu ve RCON portlarını da açar. enable-query=true veya enable-rcon=true iken bu portlar doluysa aynı bind hatası alınır. Çakışmayı çözerken üç portu birden kontrol edin.

Pterodactyl panelinde bind hatası alıyorum.

Panel her sunucuya kendi allocation portunu atar. server.properties içindeki değeri elle değiştirdiyseniz panelin verdiği portla çakışabilir. Panelin atadığı portu kullanın ve allocation IP’sinin 0.0.0.0 olduğunu doğrulayın. Aynı porta iki sunucu atanmışsa birine yeni allocation verin.

Linux’ta 25565 portunu açmak için root gerekir mi?

Hayır. Linux’ta yalnızca 1024 altındaki portlar ayrıcalıklı sayılır ve root yetkisi ister. 25565 bu sınırın çok üstündedir; sunucuyu normal bir kullanıcıyla çalıştırabilirsiniz. Zaten güvenlik açısından Minecraft sunucusunu root ile çalıştırmak önerilmez.

Minecraft Hata Çözümleri — Tüm Rehberler#

  1. Minecraft Sunucu Hataları ve Çözümleri
  2. Minecraft “Internal Exception” Hatası Çözümü
  3. Minecraft “Connection Refused” Hatası ve Çözümü
  4. Minecraft “Connection Timed Out” Hatası Çözümü
  5. “Outdated Server” ve “Outdated Client” Hatası Çözümü
  6. Minecraft io.netty Hataları ve Çözüm Yolları
  7. Minecraft “Failed to Bind to Port” Hatası Çözümü
  8. Minecraft “Out of Memory” (OutOfMemoryError) Hatası Çözümü
  9. Minecraft “Can’t keep up! Is the server overloaded?” Uyarısı
  10. “Unable to access jarfile server.jar” Hatası Çözümü
  11. Minecraft EULA Hatası: “You need to agree to the EULA”
  12. Minecraft “Invalid Session” Hatası Çözümü
  13. Minecraft Java Sürüm Hatası (UnsupportedClassVersionError)
  14. Minecraft Crash Report Nasıl Okunur?

Bu rehber Batihost teknik ekibi tarafından hazırlanmış ve tarihinde güncellenmiştir. Eksik veya hatalı bulduğunuz bir bilgi varsa bize bildirin.

Başa dön