bandwhich - مراقب عرض النطاق الترددي حسب العملية
bandwhich هي أداة محطة Rust تعرض استخدام الشبكة الحالي مقسم حسب العملية والاتصال وعنوان IP/اسم المضيف البعيد. على عكس iftop (لكل اتصال) أو nethogs (لكل عملية فقط)، تربط bandwhich المقابس بالعملية المالكة وتحل نقاط النهاية البعيدة، لذلك تشاهد على الفور أي تطبيق — وأي مضيف بعيد — يستهلك النطاق الترددي.
التثبيت
| المنصة | الأمر |
|---|
| Cargo (جميع المنصات) | cargo install bandwhich |
| Arch Linux | sudo pacman -S bandwhich |
| Debian/Ubuntu | sudo apt install bandwhich |
| Fedora | sudo dnf install bandwhich |
| macOS (Homebrew) | brew install bandwhich |
| Nix | nix-env -iA nixpkgs.bandwhich |
| ملف تنفيذي مُجمع | تحميل من صفحة GitHub Releases |
الامتيازات
يجب أن تقوم bandwhich بتصفية الرزم، لذلك تحتاج إلى قدرات مرفوعة:
# الأبسط: تشغيل مع sudo
sudo bandwhich
# أو منح القدرات للملف مرة واحدة (بدون sudo بعد ذلك، Linux)
sudo setcap cap_net_raw,cap_net_admin=eip $(which bandwhich)
الاستخدام الأساسي
| الأمر | الوصف |
|---|
sudo bandwhich | مراقبة جميع الواجهات، TUI حي |
sudo bandwhich -i eth0 | مراقبة واجهة واحدة |
sudo bandwhich --interface wlan0 | نفس، صيغة طويلة |
bandwhich --help | قائمة الخيارات الكاملة |
bandwhich --version | الإصدار |
الخيارات الرئيسية
| الخيار | الوصف |
|---|
-i, --interface NAME | تحديد المراقبة لواجهة واحدة |
-n, --no-resolve | تخطي البحث العكسي عن DNS (أسرع، عناوين IP خام) |
-r, --raw | إخراج قابل للقراءة بالآلة وغير تفاعلي (جيد للتسجيل) |
-p, --processes | عرض جدول العمليات فقط |
-c, --connections | عرض جدول الاتصالات فقط |
-a, --addresses | عرض جدول العناوين البعيدة فقط |
--total-utilization | طباعة إجمالي واحد بدلاً من واجهة المستخدم الحية |
-s, --show-dns | تضمين استعلامات DNS في عرض الاتصال |
-d, --dns-server IP | استخدام محلل محدد للبحث العكسي |
مفاتيح تفاعلية
| المفتاح | الإجراء |
|---|
Tab | دوران التخطيط / تدوير الجدول المتسع |
Space | إيقاف / استئناف التحديثات |
↑ / ↓ | التمرير داخل جدول |
q / Ctrl+C | خروج |
قراءة العرض
تعرض bandwhich ثلاث جداول حية:
| الجدول | يخبرك |
|---|
| الاستخدام حسب العملية | ملفات تنفيذية ترسل/تستقبل، مع معدلات أعلى/أسفل |
| الاتصالات | كل مقبس: محلي → بعيد، بروتوكول، معدل لكل اتصال |
| الاستخدام حسب العنوان البعيد | أي مضيفين بعيدين (تم حلهم) تتبادل معهم معظم البيانات |
يتم عرض المعدلات كإرسال حالي (▲) واستقبال (▼) معدل النقل، تحديث حوالي مرة في الثانية.
سير العمل الشائع
# "ما الذي يأكل رفعي الآن؟" — العمليات فقط، بدون تأخير DNS
sudo bandwhich -p -n
# التحقيق من واجهة صاخبة وتسجيل دفق خام للتحليل لاحقاً
sudo bandwhich -i eth0 --raw | tee bandwhich-eth0.log
# لقطة واحدة من إجمالي الاستخدام (scripts/cron)
sudo bandwhich --total-utilization -n
# البحث عن أفضل المحاورين البعيدين (مثل عملية تسرب أو نسخ احتياطي)
sudo bandwhich -a
bandwhich مقابل مراقبي الشبكة الآخرين
| الأداة | الدقة | الملاحظات |
|---|
| bandwhich | العملية + الاتصال + المضيف البعيد | Rust TUI، يحل المضيفين البعيدين |
| nethogs | لكل عملية | لا تجميع المضيف البعيد |
| iftop | لكل اتصال | لا نسب العملية |
| nload | إجمالي الواجهة | رسم بياني إجمالي بسيط |
| iptraf-ng | لكل واجهة/اتصال | مجموعة ncurses قديمة |
الموارد