ایسا کیوں ہوتا ہے
ping، ICMP استعمال کرتا ہے، جبکہ SSH اور HTTPS، TCP پورٹ استعمال کرتے ہیں۔ یہ الگ ٹریفک ہیں، اور فائر وال ایک کو گرا کر دوسرے کو گزرنے دے سکتی ہے۔ بہت سے نیٹ ورک اور کلاؤڈ سیکیورٹی گروپ پہلے سے طے شدہ طور پر ICMP echo بلاک کرتے ہیں۔ اس لیے جواب نہ آنے کا مطلب سرور بند ہونا نہیں، اور جواب ملنا بھی اس کی سروسز کے چلنے کا ثبوت نہیں۔
ping کے بجائے سروس آزمائیں
وہ پورٹ اور پروٹوکول جانچیں جن کی آپ کو واقعی ضرورت ہے۔ اگر یہ آزمائشیں کامیاب ہوں تو ان سروسز کے لیے سرور تک رسائی ممکن ہے، اور ping کی ناکامی صرف راستے میں کہیں فلٹر ہونے کو ظاہر کرتی ہے۔
nc -vz -w 5 server.example 22
nc -vz -w 5 server.example 443
curl -sSI https://server.example/TCP سے راستہ معلوم کریں
ICMP یا UDP فلٹر ہونے پر عام traceroute میں صرف ستارے نظر آ سکتے ہیں۔ کسی کھلے پورٹ کی طرف TCP استعمال کر کے آپ اکثر راستے میں مزید آگے تک پہنچ سکتے ہیں۔ اس کے لیے root درکار ہے، اور ممکن ہے پہلے traceroute نصب کرنا پڑے، کیونکہ کم سے کم تنصیب والے سسٹمز میں یہ شامل نہیں ہوتا۔
sudo traceroute -T -p 443 server.exampleاپنے سرور پر فلٹر تلاش کریں
اگر آپ سرور کا انتظام کرتے ہیں تو اس کی فائر وال اور کرنل کی وہ ترتیب دیکھیں جو echo درخواستوں کو نظر انداز کرتی ہے۔ یاد رکھیں کہ رکاوٹ سرور کے باہر، کسی سیکیورٹی گروپ یا راؤٹر میں بھی ہو سکتی ہے، اور فراہم کنندہ اپنے نیٹ ورک پر ICMP فلٹر کر سکتا ہے جبکہ آپ کو اس کا کوئی اصول نظر نہ آئے۔
sysctl net.ipv4.icmp_echo_ignore_all
sudo nft list ruleset | grep -i icmp
sudo ufw status verboseICMP بلاک ہونے سے کب واقعی خرابیاں پیدا ہوتی ہیں
echo بلاک کرنا عموماً بے ضرر ہے، مگر پورا ICMP بلاک کرنا ایسا نہیں۔ راستے کا MTU معلوم کرنے کا عمل ان پیغامات پر انحصار کرتا ہے جو پیکٹ کے حد سے زیادہ بڑے ہونے کی اطلاع دیتے ہیں۔ ان کے بغیر چھوٹے تبادلے چلتے ہیں مگر بڑے اٹک جاتے ہیں، مثلاً SSH لاگ ان کامیاب ہو جاتا ہے مگر پھر بڑی آؤٹ پٹ پر اٹک جاتا ہے۔ IPv6 کا ICMPv6 پر انحصار اس سے بھی زیادہ ہے۔ دوسری کمانڈ Linux پر 1500 بائٹ MTU کے لیے راستہ آزماتی ہے۔
ip route get 192.0.2.10
ping -M do -s 1472 -c 3 192.0.2.10CH-J Server Manager میں آزمائشوں کا موازنہ
Server Diagnostics سسٹم کے ٹول کے ذریعے root کے بغیر ping چلاتا ہے، ساتھ ہی TCP، SSH شناخت، HTTP اور TLS کی الگ آزمائشیں بھی کرتا ہے، تاکہ ناکام ping کو دوسرے نتائج کے تناظر میں سمجھا جا سکے۔ یہاں ping کی ناکامی کا مطلب ہے کہ کوئی جواب نہیں پہنچا۔ یہ نہیں بتاتا کہ پیکٹ کہاں گرایا گیا، اور ممکن ہے traceroute بھی اس کا جواب نہ دے سکے۔