CH-J Server Managerserverio valdymas per SSH
Meniu
Visi vadovai ir straipsniai →

ping neveikia, bet SSH ir HTTPS veikia: kodėl ir ar tai problema?

Kodėl serveris gali ignoruoti ping ir vis tiek veikti įprastai, kaip tiesiogiai tikrinti paslaugas ir kada užblokuotas ICMP sukelia tikrų sutrikimų.

Kodėl taip nutinka

ping naudoja ICMP, o SSH ir HTTPS – TCP prievadus. Tai atskiri srautai, todėl ugniasienė gali vieną atmesti, o kitą praleisti. Daugelis tinklų ir debesijos saugos grupių pagal numatytąsias nuostatas blokuoja ICMP echo. Todėl atsakymo nebuvimas nereiškia, kad serveris neveikia, o atsakymas neįrodo, kad jo paslaugos veikia.

Tikrinkite paslaugą, o ne ping

Patikrinkite prievadus ir protokolus, kurių jums iš tikrųjų reikia. Jei šios patikros sėkmingos, serveris pasiekiamas šioms paslaugoms, o nesėkmingas ping tik rodo filtrą kažkur kelyje.

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

Sekite kelią naudodami TCP

Įprastas traceroute gali rodyti vien žvaigždutes, kai ICMP arba UDP filtruojamas. Naudojant TCP į atvirą prievadą, dažnai galima atsekti kelią toliau. Tam reikia root teisių, o traceroute gali tekti pirmiausia įdiegti, nes minimaliose sistemose jo nėra.

sudo traceroute -T -p 443 server.example

Ieškokite filtro savo serveryje

Jei administruojate serverį, patikrinkite jo ugniasienę ir branduolio nuostatą, kuri leidžia ignoruoti echo užklausas. Atminkite, kad blokavimas gali būti ir už serverio ribų, saugos grupėje ar maršrutizatoriuje, o teikėjas gali filtruoti ICMP savo tinkle jums nematant jokios taisyklės.

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

Kada užblokuotas ICMP iš tikrųjų sukelia sutrikimų

Echo blokavimas dažniausiai nekenkia, tačiau viso ICMP blokavimas – kenkia. Kelio MTU nustatymas priklauso nuo pranešimų apie per didelį paketą. Be jų nedideli duomenų mainai veikia, o dideli užstringa, pavyzdžiui, SSH prisijungimas pavyksta, bet išvedant daug duomenų ryšys užstringa. IPv6 dar labiau priklauso nuo ICMPv6. Antroji komanda Linux sistemoje tikrina kelią su 1500 baitų MTU.

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

Palyginimas CH-J Server Manager programoje

Server Diagnostics paleidžia ping naudodamas sistemos įrankį, be root teisių, kartu su atskirais TCP, SSH identifikavimo, HTTP ir TLS testais, todėl nesėkmingą ping galima vertinti bendrame kontekste. Nesėkmingas ping čia reiškia, kad atsakymas negautas. Jis neparodo, kur paketas buvo atmestas, o traceroute taip pat gali į tai neatsakyti.

Išsamūs dokumentai

RFC 4890: ICMPv6 filtering →

man: ping →

Biometrinis atrakinimas ir saugumas →