Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
network-monitor — أداة مراقبة اتصالات الشبكة في الوقت الفعلي مبنية بلغة Rust وGTK4، تعرض الاتصالات النشطة مع إحصائيات الإدخال/الإخراج المباشرة في واجهة رسومية حديثة. | Kitploit
أدوات/GitHubGitHub/grigio/network-monitor
أدوات عامةالتقاط وتحليل الحزمتخطيط الشبكةجمع المعلوماتالخصوصية
GitHubgrigio/network-monitor

network-monitor

أداة مراقبة اتصالات الشبكة في الوقت الفعلي مبنية بلغة Rust وGTK4، تعرض الاتصالات النشطة مع إحصائيات الإدخال/الإخراج المباشرة في واجهة رسومية حديثة.

عرض المستودع
284544منذ يوم واحدتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
# مراقب الشبكة

![عرض توضيحي لمراقب الشبكة على سطح مكتب GNOME على Linux](https://assets.kitploit.com/production/public/readmes/9883/ee8f839c4064b139e19ba818961f4ce859b5461a5eccf2d321c9a184533976b8.gif)

أداة لمراقبة اتصالات الشبكة في الوقت الفعلي مبنية باستخدام Rust وGTK4، تعرض الاتصالات النشطة مع إحصائيات الإدخال/الإخراج المباشرة في واجهة رسومية حديثة.

[![rust](https://github.com/grigio/network-monitor/actions/workflows/rust.yml/badge.svg)](https://github.com/grigio/network-monitor/actions/workflows/rust.yml)
[![dependency status](https://deps.rs/repo/github/grigio/network-monitor/status.svg)](https://deps.rs/repo/github/grigio/network-monitor)


## الميزات

- **المراقبة في الوقت الفعلي**: يراقب باستمرار اتصالات الشبكة النشطة
- **إحصائيات الإدخال/الإخراج**: يعرض معدلات الرفع/التنزيل المباشرة لكل اتصال
- **تحديد العمليات**: يعرض البرنامج ومعرّف العملية (PID) المرتبط بكل اتصال
- **إجراءات العمليات**: انقر بزر الفأرة الأيمن على صف لنسخ قيمته/أمره أو لإنهاء العملية التي
  تملك الاتصال (إنهاء أو إنهاء قسري، مع تأكيد)
- **تحديد مستمر**: يحتفظ الصف المحدد بتمييزه عبر عمليات التحديث ويظهر في
  شريط الحالة
- **واجهة GTK4 حديثة**: واجهة رسومية نظيفة وسريعة الاستجابة بتنسيق Libadwaita
- **واجهة الطرفية (TUI)**: واجهة طرفية تفاعلية بنفس إمكانيات المراقبة
- **تحليل العناوين**: يبسّط العناوين الشائعة (localhost، any، mDNS)
- **تصفية الاتصالات**: يستبعد اتصالات localhost للحصول على مخرجات أنظف
- **تكامل مع GNOME**: دعم صحيح لفئة WM لتثبيت التطبيق في الشريط والتكامل مع سطح المكتب
- **تثبيت مزدوج**: يدعم التثبيت المحلي للمستخدم والتثبيت على مستوى النظام
- **معالجة قوية للأخطاء**: استرداد شامل من الأخطاء مع إرشادات إعداد واضحة
- **محسّن للأداء**: تخزين مؤقت للعمليات والتخطيط لتحسين سرعة الاستجابة

## المتطلبات

- Rust 1.70+ (إصدار 2021)
- مكتبات تطوير GTK4
- مكتبات تطوير Libadwaita
- نظام Linux مع نظام ملفات `/proc`
- Linux 5.8+ (لقدرات eBPF الدقيقة)
- Rust nightly و`bpf-linker` (لتصريف eBPF)

### التثبيت على Ubuntu/Debian:
```bash
sudo apt update
sudo apt install libgtk-4-dev libadwaita-1-dev
```

### التثبيت على Fedora:
```bash
sudo dnf install gtk4-devel libadwaita-devel
```

## التثبيت

### الطريقة 1: التثبيت من المصدر مع التكامل مع سطح المكتب

1. استنسخ المستودع:
```bash
git clone <repository-url>
cd network-monitor
```

2. ثبّت محليًا (لا يتطلب sudo):
```bash
./scripts/install.sh
```

3. أو ثبّت على مستوى النظام (يتطلب sudo):
```bash
sudo ./scripts/install.sh
```

سيقوم سكربت التثبيت بما يلي:
- بناء كلا الملفين التنفيذيين GTK4 وTUI (وضع debug للمحلي، وrelease للنظام)
- تثبيت الملفات التنفيذية في `~/.local/bin/` (محلي) أو `/usr/local/bin/` (على مستوى النظام)
- تثبيت ملف سطح المكتب مع فئة WM الصحيحة لتثبيت التطبيق في شريط GNOME
- تثبيت الأيقونات في أدلة الأيقونات المناسبة
- تحديث ذاكرة الأيقونات المؤقتة وقاعدة بيانات سطح المكتب
- ضمان إمكانية تثبيت التطبيق في شريط/لوحة GNOME

### الطريقة 2: البناء والتشغيل مباشرة

1. استنسخ المستودع:
```bash
git clone <repository-url>
cd network-monitor
```

2. البناء والتشغيل:
```bash
cargo run
```

أو البناء في وضع release:
```bash
cargo build --release
./target/release/network-monitor
```

### الطريقة 3: بناء وتشغيل إصدار TUI

1. استنسخ المستودع:
```bash
git clone <repository-url>
cd network-monitor
```

2. بناء وتشغيل TUI:
```bash
cargo build --bin nmt
./target/debug/nmt
```

أو البناء في وضع release:
```bash
cargo build --release --bin nmt
./target/release/nmt
```

## إلغاء التثبيت

### إزالة الإصدار المثبّت

إزالة التثبيت المحلي:
```bash
./scripts/uninstall.sh
```

الإزالة على مستوى النظام (تتطلب sudo):
```bash
sudo ./scripts/uninstall.sh
```

سيقوم سكربت إلغاء التثبيت بإزالة الملف التنفيذي وملف سطح المكتب والأيقونات من المواقع المناسبة وتحديث جميع ذاكرات التخزين المؤقت ذات الصلة.

## الاستخدام

### واجهة GTK4 الرسومية

شغّل تطبيق مراقب الشبكة:
```bash
cargo run
```

سيفتح التطبيق نافذة GTK4 تعرض:
- **Process(ID)**: اسم العملية ومعرّفها (PID) مع ربط دقيق بين المقبس والعملية
- **Protocol**: بروتوكول TCP/UDP
- **Source**: نقطة النهاية المحلية (محلّلة إلى صيغة مقروءة)
- **Destination**: نقطة النهاية البعيدة (محلّلة إلى صيغة مقروءة)
- **Status**: حالة الاتصال (ESTABLISHED، LISTEN، إلخ)
- **TX**: معدل الرفع المحسوب من إحصائيات الإدخال/الإخراج للعملية
- **RX**: معدل التنزيل المحسوب من إحصائيات الإدخال/الإخراج للعملية
- **Path**: مسار الأمر الكامل والوسائط من `/proc/[pid]/cmdline`

**إجراءات الصف**

- **النقر الأيسر**: تحديد صف (يظهر أيضًا في الشريط السفلي)
- **النقر الأيمن**: فتح قائمة السياق مع *Copy Value* و*Copy Command* و
  *Kill "process" (PID)*، والتي تسأل عما إذا كنت تريد الإنهاء (SIGTERM) أو الإنهاء القسري (SIGKILL)
- **Delete**: إنهاء الصف المحدد حاليًا (نفس مربع حوار التأكيد)
- **Ctrl+C**: نسخ محتوى الخلية
- **زر التحديث** في شريط العنوان: التحديث فورًا (تُحدَّث القائمة أيضًا كل 3 ثوانٍ)

### واجهة الطرفية (TUI)

![nmt tui of network-monitor](https://assets.kitploit.com/production/public/readmes/9883/47e8eb45b8c8f16826d39677c6c81c38a0fd1a48bf59d28a070994f93e437a2c.png)

شغّل واجهة الطرفية:
```bash
cargo run --bin nmt
```

توفر واجهة TUI نفس إمكانيات المراقبة في واجهة طرفية تفاعلية:

**عناصر التحكم بالمفاتيح:**
- `q` - الخروج من التطبيق
- `r` - تبديل تحليل أسماء المضيفين
- `R` - تحديث الاتصالات يدويًا
- `a` - تبديل التحديث التلقائي (كل ثانيتين)
- `↑/↓` - التنقل بين الاتصالات
- `←/→` - التمرير الأفقي في الجدول
- `k` / **النقر الأيمن** - فتح قائمة الإنهاء لصف (إنهاء / إنهاء قسري / إلغاء)
- `1-8` - الترتيب حسب الأعمدة (Process(ID)، Protocol، Source، Destination، Status، TX، RX، Path)

الفأرة: النقر الأيسر يحدد صفًا، والنقر الأيمن يحدده ويفتح قائمة الإنهاء.

**الميزات:**
- مراقبة الاتصالات في الوقت الفعلي مع التحديث التلقائي
- أعمدة قابلة للترتيب مع مؤشرات مرئية
- تمرير أفقي للجداول العريضة
- تحجيم ذكي للأعمدة - يحصل العمود الأخير على كامل العرض المتبقي
- بروتوكولات مرمّزة بالألوان (TCP/TCP6 بالأخضر، UDP/UDP6 بالأصفر)
- تمييز الاتصال النشط
- معلومات العملية ومعرّفها (PID)
- عرض معدل الإدخال/الإخراج المباشر
- نفس ترتيب الأعمدة كما في إصدار GTK4 للاتساق

### تحليل العناوين

يتم تبسيط العناوين الشائعة لتحسين القراءة:
- `0.0.0.0:*` أو `*:*` → `ANY`
- `127.0.0.1:*` أو `[::1]:*` → `LOCALHOST`
- `224.0.0.251:*` → `MDNS`

## كيف يعمل

### خلفية eBPF (مدفوعة بالأحداث)

يستخدم التطبيق kprobes على مستوى النواة (`tcp_v4_connect`، `tcp_v6_connect`، `tcp_close`،
`inet_csk_accept`) بدلاً من استقصاء `/proc/net`. يوفر هذا:

- **مدفوع بالأحداث**: تسليم الأحداث في أقل من ميلي ثانية، دون عبء الاستقصاء (~1-3% من المعالج)
- **PID مباشر**: يُلتقط عند نقطة الفحص عبر `bpf_get_current_pid_tgid()`، دون مسح inode
- **الاتصالات قصيرة العمر**: لا تُفوَّت أبدًا بين فترات الاستقصاء

### وضع eBPF

توفر خلفية eBPF مراقبة اتصالات **مدفوعة بالأحداث** بعبء أقل وأحداث في الوقت الفعلي،
مقارنةً بنهج الاستقصاء الافتراضي `/proc/net`. يمكنها التقاط الاتصالات قصيرة العمر
التي قد يفوتها الاستقصاء.

**المتطلبات المسبقة:**
```bash
rustup toolchain install nightly
cargo install bpf-linker
```

**البناء والتشغيل:**
```bash
cargo build
```

**التشغيل كمستخدم عادي** (يتطلب نواة 5.8+):

امنح قدرات Linux المطلوبة للملف التنفيذي مرة واحدة:
```bash
sudo setcap cap_bpf,cap_net_admin,cap_perfmon+ep target/debug/network-monitor
./target/debug/network-monitor
```

أو لإصدار TUI:
```bash
sudo setcap cap_bpf,cap_net_admin,cap_perfmon+ep target/debug/nmt
./target/debug/nmt
```

لإصدارات release، عدّل المسار وفقًا لذلك:
```bash
sudo setcap cap_bpf,cap_net_admin,cap_perfmon+ep target/release/network-monitor
```

سيخرج التطبيق برسالة إعداد إذا كان eBPF غير متاح (قدرات مفقودة أو
نواة غير مدعومة).

## البنية
- **GTK4**: إطار عمل رسومي حديث متعدد المنصات
- **Libadwaita**: مكونات واجهة بأسلوب GNOME
- **Tokio**: بيئة تشغيل غير متزامنة للعمليات المتزامنة
- **Aya + eBPF**: تتبع الاتصالات على مستوى النواة باستخدام kprobes للأحداث في الوقت الفعلي
- **PID مباشر**: تحديد العمليات عبر `bpf_get_current_pid_tgid()` عند نقطة الفحص
- **استدعاءات النظام**: قراءة مباشرة لـ `/proc/[pid]/io` لإحصائيات الإدخال/الإخراج
- **معالجة الأخطاء**: أنواع أخطاء شاملة مع استرداد سلس باستخدام `thiserror`
- **تخزين مؤقت للأداء**: تخزين مؤقت لتخطيط الواجهة للحصول على أداء مثالي

## حزم Linux

[![Packaging status](https://repology.org/badge/vertical-allrepos/network-monitor.svg)](https://repology.org/project/network-monitor/versions)


## التبرعات

إذا وجدت هذا المشروع مفيدًا، فيرجى التفكير في تقديم تبرع لدعم تطويره.

- **Monero**: `88LyqYXn4LdCVDtPWKuton9hJwbo8ZduNEGuARHGdeSJ79BBYWGpMQR8VGWxGDKtTLLM6E9MJm8RvW9VMUgCcSXu19L9FSv`
- **Bitcoin**: `bc1q6mh77hfv8x8pa0clzskw6ndysujmr78j6se025`

## الترخيص

هذا المشروع مفتوح المصدر. راجع ملف LICENSE للتفاصيل.
تنزيل الأداة