Przejdź do treści głównej

Poradniki / Jak sprawdzić stronę internetową: praktyczne poradniki

Jak sprawdzić, czy port jest otwarty

Aby sprawdzić, czy port jest otwarty z zewnątrz, trzeba przetestować go z zewnątrz: próba połączenia z innej sieci to jedyny wynik, który cokolwiek znaczy. Port, który odpowiada na Twojej własnej maszynie, wciąż może być zablokowany przez zaporę sieciową, grupę zabezpieczeń albo dostawcę hostingu, zanim dotrze do niego jakikolwiek zewnętrzny odwiedzający.

Szybki sposób: test spoza Twojej sieci

Wpisz nazwę hosta lub adres IP oraz numer portu w narzędziu do sprawdzania portów i pozwól mu otworzyć połączenie z maszyny gdzieś indziej w internecie. To, czy usługa działa, to inne pytanie. Musisz wiedzieć, czy ktoś tam na zewnątrz może się do niej dostać, a testowanie z tego samego serwera albo z tej samej sieci biurowej pomija dokładnie te warstwy, które zwykle powodują problem.

Sposób ręczny: nc, nmap i telnet

Z dowolnej innej maszyny w innej sieci robotę wykonują trzy narzędzia:

nc -zv example.com 443            # pojedynczy port, skanowanie bez I/O, tryb szczegółowy
nmap -Pn -p 22,80,443 example.com # kilka portów, zgłasza open/closed/filtered
telnet example.com 25             # stare, ale uniwersalne; Ctrl+] potem "quit" żeby wyjść

nc (netcat) jest najprostsze: -z oznacza połączenie i natychmiastowe rozłączenie bez wysyłania danych, -v wypisuje wynik. Odpowiada "succeeded" albo "refused / timed out" i nic więcej. Sięgnij po nmap, gdy różnica ma znaczenie, bo to jedyne z tych trzech narzędzi, które wiarygodnie odróżnia połączenie odrzucone od porzuconego, a -Pn mówi mu, żeby pominął sondę ping i testował port nawet wtedy, gdy host nie odpowiada na pingi. telnet jest zainstalowany niemal wszędzie, a dla protokołów tekstowych, takich jak SMTP czy HTTP, pokazuje też komunikat powitalny wysyłany przez usługę.

Aby zobaczyć, co nasłuchuje na samej maszynie, co jest innym pytaniem, użyj ss -tulpn na Linuksie albo netstat -ano na Windows. Jeśli port tam nasłuchuje, ale z zewnątrz jest zamknięty, blokada jest gdzieś pomiędzy: zapora hosta, grupa zabezpieczeń w chmurze albo dostawca.

Otwarty, zamknięty i filtrowany to trzy różne odpowiedzi

  • Otwarty. Coś dokończyło handshake TCP. Usługa nasłuchuje i przyjęła połączenie.
  • Zamknięty. Host odpowiedział, ale odmową (reset TCP). Maszyna jest osiągalna, a na tym porcie nic nie nasłuchuje. To szybka i jednoznaczna odpowiedź.
  • Filtrowany. Nic w ogóle nie wróciło. Zapora odrzuciła pakiet bez odpowiedzi, więc sonda przekracza czas oczekiwania. To wolna odpowiedź i oznacza, że na drodze stoi zapora, a nie że usługa nie działa.

Zamknięty wskazuje na konfigurację usługi. Filtrowany wskazuje na regułę zapory, grupę zabezpieczeń albo dostawcę internetu blokującego port. Wielu dostawców domyślnie blokuje wychodzący port 25, a niektórzy blokują 445 i inne często nadużywane porty, co daje wynik filtrowany, którego żadna konfiguracja po stronie serwera nie zmieni.

UDP to przypadek szczególny. UDP nie ma handshake, więc skaner często nie potrafi odróżnić portu otwartego od filtrowanego, a cisza jest prawidłową odpowiedzią zdrowej usługi UDP. Traktuj wyniki UDP jako znacznie słabszy dowód niż wyniki TCP.

Dlaczego otwarty port to nie działająca usługa

Otwarty port dowodzi, że można nawiązać połączenie TCP. Nic nie mówi o tym, co dzieje się dalej. Wszystkie poniższe to otwarte porty z zepsutymi usługami:

  • Serwer WWW przyjmujący połączenia na 443, a jednocześnie serwujący 502, bo aplikacja za nim uległa awarii.
  • Baza danych nasłuchująca na swoim porcie, ale odrzucająca każde logowanie.
  • Serwer pocztowy, który kończy handshake, a potem zrywa sesję, zanim przyjmie wiadomość.
  • Usługa, której certyfikat TLS wygasł ubiegłej nocy. Port się otwiera, a każdy klient odrzuca połączenie.
  • Port przekierowany na niewłaściwą maszynę wewnętrzną, który przyjmuje połączenia i nie odpowiada niczym użytecznym.

Sprawdzenie portu to więc pierwszy krok diagnozy, nie cała diagnoza. Gdy port już odpowiada, sprawdź protokół: zażądaj strony i odczytaj kod statusu, uruchom prawdziwe logowanie albo wyślij testową wiadomość. Kolejność ma znaczenie, bo sprawdzenie portu szybko wyklucza całą warstwę sieciową i pozwala przestać tam szukać.

Krótka lista kontrolna, gdy port się nie otwiera

  1. Potwierdź, że usługa nasłuchuje na maszynie i na właściwym interfejsie. Usługa związana z 127.0.0.1 jest nieosiągalna skądkolwiek indziej, i to bardzo częsta przyczyna.
  2. Sprawdź zaporę hosta (ufw, firewalld albo zaporę Windows).
  3. Sprawdź grupę zabezpieczeń w chmurze albo listę ACL sieci, co jest osobną warstwą od zapory hosta i często zapominaną.
  4. Sprawdź przekierowanie portów na routerze albo NAT, jeśli maszyna nie jest bezpośrednio pod publicznym adresem.
  5. Potwierdź, że dostawca nie blokuje tego portu, zwłaszcza dla portów pocztowych.
  6. Przetestuj ponownie z trzeciej sieci, żeby wykluczyć własne filtrowanie ruchu wychodzącego.

Ponowne sprawdzanie według harmonogramu

Sprawdzenie portu mówi o stanie w tej chwili, stamtąd, gdzie sonda została uruchomiona. Porty zwykle nie zamykają się same. Reguły zapory są edytowane, grupy zabezpieczeń są zaostrzane, certyfikaty wygasają, a usługi przestają uruchamiać się ponownie po restarcie, i nic z tego nie ogłasza się samo. Monitorowanie portów według harmonogramu ponownie łączy się w regularnych odstępach z wielu lokalizacji i alarmuje, gdy połączenie przestaje się udawać, co wyłapuje też przypadek, w którym port jest osiągalny z jednego regionu, a filtrowany z drugiego. Przetestuj port teraz za pomocą narzędzia do sprawdzania portów. Gdy port się otwiera, ale TLS zawodzi, kolejnym poradnikiem do przeczytania jest jak sprawdzić wygaśnięcie certyfikatu.

Sprawdź teraz

Uruchom darmowe sprawdzenie na swojej stronie - bez zakładania konta.

Port check

Monitoruj to na stałe

Otrzymasz powiadomienie w chwili awarii: HostTracker sprawdza z ponad 300 lokalizacji i powiadamia e-mailem, SMS-em, przez Slack, Telegram i nie tylko.

Funkcje HostTracker

Więcej w tej sekcji: Jak sprawdzić stronę internetową: praktyczne poradniki