Windows platformunda, yerel makinemdeki bir bağlantı noktasının (örneğin 3306) (localhost
gibi) engellenip engellenmediğini kontrol etmem gereken yerel seçenekler nelerdir?
Windows makinesinde olduğunuz için bunlar yapılabilir,
Aşağıdaki komutu yürütün ve bir ": 3306" dinleyicisi arayın (UDP/TCP'den bahsetmediniz). Bu, bağlantı noktasında çalışan bir şey olduğunu doğrular.
netstat -a -n
Bundan sonra, bu bağlantı noktasına gelen bağlantılar bekliyorsanız ve güvenlik duvarının onları engelliyor olabileceğini düşünüyorsanız, windows güvenlik duvarı günlüğünü başlat ve günlüklerde kopuk bağlantılar olup olmadığını kontrol edin
Güvenlik duvarı durumunu kontrol etmek için bir komut daha var
(Windows 7 kullanıcıları için güncelleme - aşağıda Nick
ile belirtildiği gibi - netsh advfirewall güvenlik duvarını kullanın )
netsh güvenlik duvarı durumu göster
Bu komut Windows güvenlik duvarı yapılandırma ayrıntılarını atar
netsh güvenlik duvarı yapılandırma yapılandırması
Günlüğe kaydetmeye başladıktan sonra etkin bir bloğunuz varsa (gelen bağlantılar güvenlik duvarı tarafından düşürülüyorsa), bunu günlükte görmeniz gerekir.
3306'da dinleyen bir uygulama/hizmet çalıştırıyorsanız, güvenlik duvarı yapılandırması Etkin olduğunu göstermelidir. Bu görünmezse, muhtemelen bu uygulamaya/hizmete izin vermek için güvenlik duvarına bir istisna eklemeyi kaçırdınız.
Son olarak, 3306 numaralı bağlantı noktası tipik olarak MySQL için kullanılır. Bu yüzden, bu windows makinesinde MySQL sunucusu çalıştırdığınızı varsayıyorum. Bu nedenle, gelen bağlantıları kabul eden 3306 için bir dinleyici görmelisiniz. Bunu görmüyorsanız, önce uygulamayı başlatmak için uygulamanızla (MySQL) çalışmanız gerekir.
NETSTAT
bağlantı noktasının dinleme olduğunu söyleyecektir, ancak bağlantı noktasının dış dünyaya açık olup olmadığını söylemeyecektir. Bununla kastettiğim, NETSTAT
, 0.0.0.0'ın 3306 numaralı bağlantı noktasında DİNLEME olduğunu gösterebilir, ancak bir güvenlik duvarı yine de dış bağlantıları engelleyen bağlantı noktasını engelliyor olabilir; bu yüzden sadece NETSTAT
'ye güvenmek yeterli değildir.
Bir bağlantı noktasının engellenip engellenmediğini kontrol etmenin en iyi yolu istemci makineden bir bağlantı noktası taraması yapmaktır.
Bir bağlantı noktası taraması yapmanın birçok yolu vardır, ancak Windows'ta olduğundan bahsettiğinizden beri Microsoft komut satırı yardımcı programını PortQry
ve Grafik sürümü PortQryUI
Tüm açık bağlantı noktalarını test etmek için:
portqry.exe -n #.#.#.#
Belirli bir bağlantı noktasını test etmek için:
portqry.exe -n #.#.#.# -e #
Örneğin, bir yönlendiricinin Web arabirimini 192.168.1.1'de test etmek için:
portqry.exe -n 192.168.1.1 -e 80
Hangi döndürür:
TCP port 80 (http service): LISTENING
HTTPD çalışması olmayan yerel bir makinede test olarak döndürme:
TCP port 80 (http service): NOT LISTENING
PortScan yardımcı programını kullanarak 3 sonuçtan birini alırsınız.
Listening
, sunucunun belirtilen bağlantı noktasını dinlediğini gösterirFiltered
, büyük olasılıkla güvenlik duvarı veya yazılım sorunu olduğunu belirten Sıfırlama bayrağı ayarlı bir TCP onay paketi aldığı anlamına gelir)Not Listening
hiç yanıt almadığı anlamına gelirtelnet
genellikle işletim sistemine varsayılan olarak yüklenmiş başka bir komut satırı seçeneğidir. Bu komut satırı yardımcı programı, bir bağlantı noktasının bir ağ isteğine yanıt verip vermediğini görmenin hızlı bir yolu olabilir.
telnet
kullanmak için Komut İstemi'nden şu komutu vermeniz yeterlidir:
telnet localhost 3306
Yukarıdaki komut 3306
_ localhost
yanıt veriyor.
PowerShell 4.0'dan beri Test-NetConnection
Örneğin 3306 numaralı bağlantı noktasını test etmek isterseniz, komut
Test-NetConnection -ComputerName localhost -Port 3306
Yerel makineden porta telnet yapabiliyorsanız (harici IP adresini kullanarak), ancak başka bir makineden değil - aralarında bir yerde engelleniyorsa.
Yerel makinenizdeki bir güvenlik duvarının could ilk eylemi bile önlediğini unutmayın.