المدوّنة · الخوادم ولينكس

أهم أوامر فحص وتشخيص الشبكة في Linux: دليل شامل لمهندسي الخوادم

· 8 دقائق قراءة

أهم أوامر فحص وتشخيص الشبكة في Linux: دليل شامل لمهندسي الخوادم

عندما يتوقف موقعك عن العمل، أو يعجز خادمك عن الاتصال بقاعدة بيانات خارجية، أو تفشل شهادة SSL في التجديد التلقائي، فإن أول ما يجب فحصه هو طبقة الشبكة (Networking Layer). في بيئات الإنتاج، لا مجال للتخمين؛ تحتاج إلى أدوات دقيقة تكشف لك خلال ثوانٍ معدودة: هل المشكلة في كارت الشبكة؟ أم في مزود الاستضافة؟ أم في إعدادات DNS؟ أم أن المنفذ المطلوب مغلق أو محجوب بواسطة جدار ناري؟

تخلت توزيعات لينكس الحديثة (مثل Ubuntu 22.04+ وDebian 12 وRHEL 9) عن حزمة الأدوات الكلاسيكية القديمة (net-tools مثل ifconfig وroute وnetstat) لصالح أدوات أحدث وأسرع وأكثر دقة مبنية على حزمة iproute2. يغطي هذا الدليل العملي الموسع كل ما يحتاجه مدير الخادم لفحص وتشخيص ومراقبة اتصالات الشبكة باحترافية كاملة.

1. فحص كروت الشبكة وعناوين IP عبر أمر ip#

أمر ip هو البديل المعياري الحديث لـ ifconfig. يتيح لك عرض كل واجهات الشبكة الفيزيائية والافتراضية وحالتها التشغيلية.

عرض بطاقات الشبكة وعناوين IPv4 و IPv6#

ip -c addr show

إضافة الخيار -c تمنحك مخرجات ملونة تسهل قراءة البيانات. ستلاحظ وجود واجهتين أساسيتين على الأقل:

  • lo (Loopback): الواجهة المحلية للاتصال الداخلي على الخادم (127.0.0.1).
  • eth0 أو ens3 أو enp3s0: بطاقة الشبكة الفعلية المتصلة بالإنترنت العام أو الشبكة الخاصة.

تحقق دائماً من مؤشر الحالة في السطر الأول لكل واجهة: يجب أن تكون state UP. إذا كانت state DOWN فهذا يعني أن البطاقة غير مفعلة برمجياً.

تفعيل أو تعطيل بطاقة شبكة معينة#

# تعطيل الواجهة
sudo ip link set dev eth0 down

# إعادة تفعيل الواجهة
sudo ip link set dev eth0 up

عرض إحصائيات استهلاك الحزم والأخطاء#

لمعرفة ما إذا كان هناك فقدان في حزم البيانات (Packet Drops) أو أخطاء على كارت الشبكة:

ip -s link show eth0

ابحث عن قيمتي errors و dropped تحت قسمي RX (الاستقبال) و TX (الإرسال). ارتفاع هذه القيم يشير إلى وجود ضغط هائل على السيرفر أو مشكلة في العتاد (Hardware) لدى مركز البيانات.

2. فحص البوابة الافتراضية والتوجيه (Routing)#

لكي يتمكن الخادم من الاتصال بالعالم الخارجي، يجب أن يمتلك بوابة افتراضية (Default Gateway) توجه الحزم نحو الإنترنت العام.

عرض جدول التوجيه النشط#

ip route show

ستظهر لك أسطر شبيهة بهذا الإخراج:

default via 192.0.2.1 dev eth0 proto static onlink
192.0.2.0/24 dev eth0 proto kernel scope link src 192.0.2.15

السطر الأول الذي يبدأ بـ default via هو الأهم: يشير إلى عنوان IP البوابة الخارجية التي تعبر منها كل الحزم التي لا تقع ضمن الشبكة المحلية.

3. فحص المنافذ المستمعة والاتصالات النشطة (ss)#

أمر ss (Socket Statistics) هو الأداة الأسرع والأكثر كفاءة لفحص المنافذ المفتوحة، وهو يتفوق بمراحل على أداة netstat القديمة خاصة عندما يحتوي الخادم على آلاف الاتصالات المتزامنة.

الأمر الذهبي: فحص كل المنافذ المستمعة في الخادم#

sudo ss -tulpn

دعنا نفكك هذا الاختصار الذي يعتمد عليه مهندسو الأنظمة يومياً:

  • -t: حزم بروتوكول TCP فقط.
  • -u: حزم بروتوكول UDP فقط (مثل خوادم DNS أو NTP).
  • -l: إظهار المنافذ التي في حالة استماع (Listening) فقط.
  • -p: إظهار اسم البرنامج ومعرف العملية (PID) المسؤولة عن فتح المنفذ (يتطلب sudo).
  • -n: عرض أرقام المنافذ وعناوين IP كأرقام مجردة بدلاً من محاولة حل أسمائها، مما يسرع تنفيذ الأمر فوراً.

التحقق من عمل خدمة معينة على منفذها الصحيح#

للتحقق مما إذا كان خادم الويب يستمع للاتصالات على المنفذين 80 و 443:

sudo ss -tulpn | grep -E ':80|:443'

إذا كان الإخراج فارغاً، فهذا يعني أن خادم الويب (Nginx أو Apache) متوقف تماماً عن العمل، أو أنه فشل في الربط (Bind) مع المنفذ.

معرفة من يستهلك منفذاً معيناً ومنع تشغيل خادم الويب#

إذا واجهت خطأ «Address already in use»، يمكنك معرفة العملية التي تحتل المنفذ عبر:

sudo lsof -i :80
# أو
sudo fuser 80/tcp
مخطط استعلامات نظام أسماء النطاقات وتتبع المسار بأمر dig
استعلامات DNS المتقدمة عبر dig: تتبع مسار الدومين من السيرفرات الجذرية وصولاً لسيرفر الاستضافة

4. تشخيص مشاكل استعلامات أسماء النطاقات (DNS) عبر dig#

فشل حل أسماء النطاقات (DNS Resolution Failure) هو السبب الأول وراء أخطاء تثبيت الحزم وتوقف الاتصال بخدمات الدفع وواجهات البرمجة (APIs).

الاستعلام السريع عن سجلات النطاق A#

dig example.com +short

إضافة خيار +short تعيد لك فقط عنوان IP الفعلي دون المخرجات المطولة.

فحص نوع محدد من السجلات (MX, TXT, CNAME, NS)#

# فحص سجلات البريد
dig example.com MX +short

# فحص سجلات إثبات الملكية وSPF
dig example.com TXT +short

تجاوز خوادم DNS المحلية والاستعلام من مزود محدد#

إذا أردت التأكد مما إذا كان التحديث الجديد للدومين قد انتشر عالمياً، اسأل خوادم Google (8.8.8.8) أو Cloudflare (1.1.1.1) مباشرة بإضافة علامة @:

dig @1.1.1.1 example.com A

تتبع مسار استعلام DNS الكامل من الجذور (Root Servers)#

للكشف الدقيق عن النقطة التي يتعطل عندها اسم النطاق:

dig +trace example.com

5. قياس الاتصال وفقدان الحزم: ping و traceroute و mtr#

فحص الاتصال الأساسي عبر ping#

على أنظمة لينكس، يستمر أمر ping في إرسال حزم ICMP دون توقف حتى تضغط Ctrl + C. حدد عدد الحزم دوماً لتفادي تعليق الجلسة:

ping -c 4 8.8.8.8

ملاحظة هامة: عدم استجابة الخادم لـ ping لا يعني بالضرورة أنه متوقف. العديد من خوادم الاستضافة والشركات (مثل Cloudflare أو خوادم AWS) تقوم بحظر حزم ICMP عمداً لحماية أنظمتها من هجمات الحرمان من الخدمة.

الأداة المتقدمة: mtr (المزيج المثالي بين ping و traceroute)#

تجمع أداة mtr بين ميزات فحص المسار وقياس زمن الاستجابة ونسبة فقدان الحزم (Packet Loss) لحظياً لكل نقطة عبور (Hop):

# إن لم تكن مثبتة:
sudo apt install mtr -y

# تشغيل الفحص في وضع التقرير (10 حزم لكل نقطة)
mtr -rw -c 10 google.com

يعرض هذا التقرير جدولاً يحدد بدقة مكان حدوث الاختناق أو فقدان الحزم: هل هو عند شبكة خادمك، أم في شبكة أحد مزودي الاتصالات الدوليين، أم عند الخادم الوجهة.

6. فحص استجابة خدمات الويب عبر curl#

أداة curl هي المختبر المتنقل لمدير السيرفر لاختبار مواقع الويب من داخل سطر الأوامر دون فتح متصفح.

فحص ترويسات HTTP وحالة الاستجابة (Status Code)#

curl -I https://example.com

يكشف لك هذا الأمر في لمح البصر:

  • رمز الاستجابة (مثل HTTP/2 200 أو 301 Moved Permanently أو 502 Bad Gateway).
  • نوع خادم الويب وإصداره.
  • ترويسات الكاش والحماية وسياسات الأمان (CSP و HSTS).

قياس أزمنة الاتصال التفصيلية (Connection Timings)#

لمعرفة سبب بطء الموقع (هل هو من وقت استجابة DNS، أم اتصال SSL Handshake، أم وقت انتظار استجابة الخادم TTFB):

curl -s -w '\nDNS: %{time_namelookup}s\nConnect: %{time_connect}s\nTLS: %{time_appconnect}s\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n' -o /dev/null https://example.com

جدول مرجعي سريع: أوامر تشخيص الشبكة ووظائفها#

الأمر الوظيفة الأساسية حالة الاستخدام الشائعة
ip -c addr show فحص عناوين IP وبطاقات الشبكة معرفة الـ IP العام والخاص وحالة اتصال الكارت.
ip route show فحص البوابة الافتراضية وجدول التوجيه التأكد من وجود مسار توجيه للإنترنت الخارجي.
sudo ss -tulpn فحص المنافذ المستمعة والعمليات التأكد من تشغيل Nginx أو Apache أو MySQL.
dig +short domain A حل أسماء النطاقات وحساب عنوان IP التحقق من صحة توجيه DNS وخلوه من أخطاء الكاش.
mtr -rw -c 10 IP فحص مسار الحزم ونسبة الفقدان تحديد مصدر البطء أو انقطاع الاتصال بين نقطتين.
curl -I URL جلب ترويسات صفحة الويب وكود الحالة فحص أخطاء 500 أو 502 والتأكد من توجيه الروابط.
nc -zv IP PORT اختبار إمكانية الوصول لمنفذ TCP محدد فحص ما إذا كان الجدار الناري يحجب منفذاً بعينه.

حلول لسيناريوهات أعطال حقيقية في الخوادم#

السيناريو الأول: ظهور خطأ «Temporary failure in name resolution»#

يعني هذا الخطأ أن خادمك عاجز عن ترجمة أسماء النطاقات إلى عناوين IP (DNS Resolver عاطل):

  1. افحص ملف إعدادات خوادم الأسماء المحلية:
    cat /etc/resolv.conf
  2. إذا كان السطر nameserver فارغاً أو يحتوي على خادم لا يستجيب، أضف خوادم أسماء عالمية موثوقة (مثل Cloudflare و Google):
    sudo nano /etc/resolv.conf
    وأضف السطرين:
    nameserver 1.1.1.1
    nameserver 8.8.8.8

السيناريو الثاني: الموقع لا يفتح من المتصفح رغم أن خدمة Nginx تعمل#

  1. تأكد أولاً أن Nginx يستمع فعلياً على المنفذ:
    sudo ss -tulpn | grep nginx
  2. إذا كان يستمع بنجاح، فالمشكلة في جدار الحماية (UFW أو iptables):
    sudo ufw status verbose
    إذا كان UFW مفعلاً ولم تجد قاعدتي المنفذين 80 و 443، اسمح بهما فوراً:
    sudo ufw allow 'Nginx Full'

المصادر#

التعليقات

كن أول من يشارك رأيه أو تجربته.

أضف تعليقاً أو سؤالاً

سجّل الدخول لتعجب بالتعليقات المفيدة وترفعها لأعلى النقاش. سجّل الدخول

لا يُنشر، ولا نرسل إليه شيئاً.

يظهر التعليق بعد مراجعته. الروابط لا تُفعَّل.

تبني موقعاً عربياً؟

سكربتات وقوالب وإضافات وخوادم — مصمّمة للمواقع العربية.

تصفّح المنتجات