CH-J Server Managerservera pārvaldība virs SSH
Izvēlne
Visas pamācības un raksti →

ping neizdodas, bet SSH un HTTPS darbojas: kāpēc, un vai tā ir problēma?

Kāpēc serveris var ignorēt ping un joprojām darboties normāli, kā tieši pārbaudīt pakalpojumus un kad bloķēts ICMP izraisa reālus traucējumus.

Kāpēc tā notiek

ping izmanto ICMP, savukārt SSH un HTTPS izmanto TCP portus. Tās ir atsevišķas datplūsmas, un ugunsmūris var vienu atmest, bet otru izlaist cauri. Daudzi tīkli un mākoņa drošības grupas pēc noklusējuma bloķē ICMP echo. Tāpēc atbildes trūkums nenozīmē, ka serveris nedarbojas, un atbilde nepierāda, ka tā pakalpojumi darbojas.

Pārbaudiet pakalpojumu, nevis ping

Pārbaudiet portus un protokolus, kas jums patiešām vajadzīgi. Ja šīs pārbaudes izdodas, serveris šiem pakalpojumiem ir sasniedzams, un neveiksmīgs ping norāda tikai uz filtru kaut kur ceļā.

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

Izsekojiet ceļu ar TCP

Parasts traceroute var rādīt tikai zvaigznītes, ja ICMP vai UDP tiek filtrēts. Izmantojot TCP uz atvērtu portu, bieži var izsekot tālāk. Tam vajadzīgas root tiesības, un traceroute vispirms var būt jāinstalē, jo minimālās sistēmās tā nav.

sudo traceroute -T -p 443 server.example

Meklējiet filtru savā serverī

Ja pārvaldāt serveri, apskatiet tā ugunsmūri un kodola iestatījumu, kas ignorē echo pieprasījumus. Atcerieties, ka bloķēšana var būt arī ārpus servera, drošības grupā vai maršrutētājā, un ka pakalpojuma sniedzējs var filtrēt ICMP savā tīklā, jums neredzot nevienu noteikumu.

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

Kad bloķēts ICMP patiešām izraisa traucējumus

Echo bloķēšana lielākoties ir nekaitīga, bet visa ICMP bloķēšana gan nav. Ceļa MTU noteikšana balstās uz ziņojumiem par pārāk lielu paketi. Bez tiem nelielas datu apmaiņas darbojas, bet lielas iestrēgst, piemēram, pieteikšanās ar SSH izdodas, bet pēc tam savienojums iestrēgst, izvadot daudz datu. IPv6 vēl vairāk ir atkarīgs no ICMPv6. Otrā komanda Linux sistēmā pārbauda ceļu ar 1500 baitu MTU.

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

Salīdzināšana lietotnē CH-J Server Manager

Server Diagnostics palaiž ping ar sistēmas rīku, bez root tiesībām, līdzās atsevišķiem TCP, SSH identifikācijas, HTTP un TLS testiem, tāpēc neveiksmīgu ping var izvērtēt kontekstā. Neveiksmīgs ping šeit nozīmē, ka nav saņemta atbilde. Tas nepasaka, kur pakete tika atmesta, un arī traceroute var nesniegt šo atbildi.

Sīki izstrādāta dokumentācija

RFC 4890: ICMPv6 filtering →

man: ping →

Biometriskā atbloķēšana un drošība →