CH-J Server Managerupravljanje strežnikov prek SSH
Meni
Vsi vodiči in članki →

ping ne uspe, SSH in HTTPS pa delujeta: zakaj in ali je to težava?

Zakaj lahko strežnik prezre ping in še vedno normalno deluje, kako neposredno preveriti storitve in kdaj blokiran ICMP povzroča dejanske napake.

Zakaj se to zgodi

ping uporablja ICMP, SSH in HTTPS pa uporabljata vrata TCP. To je ločen promet in požarni zid lahko enega zavrže, drugega pa prepusti. Mnoga omrežja in varnostne skupine v oblaku privzeto blokirajo ICMP echo. Manjkajoči odgovor zato ne pomeni, da strežnik ne deluje, odgovor pa ne dokazuje, da njegove storitve delujejo.

Preverite storitev, ne ping

Preverite vrata in protokole, ki jih res potrebujete. Če ti preizkusi uspejo, je strežnik dosegljiv za te storitve, neuspešen ping pa kaže le na filter nekje na poti.

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

Sledite poti s TCP

Klasični traceroute lahko ob filtriranju ICMP ali UDP pokaže le zvezdice. S TCP na odprta vrata lahko pogosto pridete dlje. To zahteva root, traceroute pa boste morda morali najprej namestiti, saj ga minimalni sistemi ne vključujejo.

sudo traceroute -T -p 443 server.example

Poiščite filter na svojem strežniku

Če upravljate strežnik, preverite njegov požarni zid in nastavitev jedra, ki prezre zahteve echo. Upoštevajte, da je blokada lahko tudi zunaj strežnika, v varnostni skupini ali usmerjevalniku, in da ponudnik lahko filtrira ICMP v svojem omrežju, ne da bi videli pravilo.

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

Kdaj blokiran ICMP povzroča napake

Blokiranje echo je večinoma neškodljivo, blokiranje vsega ICMP pa ni. Odkrivanje MTU poti je odvisno od sporočil o prevelikih paketih. Brez njih majhne izmenjave delujejo, velike pa obstanejo, na primer prijava SSH uspe, nato pa povezava obstane pri obsežnem izpisu. IPv6 je še bolj odvisen od ICMPv6. Drugi ukaz v Linux preveri pot za MTU 1500 bajtov.

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

Primerjava v CH-J Server Manager

Server Diagnostics izvaja ping s sistemskim orodjem brez root, poleg ločenih preizkusov TCP, identifikacije SSH, HTTP in TLS, zato lahko neuspešen ping presodite v kontekstu. Neuspešen ping tu pomeni, da ni prispel odgovor. Ne pove, kje je bil paket zavržen, in tudi traceroute morda ne bo odgovoril na to vprašanje.

Podrobna dokumentacija

RFC 4890: ICMPv6 filtering →

man: ping →

Biometrično odklenjevanje in varnost →