Menu
CoddyTech

Odmowa połączenia lub przekroczenie limitu czasu

Lekcja 18 z 47 w kursie Sieci komputerowe w terminalu w Coddy.

Gdy połączenie zawodzi, dzieje się to na jeden z kilku konkretnych sposobów, a każdy z nich wskazuje na inną przyczynę. curl informuje o tym za pomocą kodu wyjścia — liczby pozostawianej przez polecenie, którą można odczytać jako $?.

curl -s http://127.0.0.1:9999/
echo $?

Warto zapamiętać trzy:

  • 0: powodzenie
  • 7: odmowa połączenia — maszyna odpowiedziała i poinformowała, że nic nie nasłuchuje na tym porcie
  • 28: przekroczono limit czasu — nie otrzymano żadnej odpowiedzi

7 oznacza szybkie działanie, a 28 — wolne, i właśnie ta różnica pozwala postawić diagnozę. Odmowa oznacza, że dotarłeś do maszyny i otrzymałeś jednoznaczną odmowę, więc adres jest prawidłowy, a usługa nie działa. Przekroczenie limitu czasu oznacza, że Twoje żądanie zaginęło, co zwykle oznacza, że zapora je odrzuciła albo adres jest nieprawidłowy.

challenge icon

Wyzwanie

Trudny

Spowoduj oba błędy i odczytaj kody.

  1. Zażądaj strony z http://127.0.0.1:9999/, gdzie nic nie nasłuchuje, i wypisz refused=, a następnie kod wyjścia
  2. Zrób to samo dla http://10.255.255.1/, adresu, który pochłania ruch, z --max-time 2, i wypisz timeout= oraz jego kod wyjścia

Oczekiwany wynik:

refused=7
timeout=28

$? przechowuje kod wyjścia właśnie uruchomionego polecenia, więc odczytaj go od razu.

Spróbuj swoich sił

Terminal
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Sieci komputerowe w terminalu

Poćwicz samodzielnie: Edytor online Terminal