CH-J Server Managerpengurusan pelayan melalui SSH
Menu
Semua panduan dan artikel →

ping gagal tetapi SSH dan HTTPS berfungsi: mengapa, dan adakah ini masalah?

Sebab pelayan boleh mengabaikan ping tetapi masih berjalan seperti biasa, cara menguji perkhidmatan secara langsung dan bila sekatan ICMP menyebabkan kerosakan sebenar.

Mengapa ini berlaku

ping menggunakan ICMP, manakala SSH dan HTTPS menggunakan port TCP. Ini ialah trafik yang berasingan, dan firewall boleh menggugurkan satu jenis sambil membenarkan jenis yang lain. Banyak rangkaian dan kumpulan keselamatan awan menyekat ICMP echo secara lalai. Oleh itu, ketiadaan balasan tidak bermakna pelayan terhenti, dan balasan pula tidak membuktikan perkhidmatannya berfungsi.

Uji perkhidmatan, bukan ping

Semak port dan protokol yang benar-benar anda perlukan. Jika ujian ini berjaya, pelayan boleh dicapai untuk perkhidmatan tersebut dan ping yang gagal hanya menunjukkan adanya penapis di suatu tempat pada laluan.

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

Jejak laluan dengan TCP

traceroute biasa mungkin hanya menunjukkan tanda asterisk apabila ICMP atau UDP ditapis. Dengan TCP ke port yang terbuka, anda selalunya dapat menjejak lebih jauh. Ini memerlukan root, dan traceroute mungkin perlu dipasang dahulu kerana sistem minimum tidak menyertakannya.

sudo traceroute -T -p 443 server.example

Cari penapis pada pelayan anda

Jika anda mengurus pelayan itu, lihat firewall dan tetapan kernel yang mengabaikan permintaan echo. Ingat bahawa sekatan mungkin juga berada di luar pelayan, dalam kumpulan keselamatan atau penghala, dan penyedia mungkin menapis ICMP pada rangkaiannya tanpa anda melihat peraturan itu.

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

Bila sekatan ICMP benar-benar menyebabkan masalah

Menyekat echo kebanyakannya tidak memudaratkan, tetapi menyekat semua ICMP bukan begitu. Penemuan MTU laluan bergantung pada mesej yang menyatakan paket terlalu besar. Tanpanya, pertukaran kecil berfungsi tetapi pertukaran besar tergantung, contohnya log masuk SSH berjaya kemudian tergantung apabila keluarannya besar. IPv6 lebih bergantung pada ICMPv6. Perintah kedua menguji laluan untuk MTU 1500 bait pada Linux.

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

Membandingkan ujian dalam CH-J Server Manager

Server Diagnostics menjalankan ping melalui alat sistem, tanpa root, bersama ujian TCP, pengenalan SSH, HTTP dan TLS yang berasingan, supaya kegagalan ping dapat ditafsirkan dalam konteks. Kegagalan ping di situ bermakna tiada balasan tiba. Ia tidak menyatakan tempat paket digugurkan, dan traceroute juga mungkin tidak dapat menjawabnya.

Dokumentasi terperinci

RFC 4890: ICMPv6 filtering →

man: ping →

Buka kunci biometrik dan keselamatan →