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.examplePotraž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 verboseKada 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.10Usporedba 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.