سؤال

أين يمكنني التعرف على التحكم/استجواب واجهة الشبكة تحت Linux؟ أرغب في الحصول على سرعات تحميل/تنزيل تطبيق محددة ، وفرض حد للسرعة لتطبيق معين.

أحب بشكل خاص المعلومات التي يمكن أن تساعدني في كتابة تطبيق لتشكيل حركة المرور باستخدام Python.

هل كانت مفيدة؟

المحلول

تريد جناح iProute2 ، الذي تستخدم فيه TC يأمر. أوامر TC تبدو مثل

tc class add dev eth2 parent 1: classid 1:1 htb rate 100Mbit ceil 100Mbit quantum 1600

هنا تطبيق حالي على تشكيل حركة مرور Python الذي يستخدم iProute2.

نصائح أخرى

في الواقع ، يكون التشكيل الصعب جدًا لكل تطبيق باستخدام أدوات Linux kernel ، ما لم يستخدم التطبيق عناوين IP محددة و/أو منافذ يمكنك مطابقة.

على افتراض أن هذا هو الحال بعد ذلك ، ستحتاج إلى القراءة iptables وعلى وجه الخصوص fwmarks. ستحتاج أيضًا إلى القراءة على tc. في تركيبة ، يمكن لهذه الأداة أن تفعل ما تريد. ال Linux Advanced Routing ومراقبة حركة المرور هو مكان جيد للبدء.

على افتراض أن تطبيقك لا يستخدم مجموعة يمكن التنبؤ بها من عناوين المنافذ/IP ، فستحتاج هزيلة. هذا يدرج نفسه بين التطبيق والنواة ويشكل حركة المرور لهذا التطبيق في مساحة المستخدمين.

لا أعتقد أن هناك أي روابط بيثون مباشرة لأي من هذه الأدوات ، ولكن سيكون من السهل عليهم النص باستخدام Python والاتصال بالمخططات التنفيذية مباشرة.

هل هناك أي سبب ترغب في استخدام بيثون؟ كما ذكرنا ، من المحتمل أن يكون من المحتمل أن يتم تسليم الأدوات بالفعل لهذا الغرض. ومع ذلك ، إذا نظرت حولي ، يمكنك العثور على أشياء مثل Click! modular router, XORP, ، وغيرهم من الذين يوفرون إسقاطًا للأشياء التي تريد القيام بها - ناهيك عن جميع الاقتراحات المقدمة بالفعل (مثل iptables و tc)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top