Na natywnych opcjach na platformie Windows muszę sprawdzić, czy port (na przykład 3306) na moim komputerze lokalnym (jak w localhost
) jest blokowany?
windows
networking
firewall
port
Boris Pavlović
źródło
źródło
Odpowiedzi:
Ponieważ korzystasz z komputera z systemem Windows, możesz to zrobić,
Wykonaj następujące polecenie i poszukaj detektora „: 3306” (nie wspomniałeś o UDP / TCP). Potwierdzi to, że coś działa na porcie.
netstat -a -n
Następnie, jeśli oczekujesz połączeń przychodzących na tym porcie i uważasz, że zapora może je blokować, możesz rozpocząć rejestrowanie zapory systemu Windows i sprawdzić dzienniki pod kątem przerwanych połączeń
Jest jeszcze jedno polecenie, aby sprawdzić stan zapory
(aktualizacja dla użytkowników systemu Windows 7 - jak opisano
Nick
poniżej - użyj zapory netsh advfirewall )netsh firewall show state
To polecenie zrzuci szczegóły konfiguracji zapory systemu Windows
netsh firewall show config
Jeśli masz aktywny blok (połączenia przychodzące są odrzucane przez zaporę) po rozpoczęciu rejestrowania, powinieneś zobaczyć to w dzienniku.
Jeśli korzystasz z aplikacji / usługi nasłuchującej na 3306, konfiguracja zapory ogniowej powinna pokazywać, że jest włączona. Jeśli nie jest to widoczne, prawdopodobnie przegapiłeś dodanie wyjątku do zapory, aby zezwolić na tę aplikację / usługę.
Wreszcie port 3306 jest zwykle używany dla MySQL. Zakładam, że używasz serwera MySQL na tym komputerze z systemem Windows. Powinieneś zatem zobaczyć detektor dla 3306 akceptujących połączenia przychodzące. Jeśli tego nie widzisz, musisz najpierw pracować z aplikacją (MySQL).
źródło
|find "3306"
do polecenia, np.C:\Windows\System32>netstat -an |find "3306"
NETSTAT
powie ci, czy port nasłuchuje, ale nie powie ci, czy port jest otwarty na świat zewnętrzny. Rozumiem przez to, żeNETSTAT
może pokazywać, że 0.0.0.0 SŁUCHUJE na porcie 3306, ale zapora może nadal blokować ten port, który uniemożliwia połączenia zewnętrzne; więc nie wystarczy polegaćNETSTAT
wyłącznie na sobie.Najlepszym sposobem sprawdzenia, czy port jest zablokowany, jest skanowanie portu z komputera klienta.
Istnieje wiele sposobów skanowania portów, ale ponieważ wspomniałeś, że jesteś w systemie Windows, zasugeruję narzędzie wiersza polecenia Microsoft
PortQry
i wersję graficzną PortQryUIAby przetestować wszystkie otwarte porty:
Aby przetestować określony port:
Na przykład, aby przetestować interfejs sieciowy routera pod adresem 192.168.1.1:
Które zwraca:
Gdzie jako testowanie na komputerze lokalnym bez uruchomionego HTTPD zwraca:
Za pomocą narzędzia PortScan uzyskasz jeden z 3 wyników.
Listening
oznacza, że serwer nasłuchuje na określonym porcieFiltered
oznacza, że otrzymał pakiet potwierdzenia TCP z ustawioną flagą Resetuj, co prawdopodobnie oznacza zaporę lub problem z oprogramowaniemNot Listening
oznacza, że w ogóle nie otrzymał odpowiedzitelnet
jest kolejną opcją wiersza poleceń, która zazwyczaj jest domyślnie instalowana w systemie operacyjnym. Za pomocą tego narzędzia wiersza polecenia można szybko sprawdzić, czy port odpowiada na żądanie sieciowe.Aby użyć
telnet
, wystarczy wydać następujące polecenie z wiersza polecenia:Powyższe polecenie powinno dać ci szybkie wskazanie, czy port
3306
nalocalhost
odpowiada.źródło
Od PowerShell 4.0 możesz użyć polecenia
Test-NetConnection
Jeśli chcesz przetestować Port 3306 jak w twoim przykładzie, to polecenie to
Dokumentacja TechNet Test-NetConnection
źródło
Jeśli możesz telnet do portu z komputera lokalnego (używając zewnętrznego adresu IP), ale nie z innego komputera - oznacza to, że jest on blokowany gdzieś pomiędzy.
Pamiętaj, że zapora na komputerze lokalnym może uniemożliwić nawet pierwszą akcję.
źródło