
- بواسطة x32x01 ||
الـ Ping والـ Traceroute من أهم أدوات الـ troubleshooting لأي حد شغال في الشبكات أو سيرفرات أو حتى مبرمج بيشغل خدمات على سيرفرات بعيدة.
الاتنين دول بيخلوك تتأكد إنك متصل بالـ node اللي قدامك، وتعرف لو في مشكلة في الطريق، أو في تأخير (latency)، أو وصلات مكسورة.
إيه الفرق بينهم وإيه الغرض من كل واحد؟
ببساطة:
الكلمتين دول مهمين عشان نعرف الـ reachability - يعني تقدر توصل لـ node من أي مكان ولا لأ، والـ access ده بيبقى عادة remote.
الـ CLI يعني إيه؟ ولماذا نستخدمه؟
الـ CLI (Command Line Interface) هو الواجهة النصية اللي بنستخدمها، أو زي ما بنقول "الترمينال" - شاشة سودا بتسمحلك تكتب أوامر وتتواصل مع الـ OS أو مع أجهزة الشبكة مباشرة. معظم الأدوات الأساسية بتشتغل عن طريق CLI لأن فيها دقة وسرعة وإمكانية أوتوميشن.
مثال عملي: لو عايز تعمِل ping هتفتح التيرمنال وتكتب:
هتتبع الـ ICMP Echo Requests وهتستلم ICMP Echo Replies لو في اتصال.
تفاصيل بسيطة عن الـ Ping
الكوماند ده هيبعت 7 باكتس وهيرجعلك ملخَص فيه الـ RTT (الـ round-trip time) لكل باكت وبالمعدل كمان.
لما يجيلك Reply معناه إن في connectivity، والـ time اللي هتحصل عليه هيديك فكرة عن الـ latency بينك وبين الـ node.
Traceroute: ازاي بيشتغل ولماذا مفيد؟
الـ Traceroute بيستخدم فكرة الـ TTL عشان يحدد كل hop في الطريق. الفكرة: هو يبعت باكتس بقيم TTL متزايدة (1، 2، 3...) وكل راوتر قلما يوصل TTL بتاعه للصفر بيرجع رسالة للمرسل تعرفه عنوان الراوتر ده. بكده Traceroute بيطلعلك قائمة بكل الـ hops وعناوينهم ووقت الاستجابة لكل واحد.
أمر Traceroute في Linux بيبقى:
وفي Windows اسم الأداة tracert:
النتيجة هتوريك كل hop، عنوان الـ IP، والزمن لكل محاولة (عادة 3 محاولات لكل hop).
ليه الـ Traceroute أفضل لما تحب تعرف الطريق؟
لأن الـ Traceroute مش بس بيقولك لو فيه اتصال، هو بيقولك الطريق والـ مشكلة فين: هل المشكلة في الشبكة الداخلية بتاعتك؟ في مزود الخدمة (ISP)؟ في شبكة الطرف التالت؟ أو عند السيرفر نفسه؟ تعرف كل ده من الـ hops والـ delays.
مثال عملي: إزاي تقرأ مخرجات Traceroute
لو خرجلك حاجة زي:
معنى الكلام:
علاقة الـ TTL بالموضوع
زي ما قولنا، Traceroute بيعتمد على TTL. كل ما TTL يقل، الراوتر بيرد، ومن خلال زيادة TTL تدريجيًا تقدر تحدد كل راوتر في المسار. كمان الـ TTL في الرد بتاع الـ Ping ممكن يساعدك تحدد نوع النظام (مثلاً Windows عادة يبدأ TTL ب128، Linux بـ64، Cisco بـ255) - دي حاجة مفيدة في التحليل السريع.
أمثلة عملية وأخطاء شائعة
كود بسيط يقرأ نتيجة Ping في Python
الكود ده هيشغل ping مرة واحدة للمستهدف ويطبعلك النتيجة علشان تتعلم تعمل parsing بعدين لو عايز.
نصايح عملية للمبتدئين
الخلاصة
الاتنين دول بيخلوك تتأكد إنك متصل بالـ node اللي قدامك، وتعرف لو في مشكلة في الطريق، أو في تأخير (latency)، أو وصلات مكسورة.

إيه الفرق بينهم وإيه الغرض من كل واحد؟
ببساطة:- Ping بيراجع إذا كان فيه connectivity من جهازك للـ node ولا لأ، ويطلعلك وقت الاستجابة (delay أو latency).
- Traceroute بيديك خريطة الطريق: بيوريك الأجهزة اللي الباكت بتعدي عليهم (الـ hops) وإيه عنوان كل جهاز قد وصلوله الباكت والـ delay لكل hop. يعني Traceroute أعمق ومفصل أكتر من Ping.
الكلمتين دول مهمين عشان نعرف الـ reachability - يعني تقدر توصل لـ node من أي مكان ولا لأ، والـ access ده بيبقى عادة remote.
الـ CLI يعني إيه؟ ولماذا نستخدمه؟ 
الـ CLI (Command Line Interface) هو الواجهة النصية اللي بنستخدمها، أو زي ما بنقول "الترمينال" - شاشة سودا بتسمحلك تكتب أوامر وتتواصل مع الـ OS أو مع أجهزة الشبكة مباشرة. معظم الأدوات الأساسية بتشتغل عن طريق CLI لأن فيها دقة وسرعة وإمكانية أوتوميشن.مثال عملي: لو عايز تعمِل ping هتفتح التيرمنال وتكتب:
Code:
ping 10.230.210.12
هتتبع الـ ICMP Echo Requests وهتستلم ICMP Echo Replies لو في اتصال.

تفاصيل بسيطة عن الـ Ping
- في Windows الافتراضي بيبعت 4 حزم.
- في Linux/Mac الافتراضي ممكن يكون بيبعت إلى ما لا نهاية إلا لو حددت عدد الحزم.
- لو عايز تحدد عدد الحزم في Linux/Mac بتستخدم -c (count):
Code:
ping -c 7 10.230.210.12
لما يجيلك Reply معناه إن في connectivity، والـ time اللي هتحصل عليه هيديك فكرة عن الـ latency بينك وبين الـ node.
Traceroute: ازاي بيشتغل ولماذا مفيد؟
الـ Traceroute بيستخدم فكرة الـ TTL عشان يحدد كل hop في الطريق. الفكرة: هو يبعت باكتس بقيم TTL متزايدة (1، 2، 3...) وكل راوتر قلما يوصل TTL بتاعه للصفر بيرجع رسالة للمرسل تعرفه عنوان الراوتر ده. بكده Traceroute بيطلعلك قائمة بكل الـ hops وعناوينهم ووقت الاستجابة لكل واحد.أمر Traceroute في Linux بيبقى:
Code:
traceroute 8.8.8.8
وفي Windows اسم الأداة tracert:
Code:
tracert 8.8.8.8
ليه الـ Traceroute أفضل لما تحب تعرف الطريق؟
لأن الـ Traceroute مش بس بيقولك لو فيه اتصال، هو بيقولك الطريق والـ مشكلة فين: هل المشكلة في الشبكة الداخلية بتاعتك؟ في مزود الخدمة (ISP)؟ في شبكة الطرف التالت؟ أو عند السيرفر نفسه؟ تعرف كل ده من الـ hops والـ delays.مثال عملي: إزاي تقرأ مخرجات Traceroute
لو خرجلك حاجة زي:
Code:
1 192.168.1.1 1.2 ms 1.1 ms 1.3 ms
2 10.10.10.1 12.3 ms 11.8 ms 12.1 ms
3 203.0.113.45 40.2 ms 39.8 ms 41.0 ms
...
معنى الكلام:
- الـ hop الأول هو الراوتر الداخلي (1.2ms)
- التالت ممكن يكون راوتر في شبكة مزود الخدمة (حوالي 40ms)
لو فجأة ظهر hop عنيده بيرجع * * * معناه إن الراوتر ده مش بيرد على ICMP أو فيه فلترة.
علاقة الـ TTL بالموضوع
زي ما قولنا، Traceroute بيعتمد على TTL. كل ما TTL يقل، الراوتر بيرد، ومن خلال زيادة TTL تدريجيًا تقدر تحدد كل راوتر في المسار. كمان الـ TTL في الرد بتاع الـ Ping ممكن يساعدك تحدد نوع النظام (مثلاً Windows عادة يبدأ TTL ب128، Linux بـ64، Cisco بـ255) - دي حاجة مفيدة في التحليل السريع.أمثلة عملية وأخطاء شائعة
- لو الـ Ping ناجح والـ Traceroute بيظهر * في منتصف المسار: ممكن الراوتر ده عامل فلترة على ICMP لكن الطريق بيتمعن للتالي.
- لو Ping بيرجع لكن الـ latency عالي جدًا: ممكن تكون مشكلة ازدحام في الـ hop معين - راجع نتائج Traceroute لتحدد الهوب المسبب.
- لو مفيش رد خالص من البداية: اتأكد من الـ IP، الـ routing، والجدار الناري (firewall).
كود بسيط يقرأ نتيجة Ping في Python
(تجريبي للتعلم)
Python:
import subprocess
target = "8.8.8.8"
proc = subprocess.run(["ping","-c","1",target], capture_output=True, text=True)
print(proc.stdout)
نصايح عملية للمبتدئين
- ابدأ جرب أوامر Ping وTraceroute على جهازيك المحليين قبل ما تجرب على شبكات خارجية.
- اتعلم تقرأ الـ outputs بسرعة، وابني لنفسك قائمة مشاكل شائعة وترتيب خطوات التشخيص.
- لو شغال في بيئة كبيرة استخدم أدوات متقدمة زي MTR أو pathping (في ويندوز) اللي بتجمع بين Ping وTraceroute.
- افتكر دايمًا إن بعض الأجهزة ممكن تمنع ICMP لأسباب أمنية - وجود * مش دايمًا معناه ان الطريق مقطوع بالكامل.
الخلاصة
- Ping = اختبار سريع للاتصال وقياس الـ latency.
- Traceroute = خريطة الطريق (hops) وبيساعدك تحدد مصدر المشكلة.
- الاتنين لازم تتعلمهم كويس عشان تبقى troubleshoot محترف في الشبكات أو إدارة السيرفرات.
- جرب الأوامر بنفسك في التيرمنال، واقرأ النتائج، وجرب أدوات تانية زي MTR وpathping لما تحتاج تحليل أعمق.
التعديل الأخير: