Bağlantı noktası denetleyicisi açık mı diyor? Minecraft oyuncuları neden hâlâ katılamıyor
Başarılı bir TCP bağlantısı yalnızca bir soketin bir yerden kabul edildiğini kanıtlar. Giriş, dünyaya kabul ve içeriden dışarıya giden yol ayrı testlerdir.
Birisi bir bağlantı noktası denetimi çalıştırır, açık sözcüğünü görür ve sunucuyu çözülmüş sayar. Bu sonucun gerçek anlamı dardır: denetleyicinin konumundan, o anda, o adrese ve bağlantı noktasına bir TCP bağlantısı kabul edilmiştir. Minecraft protokolünün el sıkışması, hesap kimlik doğrulaması veya sunucunun oyuncuyu bir dünyaya alıp almadığı hakkında hiçbir şey söylemez.
Bunlar dört farklı katmandır ve herhangi birindeki başarısızlık oyuncudan aynı cümleyi çıkarır: çalışmadı.
Bir sonda yalnızca görebildiğini test eder
Bir TCP bağlantısı, iki taraf da üç yönlü el sıkışmayı bitirdiğinde tamamlanır ve bu, oyunun bildiği her şeyin altındadır. Sonda, bir dinleyicinin var olduğunu ve kendi ağ konumundan yanıt verdiğini bildirir. Dinleyicinin oyun olduğunu söyleyemez, çünkü herhangi bir süreç bir bağlantı noktasını tutabilir ve bağlantı kabul edebilir.
Konum, sonuç kadar önemlidir. Genel internetteki bir denetleyici bir ağdan bir yolu test eder. İşletmecinin aynı ağın içinden çalıştırdığı bir denetleyici tamamen başka bir yolu test eder ve oradaki olumlu sonuç uzaktaki bir oyuncunun ne yaşadığı hakkında neredeyse hiçbir şey söylemez. İki farklı sağlayıcıdaki iki farklı denetleyici, sunucunuzla hiçbir ilgisi olmayan nedenlerle çelişebilir bile.
Zaman da önemlidir. Bir sonda sonucu çalıştığı anı tanımlar ve dinamik adresli veya yönlendirme kuralı değişmiş bir ev bağlantısı gerçek yanıtı birkaç dakika sonraya kaydırabilir. Genel adresi, bağlantı noktasını, adres ailesini ve zamanı yargıyla birlikte not edin, aksi halde gözlem yeniden üretilemez. Denetimi aynı bağlantıdaki bir telefondan değil, gerçekten başka bir ağdan yineleyin.
Bir soket ile bir oyuncu arasındaki dört katman
Katılan bir istemcinin gerçekte gerçekleştirdiği sırayı hayal edin. Önce adresi çözer, sonra yayımlanan bağlantı noktasına bir TCP bağlantısı açar, sonra görüşmek ve kimlik doğrulamak için oyunun kendi protokolünü konuşur ve son olarak sunucu o kimliğin dünyaya alınıp alınmayacağına karar verir. Her katmanın kendi hata imzası vardır ve bir bağlantı noktası denetleyicisine yalnızca ilki görünür.
Java Edition için varsayılan bağlantı noktası 25565’tir, ancak işletmeci farklı bir dış bağlantı noktası yayımlayıp onu içeriye yönlendirebilir, bu yüzden bir oyuncunun yazdığı sayı sunucunun gördüğü sayı olmak zorunda değildir. Yanlış dış bağlantı noktasına yönelen bir denetleyici, sunucu tamamen sağlıklıyken kapalı bildirir ve bu, bu alanın tamamındaki en yaygın yanlış alarmdır.
Adlar, bağlantı noktasının üstüne bir adım daha ekler. Bir oyuncu bir ana bilgisayar adı yazarsa, çözümleme yayımlanan adresi döndürmelidir ve ağ içindeki bir makinede bunun yerine özel bir adres döndürebilir. Bu bir güvenlik duvarı arızası değildir ve hiçbir bağlantı noktası yönlendirmesi bunu değiştirmez.
İçerideki oyuncu neden başka bir yol izliyor
Aynı LAN’daki veya o LAN’a ulaşan bir VPN’deki oyuncu, genel adrese içeriden ulaşmaya çalışır. İstek yönlendiricinin dış adresine gider ve yönlendirici onu tekrar içeriye çevirmelidir; buna genellikle hairpinning veya NAT yansıması denir. Bunun çalışması için hem ileri çevirinin hem de dönüş yolunun uyuşması gerekir ve birçok ev yönlendiricisi bunu hiç uygulamaz.
Bu yüzden dışarıdan gelen konuk katılırken sunucunun yanında oturan kişi katılamaz. Dış yol gerçekten sağlamdır; başarısız olan içerideki dolambaçtır ve oyuncunun ekranından sunucu sorunu gibi görünecek şekilde başarısız olur. Hangi ikisinin olduğuna sunucunun kendi günlüğü karar verir, çünkü hiç çevrilmemiş bir bağlantı oraya asla ulaşmaz.
İki dürüst düzeltme ve bir kötü alışkanlık var. İyi seçenekler, içerideki oyuncuların özel adresi veya split-DNS adını kullanmasına izin vermek — ki bu içeride özel adrese çözülür — ya da özellik varsa ve doğru davranıyorsa yönlendiricide yansımayı etkinleştirmektir. Kötü alışkanlık daha fazla bağlantı noktası açmak veya ana makinenin güvenlik duvarını kapatmaktır; bu, yönlendiricinin hiç yapmadığı bir çeviriyi etkileyemez.
Netgate’in NAT yansıması belgeleri dış ile iç arasındaki farkı ve split-DNS alternatifini daha ayrıntılı açıklar. Bunu mekanizmanın açıklaması olarak okuyun, belirli bir VPN sağlayıcısının veya yönlendiricinin her loopback varyantını desteklediğine dair bir vaat olarak değil.
Her bakış açısından kanıt toplayın
Her test için kimin çalıştırdığını, nereden, saat kaçta, hangi adrese ve bağlantı noktasına karşı ve sunucunun neyi günlüğe kaydettiğini yazın. Sunucu konsolunda açık bir nedeni olan oyun reddi, hiç ulaşmayan bir bağlantıdan farklı bir bulgudur ve ikisi zıt yönlere götürür.
İzin verilen uzak oyuncular katılabiliyor ve bir yerel oyuncu katılamıyorsa, kalan soru yerel yoldur ve kendi incelemesini hak eder: istemci hangi adresi kullandı, yönlendirici çeviriyle ne yaptı ve sunucu herhangi bir bağlantı girişimini kaydetti mi. Bu üç olguyu, bağlantı noktalarını rastgele yeniden açmak yerine ağın sahibine verin.