CH-J Server Managerupravljanje poslužiteljima preko SSH
Meni
Svi vodiči i članci →

ping ne uspijeva, ali SSH i HTTPS rade: zašto i je li to problem?

Zašto poslužitelj može ignorirati ping i svejedno normalno raditi, kako izravno testirati usluge i kada blokirani ICMP uzrokuje stvarne kvarove.

Zašto se to događa

ping koristi ICMP, dok SSH i HTTPS koriste TCP portove. Riječ je o odvojenom prometu i vatrozid može jedan odbacivati, a drugi propuštati. Mnoge mreže i sigurnosne grupe u oblaku prema zadanim postavkama blokiraju ICMP echo. Izostanak odgovora stoga ne znači da je poslužitelj nedostupan, a odgovor ne dokazuje da njegove usluge rade.

Testirajte uslugu, a ne ping

Provjerite portove i protokole koji su vam doista potrebni. Ako te provjere uspiju, poslužitelj je dostupan za te usluge, a neuspjeli ping pokazuje samo da negdje na putu postoji filtar.

nc -vz -w 5 server.example 22
nc -vz -w 5 server.example 443
curl -sSI https://server.example/

Pratite put pomoću TCP-a

Klasični traceroute može prikazivati samo zvjezdice ako se ICMP ili UDP filtrira. Uz TCP prema otvorenom portu često možete doprijeti dalje. Za to je potreban root, a traceroute ćete možda najprije morati instalirati jer ga minimalni sustavi ne sadrže.

sudo traceroute -T -p 443 server.example

Potražite filtar na poslužitelju

Ako upravljate poslužiteljem, provjerite njegov vatrozid i postavku jezgre koja ignorira echo zahtjeve. Imajte na umu da blokada može biti i izvan poslužitelja, u sigurnosnoj grupi ili usmjerivaču, te da pružatelj usluge može filtrirati ICMP u svojoj mreži bez pravila koje možete vidjeti.

sysctl net.ipv4.icmp_echo_ignore_all
sudo nft list ruleset | grep -i icmp
sudo ufw status verbose

Kada blokirani ICMP doista uzrokuje kvarove

Blokiranje echo poruka uglavnom je bezopasno, ali blokiranje cjelokupnog ICMP-a nije. Otkrivanje MTU-a puta oslanja se na poruke o prevelikom paketu. Bez njih male razmjene rade, a velike zastaju, primjerice SSH prijava koja uspije, ali zatim zastane pri opsežnom ispisu. IPv6 još više ovisi o ICMPv6. Druga naredba na Linuxu testira put za MTU od 1500 bajtova.

ip route get 192.0.2.10
ping -M do -s 1472 -c 3 192.0.2.10

Usporedba u CH-J Server Manager

Server Diagnostics pokreće ping putem sistemskog alata, bez ovlasti root, uz zasebne testove TCP-a, SSH identifikacije, HTTP-a i TLS-a, pa se neuspjeli ping može protumačiti u kontekstu. Neuspjeli ping ondje znači da odgovor nije stigao. Ne pokazuje gdje je paket odbačen, a ni traceroute možda neće dati taj odgovor.

Detaljna dokumentacija

RFC 4890: ICMPv6 filtering →

man: ping →

Biometrično otključavanje i sigurnost →