اعمل على مشروع reverse proxy & tunnel سميته hafnium ويكتب بلغة rust

بسم الله الرحمن الرحيم, بدأت في البرنامج وسميته hafnium وهو معدن فلزي اكثر المعادن استقرار وأعلى تحمل للحرارة لدرجة يستخدم في المفاعلات النووية
الاسم لسطر الأوامر يختصر إلى hf وهو اختصار للعنصر في الجدول الذري
لماذا hafnium؟ الاسم يعطي الاستقرار للاداه وتحمل الضغط

تخطيط المشروع كتالي
فكرة المشروع هي فتح منفذ لجهازك المحلي في خادم أخر دون المرور بجدار حماية أو NAT (الفكرة الساسية هي تخطي CGNAT)
امر hf لسطر الاوامر
يتبعه الأوامر التالية

hf genkey

يعطيك مفتاح public وprivate والعميل سيحتاج مفتاح public فقط علشان يتصل بالخادم

في الخادم تتاح الاوامر التالية

hf allow <port> [tcp/udp]

السماح بفتح مفذ ميعن (افتراضيا جميعها مسموح فتحها الا اذا حدد منافذ معينة)

hf disallow <port> [tcp/udp]

يعطل امكانية الحصول على منفذ من جهة العميل

hf list [peers/ports]

يعرض المتصلين او المنافذ المفتوحة

hf disconnect [peer_public_key]

يفصل عميل

hf config [get/set] [key] [value]

يعدل اعدادات معينة مثال

$ hf config set listen_port 80
$ hf config get listen_port
80

في جهة العميل

hf connect <ip_address>:<port> <public_key>

يتصل بالخادم ويولد مفتاح public وprivate للعميل

hf open <port> [tcp/udp]

يفتح منفذ في جهاز العميل للخادم

hf close <port> [tcp/udp]

يغلق منفذ

hf list [peers/port]

يعرض المنافذ والمتصلين

hf disconnect

يفصل الاتصال بالخادم

المشروع موجود في Github وساستخدم تخيص GPL او AGPL

5 إعجابات

شكرا لك و المزيد من التطور للبرنامج في قادم الأيام إن شاء اللَّهُ.

إعجاب واحد (1)

الفكرة مشابه لـ ngrok وlocaltunnel وchisel لكن ابسط
ولا تتاثر بالفصل اما من العميل او الخادم ويعاد الاتصال مباشرة
استخدم TCP مباشرة لتقليل وقت الاستجابة بقدر المستطاع وأضافه صلاحيات ونظام توثيق

إعجابَين (2)

وفقك الله، بانتظار المشروع على أحر من الجمر لتجربته.

إعجاب واحد (1)