عن المشروع

Throughline هي أداة مساعدة لينكس متخصصة مصممة لتوفير رؤية شاملة للنشاط الشبكي وتقديم تحكم بديهي في توجيه حركة المرور. تم إنشاؤها في Rust مع عدم وجود تبعيات خارجية، وتؤكد على قابلية التدقيق والأمان. تتكون الأداة من واجهتين رئيسيتين: شاشة التصور ومحرر السياسات. تعرض الشاشة الأولى خريطة الوقت الفعلي لجميع الاتصالات الشبكية على المضيف، وتعزو كل اتصال إلى العملية أو الخدمة أو الحاوية المحددة التي فتحتها. تصور المسار من الجهاز المحلي عبر أي خدمات وسيطة محلية، ومن ثم عبر واجهة الشبكة، وأخيراً إلى الوجهة البعيدة. يساعد هذا العرض المستخدمين على فهم ما الذي تتحدث إليه الآلة الخاصة بهم وكيف، وتمييز الاتصالات الصادرة التي بدأها المضيف والطلبات الواردة من الشبكة. الشاشة الثانية هي محرر قابل للسحب والإفلات يسمح للمستخدمين بتغيير مكان حركة المرور. من خلال سحب البرنامج إلى فئات مثل "خروج مباشر" أو "من خلال VPN" أو "من خلال Tor"، يمكن للمستخدمين تحديد سياسات التوجيه. تشرح الواجهة بوضوح الآثار المترتبة على كل اختيار وتقدم معاينة للقواعد النارية (nftables) والأوامر التي سيتم إنشاؤها. بشكل حاسم، لا يتم تطبيق أي تغييرات تلقائياً. يجب على المستخدمين تأكيد الإجراء صراحةً، مما يؤدي إلى تشغيل مؤقت للعد التنازلي (مدار من قبل systemd) يعيد التغييرات تلقائياً إذا لم يتم تأكيدها في غضون فترة محددة. آلية "التبديل الميت" هذه تمنع عمليات الإغلاق العرضية أو أخطاء التوجيه الكارثية. تعتمد Throughline على قراءة ملفات النظام مثل `/proc` و `/etc/services` لتحديد ملكية العملية وأسماء الخدمات واتجاهات الاتصال. لا تحتفظ بقائمة ثابتة من المنافذ المعروفة أو الوكلاء، بدلاً من ذلك تستمد الحقائق ديناميكياً من الحالة الحالية للمضيف. يضمن هذا النهج الدقة حتى للخدمات غير القياسية أو المخصصة. تتضمن الأداة أيضاً فحوصات أمان قوية، وترفض إنشاء قواعد من شأنها حظر جلسة الإدارة الخاصة بالمستخدم، أو إنشاء حلقات توجيه، أو تسرب حركة مرور DNS. تم تصميمها لتعمل محلياً على واجهة الحلقة الخلفية فقط، مما يضمن عدم تعرض بيانات طوبولوجيا الشبكة الحساسة للشبكة. تتوفر نصوص التحقق لاختبار منطق التوجيه في مساحات اسم الشبكة المعزولة والتحقق من سلوك واجهة المستخدم في المتصفح الحقيقي.