Perché succede
ping usa ICMP, mentre SSH e HTTPS usano porte TCP. Sono tipi di traffico distinti e un firewall può scartarne uno e lasciar passare l’altro. Molte reti e molti gruppi di sicurezza del cloud bloccano ICMP echo per impostazione predefinita. L’assenza di risposta non significa quindi che il server sia fuori servizio, e una risposta non dimostra che i suoi servizi funzionino.
Testa il servizio, non ping
Controlla le porte e i protocolli che ti servono davvero. Se questi test riescono, il server è raggiungibile per quei servizi e il fallimento di ping indica soltanto un filtro da qualche parte lungo il percorso.
nc -vz -w 5 server.example 22
nc -vz -w 5 server.example 443
curl -sSI https://server.example/Traccia il percorso con TCP
Un traceroute classico può mostrare solo asterischi quando ICMP o UDP vengono filtrati. Usando TCP verso una porta aperta, spesso puoi andare oltre. Servono i privilegi di root e potrebbe essere necessario installare prima traceroute, perché i sistemi minimali non lo includono.
sudo traceroute -T -p 443 server.exampleCerca il filtro sul server
Se gestisci il server, controlla il suo firewall e l’impostazione del kernel che ignora le richieste echo. Ricorda che il blocco può trovarsi anche fuori dal server, in un gruppo di sicurezza o in un router, e che un provider può filtrare ICMP nella propria rete senza che tu possa vedere una regola.
sysctl net.ipv4.icmp_echo_ignore_all
sudo nft list ruleset | grep -i icmp
sudo ufw status verboseQuando il blocco di ICMP causa davvero problemi
Bloccare echo è perlopiù innocuo, ma bloccare tutto ICMP non lo è. Il rilevamento della MTU del percorso dipende dai messaggi che segnalano un pacchetto troppo grande. Senza questi messaggi, gli scambi piccoli funzionano e quelli grandi si bloccano: per esempio, un accesso SSH riesce ma poi si blocca quando l’output è voluminoso. IPv6 dipende ancora di più da ICMPv6. Il secondo comando verifica un percorso con una MTU di 1500 byte su Linux.
ip route get 192.0.2.10
ping -M do -s 1472 -c 3 192.0.2.10Confronto in CH-J Server Manager
Server Diagnostics esegue ping tramite lo strumento di sistema, senza privilegi di root, accanto a test separati per TCP, identificazione SSH, HTTP e TLS, così il fallimento di ping può essere interpretato nel suo contesto. In questo caso un ping fallito significa che non è arrivata alcuna risposta. Non indica dove sia stato scartato il pacchetto, e neppure traceroute potrebbe chiarirlo.