عن المشروع
frp هو بروكسي عكسي سريع مصمم لعرض الخوادم المحلية الموجودة خلف تقنيات NAT أو جدران الحماية على الإنترنت. يتكون المشروع من مكونين: `frps` (الخادم) الذي يتم نشره على جهاز ذي عنوان IP عام، و `frpc` (العميل) الذي يتم نشره على الأجهزة الداخلية.
تشمل البروتوكولات المدعومة TCP و UDP و HTTP و HTTPS. يمكن لـ frp توجيه الطلبات إلى الخدمات الداخلية عبر أسماء نطاقات مخصصة، كما يوفر وضع اتصال P2P (`xtcp`) لنقل البيانات مباشرة بين العملاء.
الميزات الرئيسية:
- **دعم البروتوكولات**: TCP و UDP و HTTP و HTTPS و P2P (xtcp)
- **صيغ التكوين**: TOML و YAML و JSON (تم إيقاف دعم INI بدءًا من الإصدار v0.52.0)
- **المصادقة**: القائمة على الرموز (Token-based) و OIDC (منح اعتماد العميل)
- **التشفير**: دعم TLS للاتصال بين العميل والخادم
- **لوحة تحكم الخادم**: واجهة ويب على منفذ قابل للتكوين تعرض إحصائيات وحالة البروكسي
- **واجهة إدارة العميل**: واجهة ويب لفحص وإدارة تكوين frpc والبروكسيات أثناء التشغيل
- **الإدارة الديناميكية للبروكسي**: إنشاء وتحديث وحذف البروكسيات دون إعادة تشغيل frpc عبر ميزة Store
- **تعدد الإرسال (Multiplexing)**: تعدد إرسال تدفق TCP وتعدد إرسال منفذ TCP
- **بروتوكولات النقل**: دعم بروتوكولات KCP و QUIC
- **تجميع الاتصالات (Connection pooling)**
- **موازنة التحميل وفحوصات السلامة**
- **حدود عرض النطاق الترددي لكل بروكسي**
- **ميزات HTTP**: إعادة كتابة ترويسة المضيف (Host header)، والترويسات المخصصة، وتوجيه عناوين URL، والمصادقة الأساسية (Basic Auth)، واسترداد عنوان IP الحقيقي (X-Forwarded-For، وبروتوكول البروكسي)
- **إعادة استخدام المنفذ**
- **إعادة التحميل السريع (Hot-reloading)** لتكوين frpc
- **المكونات الإضافية للعميل**: unix_domain_socket و static_file و https2http وغيرها
- **بوابة نفق SSH**
- **الشبكة الافتراضية (VirtualNet)**
- **دعم متغيرات البيئة** في قوالب التكوين
- **تقسيم التكوينات** إلى ملفات متعددة عبر التضمينات (includes)
- **نقطة نهاية مراقبة Prometheus**
تشمل حالات الاستخدام الشائعة الوصول إلى أجهزة الكمبيوتر في الشبكة المحلية عبر SSH، وعرض خدمات الويب الداخلية بنطاقات مخصصة، وتوجيه استعلامات DNS، وعرض مقابس مجال Unix (مثل Docker)، ومشاركة خدمات متعددة على نفس المنفذ عبر tcpmux/HTTP Connect، وعرض الخدمات بشكل خاص باستخدام وضع STCP (Secret TCP) مع مفاتيح مشتركة مسبقًا.
يتم صيانة المشروع بنشاط بلغة Go، مع استمرار تطوير الإصدار الثاني (v2) استنادًا إلى مفاهيم السحابة الأصلية (cloud-native) و ServiceMesh، على الرغم من أن الإصدار الثاني لن يكون متوافقًا مع الإصدار الأول (v1).
الموقع الإلكتروني: https://github.com/fatedier/frp
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.