Dlaczego tak się dzieje
ping używa ICMP, natomiast SSH i HTTPS korzystają z portów TCP. To oddzielne rodzaje ruchu i zapora może odrzucać jeden, a przepuszczać drugi. Wiele sieci i grup zabezpieczeń w chmurze domyślnie blokuje ICMP echo. Brak odpowiedzi nie oznacza więc, że serwer nie działa, a odpowiedź nie dowodzi, że jego usługi działają.
Testuj usługę, a nie ping
Sprawdź porty i protokoły, których rzeczywiście potrzebujesz. Jeśli te testy się udają, serwer jest osiągalny dla tych usług, a nieudany ping wskazuje jedynie na filtr gdzieś po drodze.
nc -vz -w 5 server.example 22
nc -vz -w 5 server.example 443
curl -sSI https://server.example/Prześledź trasę za pomocą TCP
Klasyczny traceroute może pokazywać same gwiazdki, gdy ICMP lub UDP są filtrowane. Korzystając z TCP do otwartego portu, często można dotrzeć dalej. Wymaga to uprawnień root, a traceroute może wymagać wcześniejszej instalacji, ponieważ minimalne systemy go nie zawierają.
sudo traceroute -T -p 443 server.examplePoszukaj filtra na swoim serwerze
Jeśli zarządzasz serwerem, sprawdź jego zaporę oraz ustawienie jądra ignorujące żądania echo. Pamiętaj, że blokada może znajdować się także poza serwerem, w grupie zabezpieczeń lub routerze, a dostawca może filtrować ICMP w swojej sieci bez widocznej dla ciebie reguły.
sysctl net.ipv4.icmp_echo_ignore_all
sudo nft list ruleset | grep -i icmp
sudo ufw status verboseKiedy blokowanie ICMP rzeczywiście powoduje awarie
Blokowanie echo jest przeważnie nieszkodliwe, ale blokowanie całego ICMP już nie. Wykrywanie MTU ścieżki opiera się na komunikatach o zbyt dużym pakiecie. Bez nich małe wymiany danych działają, a duże się zawieszają, na przykład logowanie SSH się udaje, ale potem połączenie zawiesza się przy dużej ilości danych wyjściowych. IPv6 jeszcze bardziej zależy od ICMPv6. Drugie polecenie testuje w systemie Linux ścieżkę dla MTU o wartości 1500 bajtów.
ip route get 192.0.2.10
ping -M do -s 1472 -c 3 192.0.2.10Porównanie w CH-J Server Manager
Server Diagnostics uruchamia ping za pomocą narzędzia systemowego, bez uprawnień root, obok oddzielnych testów TCP, identyfikacji SSH, HTTP i TLS, dzięki czemu nieudany ping można ocenić w kontekście. Nieudany ping oznacza tam, że nie nadeszła odpowiedź. Nie wskazuje, gdzie pakiet został odrzucony, a traceroute również może nie dać na to odpowiedzi.