CH-J Server Managerserverhantering över SSH
Menyn
Alla guider och artiklar →

ping misslyckas men SSH och HTTPS fungerar: varför, och är det ett problem?

Varför en server kan ignorera ping och ändå fungera normalt, hur du testar tjänsterna direkt och när blockerad ICMP orsakar verkliga fel.

Varför det händer

ping använder ICMP, medan SSH och HTTPS använder TCP-portar. Det är separata trafiktyper, och en brandvägg kan kasta bort den ena och släppa igenom den andra. Många nätverk och säkerhetsgrupper i molnet blockerar ICMP echo som standard. Ett uteblivet svar betyder därför inte att servern är nere, och ett svar bevisar inte att tjänsterna fungerar.

Testa tjänsten, inte ping

Kontrollera de portar och protokoll du faktiskt behöver. Om testerna lyckas är servern nåbar för de tjänsterna, och ett misslyckat ping visar bara att det finns ett filter någonstans längs vägen.

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

Spåra vägen med TCP

En klassisk traceroute kan visa enbart asterisker när ICMP eller UDP filtreras. Med TCP till en öppen port kan du ofta komma längre. Det kräver root, och traceroute kan behöva installeras först eftersom minimala system inte innehåller det.

sudo traceroute -T -p 443 server.example

Leta efter filtret på din server

Om du administrerar servern ska du granska dess brandvägg och kärninställningen som ignorerar echo-förfrågningar. Kom ihåg att blockeringen också kan ligga utanför servern, i en säkerhetsgrupp eller router, och att en leverantör kan filtrera ICMP i sitt nätverk utan att du ser någon regel.

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

När blockerad ICMP orsakar fel

Att blockera echo är oftast harmlöst, men att blockera all ICMP är det inte. Identifiering av sökvägens MTU bygger på meddelanden om för stora paket. Utan dem fungerar små datautbyten medan stora stannar av, till exempel när en SSH-inloggning lyckas men sedan hänger sig vid stora utmatningar. IPv6 är ännu mer beroende av ICMPv6. Det andra kommandot testar en väg för MTU på 1500 byte i Linux.

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

Jämför i CH-J Server Manager

Server Diagnostics kör ping via systemverktyget utan root, tillsammans med separata tester av TCP, SSH-identifiering, HTTP och TLS, så att ett misslyckat ping kan bedömas i sitt sammanhang. Ett misslyckat ping där betyder att inget svar kom fram. Det säger inte var paketet kastades bort, och en traceroute kanske inte heller kan ge svar på det.

Detaljerad dokumentation

RFC 4890: ICMPv6 filtering →

man: ping →

Biometrisk upplåsning och säkerhet →