انتقل إلى المحتوى الرئيسي
العودة إلى الفئة

مراقبة النطاق الترددي والحركة: دليل vnstat وiftop وnethogs

إحصاءات تاريخية مع vnstat، مراقبة في الوقت الفعلي مع iftop، النطاق الترددي لكل عملية مع nethogs، استخدام nload وتفسير النتائج.

وقت القراءة: 13 دقيقة الشبكة و DNS
مراقبة النطاق التردديvnstatiftopnethogsnloadحركة الشبكةالنطاق التردديأدوات شبكة linux

جدول المحتويات

مراقبة النطاق الترددي والحركة: دليل vnstat وiftop وnethogs

مراقبة حركة شبكة الخادم أمر بالغ الأهمية لاكتشاف مشاكل الأداء وتحسين استخدام النطاق الترددي ورصد الأنشطة غير الطبيعية. في هذا الدليل، سنتناول أكثر الأدوات شيوعاً لمراقبة حركة الشبكة في Linux — vnstat وiftop وnethogs وnload.

vnstat — إحصاءات الحركة التاريخية

vnstat أداة خفيفة تخزّن إحصاءات الحركة لواجهات الشبكة في قاعدة بيانات. تحتفظ بالبيانات التاريخية حتى بعد إعادة تشغيل النظام.

التثبيت

hljs bash
# Ubuntu/Debian
sudo apt update
sudo apt install vnstat -y

# CentOS/AlmaLinux
sudo dnf install vnstat -y

# تشغيل الخدمة
sudo systemctl enable vnstat
sudo systemctl start vnstat

الاستخدام الأساسي

hljs bash
# ملخص جميع الواجهات
vnstat

# واجهة محددة
vnstat -i eth0

# إحصاءات بالساعة
vnstat -h

# إحصاءات يومية
vnstat -d

# إحصاءات شهرية
vnstat -m

# إحصاءات أسبوعية
vnstat -w

# حركة مباشرة (تحديث كل 5 ثوانٍ)
vnstat -l

# إخراج JSON (لتكامل السكريبت)
vnstat --json

قراءة مخرجات vnstat

                      rx      /      tx      /     total    /   estimated
 eth0:
       2024-01-15    1.23 GiB  /    456 MiB  /    1.67 GiB
       2024-01-16    2.45 GiB  /    789 MiB  /    3.24 GiB
  • rx: الحركة المستلمة (تنزيل)
  • tx: الحركة المرسلة (رفع)
  • total: إجمالي الحركة
  • estimated: تقدير نهاية الشهر

iftop — مراقبة الاتصالات في الوقت الفعلي

iftop أداة تفاعلية تُظهر في الوقت الفعلي مقدار الحركة المتبادلة مع عناوين IP.

التثبيت

hljs bash
# Ubuntu/Debian
sudo apt install iftop -y

# CentOS/AlmaLinux
sudo dnf install iftop -y

الاستخدام الأساسي

hljs bash
# تشغيل على الواجهة الافتراضية
sudo iftop

# واجهة محددة
sudo iftop -i eth0

# تعطيل تحليل DNS (أسرع)
sudo iftop -n

# إظهار أرقام المنافذ
sudo iftop -P

# تصفية شبكة محددة
sudo iftop -F 192.168.1.0/24

اختصارات لوحة مفاتيح iftop

n  — تبديل تحليل DNS
p  — تبديل أرقام المنافذ
P  — إيقاف مؤقت
s  — تبديل عنوان المصدر
d  — تبديل عنوان الوجهة
t  — تبديل اتجاه الحركة
1  — متوسط 2 ثانية
2  — متوسط 10 ثوانٍ
3  — متوسط 40 ثانية
q  — خروج

قراءة مخرجات iftop

203.0.113.50   =>  203.0.113.1    1.23Kb  2.45Kb  3.67Kb
                <=                 4.56Kb  8.90Kb  12.3Kb
  • =>: الحركة الصادرة (رفع)
  • <=: الحركة الواردة (تنزيل)
  • ثلاثة أعمدة: متوسطات 2ث، 10ث، 40ث

nethogs — النطاق الترددي لكل عملية

nethogs يُظهر أي تطبيق أو عملية تستخدم كم من النطاق الترددي. مثالي لإيجاد العملية التي تولّد حركة عالية.

التثبيت

hljs bash
# Ubuntu/Debian
sudo apt install nethogs -y

# CentOS/AlmaLinux
sudo dnf install nethogs -y

الاستخدام الأساسي

hljs bash
# مراقبة جميع الواجهات
sudo nethogs

# واجهة محددة
sudo nethogs eth0

# واجهات متعددة
sudo nethogs eth0 eth1

# ضبط فترة التحديث (ثوانٍ)
sudo nethogs -d 2

# وحدة الحركة (KB/s)
sudo nethogs -v 1

# وحدة الحركة (MB/s)
sudo nethogs -v 2

قراءة مخرجات nethogs

  PID USER     PROGRAM                      DEV        SENT      RECEIVED
 1234 www-data /usr/sbin/apache2            eth0       1.234     5.678 KB/sec
 5678 root     /usr/bin/wget                eth0       0.123     45.67 KB/sec
  • PID: معرّف العملية
  • USER: المستخدم الذي يشغّل العملية
  • PROGRAM: اسم التطبيق
  • SENT: معدل إرسال البيانات
  • RECEIVED: معدل استقبال البيانات

nload — رسم بياني للنطاق الترددي

nload أداة بسيطة تعرض حركة الشبكة في الوقت الفعلي كرسم بياني ASCII.

التثبيت

hljs bash
# Ubuntu/Debian
sudo apt install nload -y

# CentOS/AlmaLinux
sudo dnf install nload -y

الاستخدام الأساسي

hljs bash
# الواجهة الافتراضية
nload

# واجهة محددة
nload eth0

# واجهات متعددة (التبديل بأسهم لوحة المفاتيح)
nload eth0 eth1

# فترة التحديث (ميلي ثانية)
nload -t 500

# وحدة الحركة
nload -u h  # قابل للقراءة البشرية
nload -u m  # Mbit/s
nload -u k  # Kbit/s

أدوات مفيدة أخرى

ss — إحصاءات المقابس

hljs bash
# سرد الاتصالات النشطة
ss -tuln

# إظهار عدد الاتصالات
ss -s

# التصفية حسب منفذ محدد
ss -tuln sport = :80

# إظهار حالات الاتصال
ss -tan | awk '{print $1}' | sort | uniq -c | sort -rn

إحصاءات الحركة بأمر ip

hljs bash
# إحصاءات الواجهة
ip -s link show eth0

# جميع الواجهات
ip -s link

# مراقبة مستمرة
watch -n 1 'ip -s link show eth0'

تفسير النتائج

اكتشاف الحركة غير الطبيعية

hljs bash
# إيجاد العمليات ذات الحركة العالية
sudo nethogs eth0

# التحقق من الاتصالات المشبوهة
ss -tuln

# سرد اتصالات IP الخارجية
ss -tn | grep ESTABLISHED | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn

تقرير استخدام النطاق الترددي

hljs bash
# ملخص الاستخدام الشهري
vnstat -m

# أعلى 10 استخدامات على الإطلاق
vnstat --top10

يمكنك إنشاء تقارير آلية بدمج vnstat مع cron:

hljs bash
# إرسال تقرير كل ليلة عند منتصف الليل
0 0 * * * vnstat --json > /var/log/vnstat_daily.json

تتطلب iftop وnethogs صلاحيات root. لأسباب أمنية، شغّل هذه الأدوات فقط عند الحاجة واحفظ المخرجات بأمان.

الخلاصة

vnstat مثالية للإحصاءات التاريخية للحركة، وiftop لمراقبة الاتصالات في الوقت الفعلي، ونethogs لتحليل النطاق الترددي لكل عملية، ونload للرسوم البيانية المرئية للحركة. باستخدام هذه الأدوات معاً، يمكنك مراقبة حركة شبكة خادمك بشكل شامل، واكتشاف الأنشطة غير الطبيعية، وتحسين استخدام النطاق الترددي.