
أداة استخدام عرض النطاق الترددي للطرفية

هذه أداة سطر أوامر لعرض استخدام الشبكة الحالي حسب العملية والاتصال وعنوان IP/اسم المضيف البعيد
هذا المشروع في حالة صيانة سلبية. سيتم معالجة المشكلات الحرجة، ولكن لا يتم العمل على ميزات جديدة. ومع ذلك، يرجع ذلك إلى نقص التمويل و/أو القوى العاملة أكثر من أي شيء آخر، لذا فإن طلبات السحب مرحب بها أكثر من أي وقت مضى. بالإضافة إلى ذلك، إذا كنت قادرًا وراغبًا في المساهمة في هذا المشروع على المدى الطويل، فإننا ندعوك للتقدم بطلب للحصول على مشاركة في الصيانة.
لمزيد من التفاصيل، راجع مستقبل Bandwhich #275.
يقوم bandwhich باعتراض حركة المرور على واجهة شبكة معينة وتسجيل حجم حزم IP، ومقارنتها بنظام الملفات /proc في لينكس، أو lsof في ماك، أو باستخدام WinApi في ويندوز. يستجيب لحجم نافذة الطرفية، ويعرض معلومات أقل إذا لم تكن هناك مساحة كافية. كما يحاول حل عناوين IP إلى أسماء المضيفين في الخلفية باستخدام DNS العكسي بأفضل جهد ممكن.
للحصول على تعليمات مفصلة لكل منصة، راجع INSTALL.md.
نوفر عدة ملفات ثنائية عامة في الإصدارات لأنظمة تشغيل مختلفة.
git clone https://github.com/imsnif/bandwhich.git
cd bandwhich
cargo build --release
للحصول على أحدث إصدار أدنى مدعوم من Rust، يرجى الرجوع إلى حقل rust-version في Cargo.toml.
الترجمة المتقاطعة للأهداف البديلة مدعومة عبر cross. إليك الإجراء التقريبي:
uname -m.cross.cross build --release --target <TARGET_TRIPLE>.حتى يتم حل cross-rs/cross#1222، استخدم أحدث HEAD:
cargo install --git https://github.com/cross-rs/cross.git cross
cross build --release --target aarch64-linux-android
بما أن bandwhich يعترض حزم الشبكة، فإنه يتطلب صلاحيات مرتفعة. على لينكس، هناك طريقتان رئيسيتان لتحقيق ذلك:
setcapbandwhich بالصلاحيات المطلوبة (تسمى "capabilities" في لينكس).# تعيين الصلاحيات
sudo setcap cap_sys_ptrace,cap_dac_read_search,cap_net_raw,cap_net_admin+ep $(command -v bandwhich)
# التشغيل كمستخدم غير مميز
bandwhich
cap_sys_ptrace,cap_dac_read_search: السماح بالوصول إلى /proc/<pid>/fd/، حتى يتمكن bandwhich من تحديد أي منفذ مفتوح ينتمي إلى أي عملية.cap_net_raw,cap_net_admin: السماح باعتراض الحزم على نظامك.sudo (أو بديل)sudo bandwhich
لاحظ أنه إذا كانت طريقة التثبيت الخاصة بك قد وضعت bandwhich في مكان ما داخل دليلك المنزلي (يمكنك التحقق باستخدام command -v bandwhich)، فقد تحصل على خطأ command not found. يرجع ذلك إلى أن sudo في العديد من التوزيعات لا يحتفظ افتراضيًا بـ $PATH الخاص بالمستخدم لأسباب تتعلق بالأمان.
لتجاوز ذلك، يمكنك القيام بأحد الأمور التالية:
sudo يحتفظ بمتغير البيئة $PATH الخاص بك؛$PATH بشكل صريح أثناء تشغيل bandwhich: sudo env "PATH=$PATH" bandwhich؛sudo: sudo $(command -v bandwhich).قد تحتاج أولاً إلى تثبيت npcap لاعتراض الحزم على ويندوز.
Usage: bandwhich [OPTIONS]
Options:
-i, --interface <INTERFACE> واجهة الشبكة للاستماع إليها، مثل eth0
-r, --raw إخراج مناسب للآلات
-n, --no-resolve عدم محاولة حل عناوين IP إلى أسماء مضيفين
-s, --show-dns عرض استعلامات DNS
-d, --dns-server <DNS_SERVER> عنوان IP لخادم DNS لاستخدامه بدلاً من الافتراضي للنظام
--log-to <LOG_TO> تفعيل تسجيل التصحيح إلى ملف
-v, --verbose... زيادة مستوى تفصيل التسجيل
-q, --quiet... تقليل مستوى تفصيل التسجيل
-p, --processes عرض جدول العمليات فقط
-c, --connections عرض جدول الاتصالات فقط
-a, --addresses عرض جدول العناوين البعيدة فقط
-u, --unit-family <UNIT_FAMILY> اختيار عائلة محددة من الوحدات [الافتراضي: bin-bytes] [القيم الممكنة: bin-bytes, bin-bits, si-bytes, si-bits]
-t, --total-utilization عرض الاستخدام الإجمالي (التراكمي)
-h, --help طباعة المساعدة (رؤية المزيد باستخدام '--help')
-V, --version طباعة الإصدار
راجع CONTRIBUTING.md.
MIT
| نظام التشغيل | المعمارية | الدعم | الاستخدام |
|---|
| أندرويد | aarch64 | بأفضل جهد |
جميع أجهزة أندرويد الحديثة. لاحظ أن هذا ملف ثنائي خالص، وليس APK مناسبًا للاستخدام العام. |
| لينكس | aarch64 | كامل | معمارية ARMv8+ 64-bit (خوادم، بعض أجهزة التوجيه الحديثة، RPi-4+). |
| armv7hf | بأفضل جهد | معمارية ARMv7 32-bit (أجهزة توجيه أقدم، ما قبل RPi-4). | |
| x64 | كامل | معظم أجهزة الكمبيوتر المكتبية والخوادم التي تعمل بلينكس. | |
| ماك | aarch64 | كامل | أجهزة Mac بمعالج Apple Silicon (2021+). |
| x64 | أجهزة Mac بمعالج Intel (قبل 2021). | ||
| ويندوز | x64 | كامل | معظم أجهزة الكمبيوتر المكتبية والخوادم التي تعمل بويندوز. |