سؤال

أولا، أنا جديدة نسبيا لشبكة البرمجة. أريد أن اعتراض وتأخير حركة المرور HTTP قبل أن يحصل على تطبيق الملقم. لقد يفتش libnetfilter_queue الذي يعطيني كل المعلومات أحتاج إلى تأخير مناسب، ولكن على مستوى منخفض للغاية. أنا يمكن أن تؤخر حركة المرور هناك، ولكن ما لم أوافق على مخططات IP على الفور تقريبا (حتى إرسالها حتى كومة عندما أريد أن تأخير منهم)، وسوف تحصل بالاستياء (عندما يصل أي ACK)، وهي ليست ما أريد.

وأنا لا تريد أو تحتاج أن يكون التعامل مع TCP، فقط الحمولات ايصاله. لذا سؤالي هو كيف يمكنني اعتراض حركة المرور على منفذ معين قبل أن تصل إلى وجهتها، ولكن بعد أن اعترف TCP والتحقق من ذلك؟

والشكر

وتحرير: نأمل أنه من الواضح من العلامة وlibnetfilter_queue - وهذا هو لينكس

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

المحلول

والإختطاف الاتصالات من خلال وكيل HTTP. جوجل حتى وسيلة جيدة للقيام بذلك إذا كنت لا يمكن أن يحدد فقط HTTP_PROXY على العميل، أو إعداد الفلتر يعمل مع عدد IP ومنفذ الخادم الحالي، والانتقال من الخادم الحقيقي لIP آخر.

وهكذا الاتصالات TCP الفعلية هي بين العميل ولكم، ثم منك إلى الملقم. ثم لم يكن لديك للتعامل مع رسائل تأكيد الوصول، لأن TCP يرى دائما المهمة أنجزت.

وتحرير: أرى تعليقات على الأصل جاء بالفعل مع هذه الفكرة باستخدام إيبتبلس لإعادة توجيه حركة المرور من خلال عملية شفافة وكيل الخاص بك على نفس الجهاز

.

نصائح أخرى

وحسنا فعلت ما أشرت في تعليقي، وأنه يعمل، حتى لو لم يشعر الطريق طويل ينضب للقيام بذلك.

والمشكلة (أو) هي أن خادم الويب الآن، لأسباب مفهومة، يعتقد أن كل طلب يأتي من المضيف المحلي. حقا أود هذا التأخير إلى أن تكون شفافة إلى كل من العميل والخادم (ما عدا في وقت طبعا!). هل هناك أي شيء يمكنني القيام به حيال ذلك؟

إذا لم يكن كذلك، ما هي الآثار؟ كل دورة HTTP يحدث من خلال منفذ مختلف - هل هذا يكفي بالنسبة لهم أن ينفصل تماما كما ينبغي؟ لذلك يفترض النظر يعمل عند خلف NAT حيث العنوان للعديد من الدورات هو نفسه.

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