Miért történik ez?
A ping ICMP-t használ, míg az SSH és a HTTPS TCP-portokat. Ezek különálló forgalmak, és a tűzfal az egyiket eldobhatja, a másikat pedig átengedheti. Sok hálózat és felhőbeli biztonsági csoport alapértelmezés szerint blokkolja az ICMP echo forgalmat. A válasz hiánya ezért nem jelenti azt, hogy a szerver leállt, a válasz pedig nem bizonyítja, hogy a szolgáltatásai működnek.
A szolgáltatást tesztelje, ne a ping működését
Azokat a portokat és protokollokat ellenőrizze, amelyekre ténylegesen szüksége van. Ha ezek tesztje sikeres, a szerver az adott szolgáltatásokhoz elérhető, és a sikertelen ping csak egy valahol az útvonalon működő szűrőt jelez.
nc -vz -w 5 server.example 22
nc -vz -w 5 server.example 443
curl -sSI https://server.example/Útvonal követése TCP-vel
A hagyományos traceroute csak csillagokat jeleníthet meg, ha az ICMP vagy az UDP szűrve van. Egy nyitott port felé küldött TCP-forgalommal gyakran tovább juthat. Ehhez root jogosultság szükséges, és a traceroute eszközt esetleg előbb telepíteni kell, mert a minimális rendszerek nem tartalmazzák.
sudo traceroute -T -p 443 server.exampleKeresse a szűrőt a szerveren
Ha Ön kezeli a szervert, nézze meg a tűzfalát és az echo kérések figyelmen kívül hagyását szabályozó kernelbeállítást. Ne feledje, hogy a blokkolás a szerveren kívül, egy biztonsági csoportban vagy útválasztón is történhet, és a szolgáltató úgy is szűrheti az ICMP-t a hálózatában, hogy Ön nem lát hozzá szabályt.
sysctl net.ipv4.icmp_echo_ignore_all
sudo nft list ruleset | grep -i icmp
sudo ufw status verboseAmikor az ICMP blokkolása valóban hibát okoz
Az echo blokkolása többnyire ártalmatlan, de az összes ICMP-forgalom blokkolása nem az. Az útvonal MTU-jának felderítése a túl nagy csomagról szóló üzenetekre támaszkodik. Ezek nélkül a kis adatcserék működnek, a nagyok viszont elakadnak: például az SSH-bejelentkezés sikerül, de nagy mennyiségű kimenetnél megáll a kapcsolat. Az IPv6 még inkább függ az ICMPv6 működésétől. A második parancs Linuxon 1500 bájtos MTU-val teszteli az útvonalat.
ip route get 192.0.2.10
ping -M do -s 1472 -c 3 192.0.2.10Összehasonlítás a CH-J Server Manager alkalmazásban
A Server Diagnostics a rendszer eszközével, root jogosultság nélkül futtatja a ping tesztet, külön TCP-, SSH-azonosítási, HTTP- és TLS-tesztek mellett, így a sikertelen ping az összefüggéseiben értelmezhető. A sikertelen ping itt azt jelenti, hogy nem érkezett válasz. Nem mutatja meg, hol dobták el a csomagot, és erre a traceroute sem feltétlenül ad választ.