Network Troubleshooting في Linux: منهجية تشخيص خطوة بخطوة
تشخيص مشاكل الشبكة في Linux يحتاج ترتيب منطقي، وليس تجربة عشوائية للأوامر.
في هذا الدرس ستتعلم Playbook عملي يمكّنك من تحديد سبب المشكلة بسرعة ودقة.
قاعدة التشخيص الذهبية: من الأسفل إلى الأعلى
- واجهة الشبكة وIP
- الـ route والـ gateway
- الوصول لـ IP خارجي
- DNS resolution
- المنافذ والخدمة نفسها
الخطوة 1: فحص الواجهة وعنوان IP
ip a
ip link show
- تأكد أن الواجهة
UP - تأكد وجود عنوان IP صحيح
الخطوة 2: فحص route والـ default gateway
ip r
route -n
إذا لا يوجد default via فالجهاز غالبا لن يخرج للإنترنت.
الخطوة 3: اختبار الاتصال بطبقات مختلفة
ping -c 3 192.168.1.1
ping -c 3 8.8.8.8
ping -c 3 openai.com
| النتيجة | الاستنتاج |
|---|---|
| يفشل ping للـ gateway | مشكلة محلية في الشبكة/واجهة |
| ينجح IP خارجي ويفشل domain | مشكلة DNS |
| يفشل الجميع | مشكلة route أو firewall أو انقطاع عام |
الخطوة 4: تشخيص DNS
cat /etc/resolv.conf
dig +short openai.com
nslookup openai.com
getent hosts openai.com
راقب إن كانت خوادم DNS صحيحة وتعيد نتائج متناسقة.
الخطوة 5: فحص المنافذ والخدمات
ss -tulpn
nc -zv 127.0.0.1 80
curl -I http://127.0.0.1
إذا الخدمة لا تستمع على المنفذ الصحيح فلن تنجح أي اختبارات خارجية.
فحص firewall أثناء التشخيص
sudo ufw status verbose
sudo iptables -L -n -v
تأكد أن المنفذ المطلوب مسموح وأن القواعد لا تمنع الترافيك المستهدف.
تتبع المسار والتأخير باستخدام traceroute
traceroute 8.8.8.8
traceroute openai.com
يساعدك على معرفة في أي hop يحدث تأخير أو انقطاع.
سيناريو 1: السيرفر يرد داخليا لكن لا يرد خارجيًا
- تحقق أن الخدمة listening:
ss -tulpn - اختبر محليًا:
curl -I 127.0.0.1:PORT - افحص firewall:
ufw status - افحص Security Group/Cloud Firewall إن كنت على cloud
سيناريو 2: DNS لا يعمل
- اختبر IP مباشر:
ping 8.8.8.8 - راجع
/etc/resolv.conf - اختبر بـ
dig @8.8.8.8 domain - افحص تعارضات
/etc/hosts
تمرين عملي: Playbook تشخيص شبكة كامل
ip a
ip r
ping -c 2 8.8.8.8
ping -c 2 openai.com
dig +short openai.com
ss -tulpn | head
curl -I https://openai.com
إذا نفذت هذه السلسلة بوضوح وفهمت كل نتيجة، فأنت جاهز لمعظم أعطال الشبكة الشائعة.
FAQ: أسئلة شائعة حول Network Troubleshooting في Linux
من أين أبدأ عند حدوث مشكلة شبكة في Linux؟
ابدأ بفحص الواجهة وعنوان IP عبر ip a ثم route عبر ip r قبل اختبار DNS أو الخدمات.
كيف أفرق بين مشكلة DNS ومشكلة إنترنت؟
إذا ping على IP مثل 8.8.8.8 يعمل لكن ping على اسم نطاق يفشل فالمشكلة غالبا DNS.
ما أفضل أمر لمعرفة المنافذ المفتوحة في Linux؟
الأمر ss -tulpn يعرض المنافذ المستمعة والعمليات المرتبطة بها.