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

أداة مراقبة اتصالات الشبكة في الوقت الفعلي مبنية باستخدام Rust وGTK4، تعرض الاتصالات النشطة مع إحصائيات الإدخال/الإخراج الحية في واجهة رسومية حديثة.
/procbpf-linker (لتجميع eBPF)sudo apt update
sudo apt install libgtk-4-dev libadwaita-1-dev
sudo dnf install gtk4-devel libadwaita-devel
git clone <repository-url>
cd network-monitor
./scripts/install.sh
sudo ./scripts/install.sh
سينفذ نص التثبيت ما يلي:
~/.local/bin/ (محليًا) أو /usr/local/bin/ (على مستوى النظام)git clone <repository-url>
cd network-monitor
cargo run
أو بناء في وضع الإصدار:
cargo build --release
./target/release/network-monitor
git clone <repository-url>
cd network-monitor
cargo build --bin nmt
./target/debug/nmt
أو بناء في وضع الإصدار:
cargo build --release --bin nmt
./target/release/nmt
إزالة التثبيت المحلي:
./scripts/uninstall.sh
إزالة على مستوى النظام (تتطلب صلاحيات sudo):
sudo ./scripts/uninstall.sh
سينفذ نص إلغاء التثبيت إزالة الثنائي وملف سطح المكتب والأيقونات من المواقع المناسبة وتحديث جميع ذاكرات التخزين المؤقت ذات الصلة.
تشغيل تطبيق مراقب الشبكة:
cargo run
سيفتح التطبيق نافذة GTK4 تعرض:
/proc/[pid]/cmdline
تشغيل الواجهة الطرفية:
cargo run --bin nmt
توفر الواجهة الطرفية نفس قدرات المراقبة في واجهة طرفية تفاعلية:
مفاتيح التحكم:
q - إنهاء التطبيقr - تحديث الاتصالات يدويًاa - تبديل التحديث التلقائي (فترات 2 ثانية)↑/↓ - التنقل عبر الاتصالات←/→ - التمرير أفقيًا عبر الجدول1-8 - الفرز حسب الأعمدة (العملية (ID)، البروتوكول، المصدر، الوجهة، الحالة، الإرسال، الاستلام، المسار)الميزات:
يتم تبسيط العناوين الشائعة لسهولة القراءة:
0.0.0.0:* أو *:* ← ANY127.0.0.1:* أو [::1]:* ← LOCALHOST224.0.0.251:* ← MDNSيستخدم التطبيق kprobes على مستوى النواة (tcp_v4_connect, tcp_v6_connect, tcp_close,
inet_csk_accept) بدلاً من استقصاء /proc/net. يوفر هذا:
bpf_get_current_pid_tgid()، بدون مسح inodeتوفر خلفية eBPF مراقبة اتصالات مدفوعة بالأحداث مع حمل أقل وأحداث في الوقت الفعلي، مقارنة بطريقة الاستقصاء الافتراضية /proc/net. يمكنها التقاط اتصالات قصيرة العمر قد يفوتها الاستقصاء.
المتطلبات الأساسية:
rustup toolchain install nightly
cargo install bpf-linker
البناء والتشغيل:
cargo build
التشغيل كمستخدم عادي (يتطلب نواة 5.8+):
منح الصلاحيات المطلوبة لنظام Linux للثنائي مرة واحدة:
sudo setcap cap_bpf,cap_net_admin,cap_perfmon+ep target/debug/network-monitor
./target/debug/network-monitor
أو لنسخة TUI:
sudo setcap cap_bpf,cap_net_admin,cap_perfmon+ep target/debug/nmt
./target/debug/nmt
للبناءات الإصدارية، اضبط المسار وفقًا لذلك:
sudo setcap cap_bpf,cap_net_admin,cap_perfmon+ep target/release/network-monitor
سيخرج التطبيق برسالة إعداد إذا كان eBPF غير متاح (صلاحيات مفقودة أو نواة غير مدعومة).
bpf_get_current_pid_tgid() عند نقطة الفحص/proc/[pid]/io لإحصائيات الإدخال/الإخراجthiserrorإذا وجدت هذا المشروع مفيدًا، يرجى التفكير في التبرع لدعم تطويره.
88LyqYXn4LdCVDtPWKuton9hJwbo8ZduNEGuARHGdeSJ79BBYWGpMQR8VGWxGDKtTLLM6E9MJm8RvW9VMUgCcSXu19L9FSvbc1q6mh77hfv8x8pa0clzskw6ndysujmr78j6se025هذا المشروع مفتوح المصدر. راجع ملف LICENSE للتفاصيل.