CH-J Server ManagerZarządzanie serwerem przez SSH
Menu
Wszystkie poradniki i artykuły →

ping nie działa, ale SSH i HTTPS działają: dlaczego i czy to problem?

Dlaczego serwer może ignorować ping i nadal działać normalnie, jak testować usługi bezpośrednio i kiedy blokowanie ICMP powoduje rzeczywiste awarie.

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.example

Poszukaj 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 verbose

Kiedy 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.10

Poró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.

Dokumentacja szczegółowa

RFC 4890: ICMPv6 filtering →

man: ping →

Biometryczne odblokowanie i bezpieczeństwo →